Este tutorial de construcción y programación de un robot minisumo para competiciones de minisumo está motivado por el Taller de construcción de Robot Minisumo celebrado el 15 de marzo del 2019 en el CEIP Obispo Blanco dentro del Arduino Day 2019 de Logroño https://www.aprendiendoarduino.com/talleres-arduino/arduino-day-logrono-2019/ y el posterior taller de perfecionamiento celebrado el 9 de mayo en el Área UR-Maker de la Universidad de La Rioja
Con el objetivo de acercar la robótica y la programación a los niños, proponemos un taller donde fabricar y programar un robot de sumo autónomo. El hardware y el software para fabricarlo y programarlo es libre y abierto. Los robots de sumo competirán por pares en un dohyo (tablero circular). El robot ganador será el que logre sacar a su contrincante fuera del dohyo.
También aprovechamos este taller para preparar los robots de minisumo para la competición en el 1er encuentro maker en tierra de Estella: https://encuentromaker.dictelweb.org/
Repositorio github de este tutorial: https://github.com/jecrespo/Robot-MiniSumo
Chasis impreso en 3D: https://www.thingiverse.com/thing:3525719
Robots Minisumo
Este robot minisumo ha sido diseñado desde cero nos hemos basado en este robot: https://www.instructables.com/id/SimpleSumo-Educational-Fighting-Robots/
Se ha simplificado al no tener brazos ni botones de sensores de pulsación. El diseño 3D se ha rehecho desde el principio. Se trata de un fork del SimpleSumo robot kit https://www.instructables.com/id/SimpleSumo-Educational-Fighting-Robots/
Existen muchos tutoriales de robots minisumo como:
- https://www.instructables.com/id/SimpleSumo-Educational-Fighting-Robots/
- https://www.thingiverse.com/thing:2116902
- https://www.instructables.com/id/How-to-Make-Arduino-Sumo-Robot/
- https://myrobotduino.blogspot.com/2016/10/basic-arduino-autonomous-sumo-robot.html
- http://blog.jsumo.com/how-to-make-sumo-robot/
- https://blog.miguelgrinberg.com/post/building-an-arduino-robot-part-i-hardware-components
Reglas Competiciones Minisumo
Para un conjunto de reglas serias ver: Unified Sumo Robot Rules
Para un conjunto de reglas divertidas de leer ver: fully illustrated guide to robot sumo rules
Más enlaces con reglas de competiciones de robots sumo en español:
- https://encuentromaker.dictelweb.org/wp-content/uploads/2019/02/Normativa-MiniSumo-Dictel.pdf
- http://lnrc.es/normativa/normativa_minisumo.pdf
- https://sites.google.com/site/roboticaboyaca/reglamento-minisumo
- http://www.itc.edu.co/archives/reglamentominisumo.pdf
- http://www.roboticspot.com/especial/cosmobot2015/normativa_minisumo.pdf
- https://robotics.talent-network.org/wp-content/uploads/2019/02/Minisumo-_Microsumo-2019.pdf
Lista de Materiales
Los materiales deben ser iguales o similares en dimensiones para encajar en el diseño del chasis:
- (1x) base para 4 pilas AA – https://es.aliexpress.com/store/product/Glyduino-Multi-Slot-AA-Size-4-Battery-Clip-Hard-Base-Case-Holder-with-Wire-Leads-DIY/1890231_32858997614.html (0,94€)
- (1x) Jack barrel: https://es.aliexpress.com/store/product/10pcs-lot-DC-Power-Connect-Jacks-5-5-x-2-1mm-Male-Solder-DC-Power-Barrel/2442004_32834696267.html (0,9€ 10 unidades)
- (3x) Edge Sensor TCRT5000 – https://es.aliexpress.com/store/product/Free-shipping-TCRT5000-infrared-reflectance-sensor-Obstacle-avoidance-module-tracing-sensor-tracing-module/1504763_32705667819.html (0,39€ unidad)
- (1x) Ultrasonic sensor HC-SR04 – https://es.aliexpress.com/store/product/Free-shiping-10PC-HC-SR04-HCSR04-to-world-Ultrasonic-Wave-Detector-Ranging-Module-HC-SR04-HC/343255_32472332209.html (0,75€)
- (1x) Buzzer Pasivo – https://es.aliexpress.com/store/product/1pcs-Passive-buzzer-module-low-level-trigger-buzzer-control-panel-alarm-module/1314203_32890849538.html (0,44€)
- (1x) Arduino Nano V3 + USB Cable (headers soldados) – https://es.aliexpress.com/store/product/Free-Shipping-for-Arduino-Nano-V3-0-controller-ATMEGA328P-ATMEGA328-original-CH340-USB-cable/1948124_32607801066.html (2,31€)
- (1x) Arduino Nano Expansion Board – https://es.aliexpress.com/store/product/Free-shipping-NANO-and-UNO-multi-purpose-expansion-board-for-arduino-nano-3-0/343255_32503940168.html (1,41€)
- (16x) Jumper dupont hembra – hembra 30 cms (3×3 TCRT5000 + 1×4 SR04 + 1×3 buzzer = 16) – https://es.aliexpress.com/store/product/Dupont-Line-10cm-20CM-30CM-Male-to-Male-Female-to-Male-or-Female-to-Female-Jumper/1544094_32903254175.html (1,26€ para 40 cables)
- (2x) Servo Continuous FEETECH FS90R y Ruedas – https://es.aliexpress.com/store/product/2pcs-lot-Feetech-FS90R-Servo-Wheel-360-Degree-Continuous-Rotation-Micro-RC-Servo-For-RC-Car/2334225_32868847798.html (12,29€ servos + ruedas, 10,41€ servos y accesorios)
- Chasis impreso en 3D: https://www.thingiverse.com/thing:3525719
Coste Aproximado Materiales Robot Minisumo: 20€
Construcción Robot
El chasis impreso en 3D consiste en dos piezas, en la pieza inferior se coloca el portapilas y los tres sensores IR TCRT5000 sujetos con tornillos. Luego se colocan los dos servos con las ruedas y el sensor de distancia ultrasónico HC-SR04 en los huecos a tal efecto.
Chasis impreso en 3D: https://www.thingiverse.com/thing:3525719
Sobre la pieza superior se coloca la placa de expansión de Arduino nano y el Arduino ya instalado.
Una vez todo colocado, se conectarán los cables usando los jumpers dupont.
La parte principal para las conexiones es la Arduino Nano Expansion Board. Esta placa dispone de una expansión de los puertos del Arduino Nano junto con un pin de VCC y otro de GND para cada pin del Arduino.
Buena explicación de la expansion board: http://dyor.roboticafacil.es/en/arduino-intro/
Datasheet: https://roboticafacil.es/datasheets/nano_io_shield.pdf
Arduino nano data sheet:
- https://www.arduino.cc/en/uploads/Main/ArduinoNanoManual23.pdf
- https://www.mouser.com/pdfdocs/Gravitech_Arduino_Nano3_0.pdf

