Manual del proyecto · Proyecto 07
Robot Móvil
Armado y programación de un robot móvil con el kit Robobloq Qoopers: se ensambla con piezas de metal, ruedas y orugas, y se programa por bloques con el software Robobloq. Primero recorre un camino pautado (nivel inicial), luego lleva y muestra un mensaje en un display al pulsar un botón (nivel intermedio) y, por último, esquiva obstáculos con un sensor ultrasónico y un zumbador (nivel avanzado).
- Dificultad:
- Nivel educativo:
- Secundario. Ciclo Básico.
Contenido del manual
- 01 Materiales y equipamiento
- 02 Armar el robot y programar un recorrido Nivel inicial
- 03 Llevar y mostrar un mensaje con el display Nivel intermedio
- 04 Esquivar obstáculos con el sensor ultrasónico Nivel avanzado
Materiales y equipamiento
Insumos
| Imagen | Insumo | Cantidad | Plataforma |
|---|---|---|---|
| Kit Robobloq Qoopers Kit educativo de robótica basado en Arduino, con conexiones simples. Trae la placa controladora, motores, ruedas y orugas, el sensor ultrasónico, el display LED, los LED RGB y el zumbador, además de las piezas de metal y el cable USB para programarlo. Incluye un manual de ensamble con diseños alternativos. | 1 | Todas | |
| Pilas recargables AA Alimentan al robot para que se desplace sin depender del cable USB. Conviene que sean recargables por el uso intensivo en clase. | 6 | Todas |
Equipamiento del taller
- Computadora
- Software Robobloq (programación por bloques)
Armar el robot y programar un recorrido
Armar el robot
Empezamos por el ensamble del robot a partir de las piezas que vienen con el kit. El robot se desplazará en el espacio siguiendo una serie de instrucciones que programaremos después.
El kit incluye un manual de ensamble junto con diseños alternativos que pueden obtenerse en línea (por ejemplo, en static.robobloq.cn/wiki/02.pdf). Seguí las instrucciones de armado paso a paso; al terminar, el robot debería verse como el de la figura: un cuerpo con la placa controladora, ruedas con orugas y, arriba, el display.
Para que el robot funcione de manera autónoma —sin depender del cable USB— se alimenta con las pilas recargables AA. El cable USB lo usaremos para subir los programas desde la computadora.
Conocer el software Robobloq e instalar los drivers
Para programar el robot usamos el software Robobloq, un entorno que permite programar proyectos basados en Arduino utilizando bloques. Se descarga gratis desde robobloq.com/support/download.
Al abrir el programa, lo primero es seleccionar nuestro robot, «Qoopers». Al elegirlo, el entorno se adapta: se ve el robot en pantalla y, a la izquierda, aparecen los bloques disponibles agrupados en categorías —Eventos, Movimiento, Luz, Sonido, Control, Sensor, Operadores y Variables—. Con esos bloques vamos a construir toda la lógica de este proyecto.
Antes de programar hay que instalar los drivers del robot, algo que se hace una sola vez. Un driverDriver (controlador)Programa que le permite al sistema operativo comunicarse con un dispositivo de hardware. Sin el driver correcto, la computadora no reconoce el dispositivo (por ejemplo, la placa del robot conectada por USB). es un programa que le permite a la computadora comunicarse con un dispositivo; en este caso, con la placa del robot a través del puertoPuerto COMPuerto de comunicaciones por el cual el sistema operativo se comunica con un dispositivo externo, como la placa. Se asigna automáticamente al conectarla por USB y puede cambiar de número; en el IDE hay que indicar cuál usar. USB. En el software Robobloq se instala desde el menú Ayuda → «Instalar el controlador del puerto serie».
Probar los motores y subir el primer programa
Antes de armar el recorrido, conviene familiarizarse con los movimientos del robot. Vamos a hacer un pequeño programa para que avance, frene y retroceda.
Todo programa arranca con el bloque «Cuando el programa comienza» (categoría Eventos). Al pedirle al robot que se mueva hay que indicar la dirección y la velocidad (una escala de 0 a 100); acá usaremos la máxima, 100. Un detalle importante: el robot no frena solo, hay que indicárselo. Por eso, entre un movimiento y otro se intercala un bloque de espera y luego el bloque «Detener el movimiento del motor a bordo».
- Cuando el programa comienza
- Mover el motor a bordo hacia adelante a velocidad 100
- Esperar 1 segundo
- Detener el movimiento del motor a bordo
- Mover el motor a bordo hacia atrás a velocidad 100
- Esperar 1 segundo
- Detener el movimiento del motor a bordo
Para subir el programa a la placa: conectá el robot con el cable USB, hacé clic en el botón «Sin conexión» (arriba a la derecha) para que pase a «Conectado», elegí el puerto disponible (por ejemplo, COM7; puede variar) y apretá «Subir» (arriba, al centro). Se carga una barra de progreso y, al terminar, aparece el cartel «Enhorabuena».
Con ese programa, el robot hace las acciones una sola vez. Si queremos que se repitan una y otra vez, envolvemos las instrucciones dentro del bloque «Por siempre» (categoría Control), que crea un bucle infinito.
Programar el recorrido del depósito al laboratorio (y la vuelta)
Ahora sí, programamos el recorrido de la situación: del depósito al laboratorio y de vuelta. La distancia de cada tramo se controla combinando la velocidad y el tiempo de cada bloque de movimiento: a velocidad constante (100), cuanto más dura la espera, más lejos llega el robot. Ajustar esos tiempos según el espacio real del aula es parte del trabajo.
Las acciones principales para llegar al laboratorio son: avanzar, girar a la derecha, avanzar, girar a la derecha, avanzar y frenar. Para la vuelta al depósito, se encadena una secuencia equivalente que lo devuelve al origen. Entre cada movimiento va su espera correspondiente (que define cuánto avanza o cuánto gira), y todo el recorrido se coloca dentro del bloque «Por siempre» para que se repita.
- Por siempre
- Avanzar a velocidad 100 · Esperar (tiempo del tramo)
- Girar a la derecha · Esperar (tiempo del giro)
- Avanzar a velocidad 100 · Esperar (tiempo del tramo)
- Girar a la derecha · Esperar (tiempo del giro)
- Avanzar a velocidad 100 · Esperar (tiempo del tramo)
- Detener el movimiento del motor a bordo · Esperar 5 segundos
- … (recorrido de vuelta al depósito, con la misma lógica)
Podés ensayar el recorrido y ajustar los tiempos de cada tramo en el simulador antes de probarlo con el robot real:
Simulación del comportamiento
Una máquina de estados en TypeScript reproduce el comportamiento que programás por bloques en el kit. No ejecuta el software del kit: es una representación fiel de lo que hará el dispositivo real.
Simulación lista. Presioná «Iniciar» para arrancar la secuencia.
Prender los LED RGB y completar el programa
Como anticipaba la situación, sumamos el encendido de los LED RGBLED RGBLED que combina tres colores primarios de luz —rojo (R), verde (G) y azul (B)— en un mismo encapsulado. Regulando la intensidad de cada color se pueden formar millones de tonos, incluido el blanco. que vienen integrados al frente de la placa, para que el robot sea más visible mientras se desplaza.
Los LED RGB se programan con el bloque «Ajuste a bordo» (categoría Luz), que permite elegir el color. Un LED RGB combina tres colores —rojo, verde y azul— y, mezclándolos, forma millones de tonos. Agregamos ese bloque al comienzo del recorrido para que el robot circule siempre iluminado.
- Cuando el programa comienza
- Ajuste a bordo: encender los LED RGB (elegir color)
- Por siempre
- Recorrido de ida (avanzar / girar / frenar con sus tiempos)
- Esperar 5 segundos en el laboratorio
- Recorrido de vuelta al depósito
Si en el software hacés clic en el ícono «Script» (debajo del botón «Subir») podés ver el código escrito que corresponde a tu programa en bloques: una buena forma de asomarse al código que hay detrás.
Verificá
Con el programa cargado, el robot tiene que salir del depósito con los LED encendidos, hacer el recorrido hasta el laboratorio, esperar unos segundos, volver al depósito y repetir todo. Si se pasa o se queda corto en algún tramo, ajustá el tiempo de la espera correspondiente. Si los LED no encienden, revisá que el bloque «Ajuste a bordo» esté antes del bucle.
Desafío
Probá programar una animación en el display o cambiar el color de los LED en distintos tramos del recorrido (por ejemplo, un color al ir y otro al volver). ¿Podés hacer que los LED titilen mientras el robot gira, como una luz de giro de los autos?
Cierre del nivel
Al terminar este nivel ya tenés el robot armado y andando solo: recorre el camino del depósito al laboratorio y vuelve, con los LED encendidos para ser visible. Aprendiste a programar por bloques en el software Robobloq, a subir programas a la placa y a controlar distancias combinando velocidad y tiempo. En el nivel intermedio vamos a sumarle un display y a usar el botón de la placa para que el robot pueda llevar y mostrar un mensaje al llegar a destino.
Evidencia de cierre
Al terminar este nivel, esto tiene que estar funcionando:
- El robot está armado con las piezas del kit Robobloq Qoopers, según el manual de ensamble, y se enciende con las pilas.
- Sabés programar por bloques en el software Robobloq, conectar el robot por USB e instalar los drivers, y subir un programa a la placa controladora.
- El robot recorre por sí solo el camino del depósito al laboratorio y vuelve, encadenando bloques de avanzar, girar y frenar con sus tiempos, todo dentro de un bloque «Por siempre».
- Los LED RGB del frente de la placa se encienden mientras el robot se desplaza, para que sea más visible.
Llevar y mostrar un mensaje con el display
Situación problema
Al poco tiempo, los empleados de la oficina quisieron sumarle una funcionalidad al robot: la posibilidad de enviar mensajes desde el depósito al laboratorio. Para eso le agregaron una pantalla programable capaz de dibujar los mensajes que necesitaban transmitir. Por seguridad, decidieron que esos mensajes solo fueran visibles cuando alguien pulsara el botón de la placa.
En esta actividad se propone instalarle al robot un display para dibujar mensajes y programar el botón de la placa para que, al presionarlo, el mensaje aparezca en pantalla.
Conectar el display al puerto 7
Para poder mostrar mensajes necesitamos el display LED del kit: una pequeña matriz de puntos de luz donde vamos a dibujar. Lo conectamos con su cable al puerto número 7 de la placa controladora.
A diferencia de un proyecto con Arduino y protoboard, acá no cableamos electrónica: el kit resuelve la conexión con un conector directo. Lo único importante es recordar a qué puerto está enchufado el display (el 7), porque después hay que indicárselo a los bloques.
Dibujar un mensaje en el display
Con el display conectado, ya podemos programarlo. Robobloq ofrece dos bloques para el display: uno permite crear un dibujo propio (encendiendo los puntos que queramos de la matriz) y otro permite elegir entre íconos ya programados.
Usaremos el primero para dibujar nuestro propio mensaje. Al colocar el bloque, no hay que olvidar seleccionar el puerto 7, que es donde conectamos el display en el paso anterior.
- Cuando el programa comienza
- Display (puerto 7): dibujar el mensaje (encender los puntos de la matriz)
Usar el botón de la placa para mostrar u ocultar el mensaje
El mensaje debe quedar oculto hasta que el robot llegue al laboratorio y alguien presione el botón integrado en la placa.
Para lograr ese comportamiento usamos el bloque «Si… entonces / Si no…» (categoría Control), que hace que el programa actúe de una forma o de otra según una condición. Como condición usamos el bloque «Cuando se presiona el botón» (categoría Eventos), que lee el pulsadorPulsadorInterruptor que normalmente está abierto y, mientras se lo mantiene presionado, cierra el circuito entre sus patas. Se usa como botón para que el usuario interactúe con el dispositivo, o como sensor de contacto (fin de carrera). de la placa. Si el botón está presionado, se muestra el mensaje; si no, se oculta. Y como esa decisión debe evaluarse todo el tiempo, va dentro de un bloque «Por siempre».
- Por siempre
- Si «se presiona el botón» entonces
- Display (puerto 7): mostrar el mensaje
- Si no
- Display (puerto 7): ocultar el mensaje (limpiar la pantalla)
Verificá
Con este programa cargado, el display tiene que estar apagado mientras nadie toca el botón, y mostrar el mensaje en el momento en que se presiona. Al soltarlo, vuelve a ocultarse. Si el mensaje se ve siempre (o nunca), revisá que la condición «se presiona el botón» esté bien colocada en el «Si… entonces / Si no…».
Incorporar el mensaje al recorrido
Ahora combinamos esta lógica con el recorrido del nivel inicial. La idea es que el botón solo sirva para mostrar el mensaje una vez que el robot llegó al laboratorio, no durante todo el viaje.
Para eso, colocamos la evaluación del botón al final del recorrido de ida, justo después de que el robot frena y espera en el laboratorio (el bloque «Esperar 5 segundos»). Además, agregamos un mecanismo para esperar el pulsado: con un bloque «Repetir» y algunas esperas, el robot se queda aguardando a que alguien apriete el botón antes de continuar.
- Por siempre
- Recorrido de ida (avanzar / girar / frenar con sus tiempos)
- Detener el movimiento y esperar 5 segundos en el laboratorio
- Repetir (esperando el pulsado del botón)
- Si «se presiona el botón»: mostrar el mensaje en el display
Simulación del comportamiento
Una máquina de estados en TypeScript reproduce el comportamiento que programás por bloques en el kit. No ejecuta el software del kit: es una representación fiel de lo que hará el dispositivo real.
Simulación lista. Presioná «Iniciar» para arrancar la secuencia.
Continuar el recorrido una vez leído el mensaje
Cuando alguien pulsa el botón y lee el mensaje, este se borra y el robot vuelve al depósito. Los bloques del recorrido de vuelta se colocan debajo de los que condicionan la visualización del mensaje.
Un detalle importante: hay que darle tiempo a la lectura. Conviene que el robot espere unos segundos desde que se oprime el botón (por ejemplo, 5 segundos) antes de borrar el mensaje, para que alcance a leerse. Recién después arranca la vuelta.
- Por siempre
- Recorrido de ida hasta el laboratorio
- Repetir hasta que se presione el botón → mostrar el mensaje
- Esperar 5 segundos (dar tiempo a leer el mensaje)
- Ocultar el mensaje (limpiar el display)
- Recorrido de vuelta al depósito
Para el aula
Buen momento para introducir la idea de estado: el robot no hace lo mismo todo el tiempo, sino que atraviesa etapas (yendo, esperando en el laboratorio, volviendo) y el botón solo tiene efecto en una de ellas. Que los grupos discutan qué pasaría si el botón se leyera durante todo el recorrido (spoiler: el mensaje aparecería en cualquier lado) ayuda a entender por qué la condición se coloca en un punto específico del programa. La espera antes de borrar el mensaje es una decisión de diseño centrado en el usuario: sin ella, el mensaje se borraría antes de poder leerse.
Verificá
El robot tiene que salir del depósito, llegar al laboratorio y quedarse esperando. Al presionar el botón, aparece el mensaje; unos segundos después se borra y el robot regresa al depósito para repetir el ciclo. Si vuelve sin esperar el botón, revisá el bloque «Repetir» que aguarda el pulsado. Si el mensaje se borra demasiado rápido, aumentá la espera previa al borrado.
Desafío
Hacé que el display muestre un ícono distinto según el momento (por ejemplo, una flecha mientras viaja y el mensaje real al llegar), usando el bloque de íconos predefinidos. ¿Podés sumar un pitido con el zumbador en el instante en que aparece el mensaje, para avisar que ya se puede leer?
Cierre del nivel
Al terminar este nivel, tu robot ya lleva y entrega un mensaje: recorre hasta el laboratorio, espera a que alguien pulse el botón, muestra el mensaje en el display, le da tiempo a leerse y vuelve al depósito. Aprendiste a conectar un periférico a un puerto del kit, a dibujar en el display y a tomar decisiones con el bloque «Si… entonces / Si no…» y el botón de la placa. En el nivel avanzado vamos a hacer que el robot sea autónomo de verdad: usando el sensor ultrasónico y el zumbador, detectará y esquivará los obstáculos que aparezcan en su camino.
Evidencia de cierre
Al terminar este nivel, esto tiene que estar funcionando:
- El display LED está conectado al puerto 7 de la placa y podés dibujar en él un mensaje propio con el bloque correspondiente.
- El robot usa el botón integrado en la placa: mientras no se presiona, el mensaje queda oculto; al presionarlo, se muestra en el display.
- La lógica del botón está incorporada al recorrido del nivel inicial: el robot solo habilita el mensaje una vez que llegó al laboratorio.
- Después de leer el mensaje (una espera prudente tras el pulsado), el mensaje se borra y el robot vuelve al depósito.
Esquivar obstáculos con el sensor ultrasónico
Situación problema
Tras reiteradas fallas en la entrega de los mensajes, se observó que a veces los robots quedaban varados por obstáculos que aparecían en su recorrido. Por eso se decidió desarrollar un robot con sensor ultrasónico, para detectar los obstáculos que se cruzaran, y un zumbador en forma de bocina, para alertar sobre su presencia.
En esta actividad se trabaja con el sensor ultrasónico y el zumbador que trae integrados el kit. Se programará para que, cuando el robot se acerque a un obstáculo, frene la marcha, suene el zumbador y el robot cambie de dirección esquivándolo.
Optimizar el robot para esquivar objetos
Para este nivel construimos otro modelo de robot, mejor preparado para maniobrar y esquivar. Las instrucciones para armarlo se descargan en línea (por ejemplo, en static.robobloq.cn/wiki/03.pdf).
Conectar el sensor ultrasónico al puerto 6
Para que el robot pueda esquivar obstáculos, le conectamos el sensor ultrasónicoSensor de distancia ultrasónicoSensor que mide distancias emitiendo un pulso de sonido ultrasónico y midiendo el tiempo hasta que el eco regresa tras rebotar en un obstáculo. Tiene cuatro pines: VCC y GND para la alimentación, Trigger para disparar el pulso y Echo para detectar su llegada. al puerto número 6 de la placa.
El sensor ultrasónico mide distancias: emite un pulso de sonido de alta frecuencia y mide el tiempo que tarda en volver tras rebotar en un obstáculo. Ese tiempo es proporcional a la distancia al objeto, así que el robot puede “saber” qué tan cerca tiene algo adelante.
También vamos a usar el zumbadorBuzzer (zumbador)Dispositivo que genera sonido a una frecuencia determinada. Al recibir alimentación comienza a sonar; controlándola se pueden generar sonidos continuos o pulsos. Sirve como mecanismo de señalización o aviso., que ya viene integrado a la placa y sonará cuando el sensor detecte un obstáculo. Como todo en este kit, ninguno de los dos requiere cablear: el sensor se enchufa a su puerto y el zumbador ya está en la controladora.
Detectar la distancia y frenar ante un obstáculo
El robot debe esquivar los objetos cuando estén a una distancia que definimos nosotros. El bloque que entrega la distancia medida está en la categoría Sensor, y para comparar usamos el bloque «mayor que» de la categoría Operadores.
La regla es: avanzar solo si la distancia medida es mayor a 40 cm; en caso contrario, frenar. Como ahora el robot tiene que reaccionar a lo que mide, conviene una velocidad moderada: usamos 50 (no la máxima), para que le dé tiempo a detectar y maniobrar.
- Por siempre
- Si «distancia del sensor (puerto 6) > 40 cm» entonces
- Avanzar a velocidad 50
- Si no
- Detener el movimiento del motor a bordo
Elegir una dirección al azar
Cuando el robot detecta un objeto, lo hacemos girar aleatoriamente a la izquierda o a la derecha, para que no quede trabado y busque una salida distinta cada vez. Usamos el bloque «Número aleatorio entre» (categoría Operadores).
Como el bloque elige entre números y no entre direcciones, le asignamos un valor a cada una: el 1 hará que gire a la izquierda y el 2, a la derecha. Después de cada giro, agregamos una espera breve (por ejemplo, 0,3 segundos) para darle tiempo a completar el giro antes de seguir.
- Si no (hay obstáculo): detener el movimiento
- Guardar en una variable un número aleatorio entre 1 y 2
- Si el número es 1 → girar a la izquierda
- Si el número es 2 → girar a la derecha
- Esperar 0,3 segundos (dar tiempo al giro)
Simulación del comportamiento
Una máquina de estados en TypeScript reproduce el comportamiento que programás por bloques en el kit. No ejecuta el software del kit: es una representación fiel de lo que hará el dispositivo real.
Simulación lista. Presioná «Iniciar» para arrancar la secuencia.
Programar el zumbador de aviso
Por último, hacemos que el robot avise con un sonido cada vez que detecta un obstáculo. Para que suene el zumbador usamos el bloque «Jugar Tono», que permite elegir la nota musical MIDI y su duración.
Las duraciones posibles se expresan en fracciones de “tiro” (equivalente a un segundo): la mitad (0,5 s), un cuarto (0,25 s), un octavo (0,125 s), un tiro entero (1 s) o doble tiro (2 s). El sonido se ejecuta luego de que el robot frena, junto con la maniobra de esquive.
- Por siempre
- Si «distancia (puerto 6) > 40 cm»: avanzar a velocidad 50
- Si no: detener el movimiento del motor a bordo
- Jugar Tono: reproducir una nota MIDI de aviso
- Número aleatorio entre 1 y 2 → girar a la izquierda o a la derecha
- Esperar 0,3 segundos (dar tiempo al giro)
Para el aula
Este nivel cierra la idea de robot autónomo: ya no sigue un recorrido fijo con tiempos calculados, sino que decide en función de lo que percibe. Vale la pena contrastarlo con el nivel inicial —donde todo estaba pautado de antemano— para que los estudiantes noten la diferencia entre un programa secuencial y uno reactivo. El umbral de 40 cm y la velocidad 50 son puntos de ajuste ideales para experimentar: si el robot choca, probablemente frena tarde (subir el umbral o bajar la velocidad); si se detiene demasiado lejos de todo, bajar el umbral. La elección aleatoria de la dirección es un buen disparador para hablar de azar en programación.
Verificá
Poné al robot a andar y acercale un obstáculo (una caja, una carpeta) por delante. Al llegar a unos 40 cm, tiene que frenar, sonar el zumbador y girar hacia un lado (que va cambiando entre intentos). Después sigue avanzando hasta encontrar el próximo obstáculo. Si choca antes de frenar, subí el umbral de distancia o bajá la velocidad. Si el giro se queda corto, aumentá la espera de 0,3 segundos.
Desafío
Sumale al esquive una melodía en lugar de un solo tono, encadenando varios bloques «Jugar Tono», o hacé que los LED RGB cambien de color al detectar un obstáculo (por ejemplo, a rojo mientras esquiva). Como cierre del proyecto, podés descargar la app de Robobloq y controlar el robot por Bluetooth con un joystick.
Cierre del proyecto
Con este nivel completaste el recorrido del proyecto: armaste el robot, lo programaste para seguir un camino pautado, le enseñaste a llevar y mostrar un mensaje y, finalmente, lo hiciste autónomo, capaz de detectar y esquivar obstáculos por sí solo con el sensor ultrasónico y el zumbador. En el camino trabajaste nociones de mecánica (el ensamble), de movimiento (la relación entre velocidad y tiempo) y de programación por bloques (secuencias, condiciones, bucles, azar y lectura de sensores). Si querés seguir, podés sumarle un sensor seguidor de líneas, programarle melodías o controlarlo por Bluetooth desde la app de Robobloq.
Evidencia de cierre
Al terminar este nivel, esto tiene que estar funcionando:
- El robot está reconfigurado según el segundo modelo del kit y tiene el sensor ultrasónico conectado al puerto 6.
- El robot avanza a velocidad moderada (50) mientras el sensor mide más de 40 cm de distancia libre, y frena cuando detecta un obstáculo más cerca.
- Al detectar un obstáculo, el robot elige al azar girar a la izquierda o a la derecha (con el bloque de número aleatorio) y espera un instante para completar el giro antes de seguir.
- El zumbador integrado emite un tono de aviso cada vez que el robot detecta un obstáculo y frena.