Otro modelo de placa:

Conexionado de Placa y Dispositivos
Conexiones:
Dispositivo | Pin Arduino |
Sensor Suelo IR Izquierdo | 2 |
Sensor Suelo IR Derecho | 3 |
Sensor Suelo IR Trasero | 4 |
Sensor Ultrasónico Distancia | 5 (Trigger), 6 (Echo) |
Servo Rueda Derecha | 9 |
Servo Rueda Izquierda | 10 |
Buzzer | 12 |
Esquema Fritzing:

Imagen en Github: https://github.com/jecrespo/Robot-MiniSumo/blob/master/Robot%20Minisumo%20Sketch_bb.jpg
Esquema en Github: https://github.com/jecrespo/Robot-MiniSumo
Ejemplo parecido donde obtener algunas partes de Fritzing: http://fritzing.org/projects/bender-dyor
Programación por Bloques
Para programar el robot minisumo usaremos mBlock: http://www.mblock.cc/mblock-software/
Existen varias opciones:
- Version 5 basada en scratch 3
- Version 3 basada en scratch 2
- IDE online antiguo: http://editor.makeblock.com/ide.html Habilitar flash e instalar driver. Pero para Arduino no va muy bien.
- mLink para usar la nueva versión del IDE online nuevo. IDE online: https://ide.makeblock.com/. Tutorial: http://www.mblock.cc/doc/en/mlink-quick-start-guide.html
Para la programación se ha usado la versión 3.4.12 de mBlock y no ha sido necesario instalar ninguna extensión.
Para programar es necesario usar el modo Arduino, que se selecciona desde edit – Arduino Mode. Si se usa un Arduino Nano, en boards poner Arduino UNO, si se selecciona Nano (mega328) no funciona.
En caso que no cargue, comprobar si el Arduino Nano tiene el bootloader viejo, en ese caso habrá que actualizar el bootloader o sino usar el IDE de Arduino y usar el bootloader antiguo como se explica en el siguiente punto.
Los códigos en mBlock usados se pueden encontrar en: https://github.com/jecrespo/Robot-MiniSumo/tree/master/Firmware%20mBlock
La primera parte de la programación es hacer las funciones básicas y ponerlas todas en un código de test que compruebe que funcionen los motores y todos los sensores y buzzer.
Funciones básicas a programar:
- Marcha adelante
- Marcha Atrás
- Gira derecha
- Gira Izquierda
- Para
- Pita (se pueden hacer diferentes tonos para identificar qué hace, por ejemplo inicio, detecta linea, detecta oponente, etc…)
- Detecta distancia
- Detecta linea (diferencia entre derecha, izquierda y trasero)
Los bloques de funciones básicas quedan así:

En mi caso en lugar de poner 0 y 180 para máxima velocidad de los servos (giro izda. y dcha.) he puesto 15 y 165 que funciona mejor.
El código de prueba es:

Este código comprueba el correcto funcionamiento de los motores y los movimientos, así como el buzzer y los sensores IR de suelo y el sensor de distancia ultrasónico.
Fotos
Frontal:

Lateral

Trasera

Bajo

Pingback: Ejemplos de Proyectos con Arduino | Aprendiendo Arduino
Hola, gracias por compartir el proyecto. Podrás compartir tambien el diseño 3D del robot?. muchas gracias.
Me gustaLe gusta a 1 persona
Hola Victor, el diseño lo tienes en https://www.thingiverse.com/thing:3525719, voy a actualizar este proyecto y también lo voy a subir a mi project hub https://create.arduino.cc/projecthub/jecrespo
Me gustaMe gusta
Pingback: Primera Reunión Organización Arduino Day 2020 La Rioja | Aprendiendo Arduino
Pingback: Talleres y Charlas – Aprendiendo Arduino
Pingback: Talleres y Charlas | Aprendiendo Arduino
Pingback: Tercera Reunión Organización Arduino Day 2020 La Rioja | Aprendiendo Arduino
Pingback: Robot Minisumo V2 | Aprendiendo Arduino
Buenos días, muchas gracias por el proyecto y por compartirlo tan bien explicado. Solo un detalle, los portapilas que del enlace son planos y no entran en la carcasa. Debe ser un portapilas cuadrado, en los que las pilas van de dos en dos. Gracias nuevamente
Me gustaLe gusta a 1 persona
Hola, en la versión 2 de este robot que hemos actualizado este año los componentes están más detallados y con los errores corregidos: https://aprendiendoarduino.wordpress.com/2021/04/02/robot-minisumo-v2/
Me gustaMe gusta