Robot PoliciaCodigo Visual
Robot PoliciaCodigo Visual
Robot PoliciaCodigo Visual
Índice de contenidos
-1-
Esta actividad ha sido diseñada por Luis Rodríguez Gil para su uso con el
laboratorio LabsLand Arduino Robot – programación visual. Puedes encontrar
más laboratorios y actividades en: https://labsland.com.
Este documento contiene una actividad para el laboratorio LabsLand Arduino Robot –
programación visual que plantea el reto de diseñar una lógica de “robot policía” simplificada y
orientada a aprender de forma práctica y entretenida el funcionamiento de los sensores y
actuadores básicos del robot, incluyendo los sensores de proximidad, los sensores de línea, o los
LEDs.
2. Introducción
Para resolver el ejercicio necesitarás poder acceder al laboratorio del robot en LabsLand. Para
acceder deberás seguir las indicaciones de tu profesor o profesora y probablemente necesites un
link específico de registro, a no ser que accedas directamente a través del LMS de tu universidad.
Simplemente ir a la página principal de LabsLand y crear una cuenta de prueba no será suficiente,
ya que esas cuentas están orientadas a profesores y a probar la plataforma.
El resto de este documento asumirá que puedes acceder al laboratorio de la forma correcta (según
indique tu profesor o profesora) y con usos ilimitados.
3. Plataforma e interfaz
El robot se programa mediante una interfaz online. El programa se crea mediante un editor online
simplificado que permite programación visual basada en bloques (ver Figura 1); y a continuación
puede probarse compilando y subiendo el programa a un robot real.
-2-
Esta actividad ha sido diseñada por Luis Rodríguez Gil para su uso con el
laboratorio LabsLand Arduino Robot – programación visual. Puedes encontrar
más laboratorios y actividades en: https://labsland.com.
Para compilar se ha de dar al botón de “verificar”. Una vez verificado, se puede probar en un
robot real dándole al botón “Enviar al robot”.
Para grabar el programa que ha diseñado puede darle al botón “Programar el Arduino”, y
comenzará a ejecutarse su propio programa.
Al terminar el tiempo de prueba asignado o darle al botón de salir el estudiante volverá al editor
de código. Podrá no obstante volver a reservar un robot y probar tantas veces como quiera.
-3-
Esta actividad ha sido diseñada por Luis Rodríguez Gil para su uso con el
laboratorio LabsLand Arduino Robot – programación visual. Puedes encontrar
más laboratorios y actividades en: https://labsland.com.
Figura 2. Interactuando con un robot en tiempo real, antes de ejecutar el programa diseñado.
El lenguaje visual es relativamente sencillo pero tiene aún así varios tipos de bloque para dar
respuesta a las funcionalidades necesarias y a las capacidades del robot. El profesor o profesora
probablemente explicará lo necesario antes de proponer esta actividad, pero si no fuese así, cabe
también notar que existe una guía relativamente completa relativa al robot aquí:
https://labsland.com/pub/docs/experiments/zumoline/visual/es/
Unidad_Didactica_de_Robotica_Educativa_LabsLand.docx
Es una guía extensa, y si ya se ha explicado en clase el contenido necesario para esta actividad,
probablemente no sea necesario consultarla.
4. Advertencia
En la sección siguiente se propone el diseño de una lógica para un “robot policía”. Antes de nada,
recuerda:
-4-
Esta actividad ha sido diseñada por Luis Rodríguez Gil para su uso con el
laboratorio LabsLand Arduino Robot – programación visual. Puedes encontrar
más laboratorios y actividades en: https://labsland.com.
5. Enunciado
El reto de este ejercicio consistirá en que crees un primer prototipo de un robot policía capaz de
patrullar por sí mismo un área, “detectar amenazas”, y avisar. Para el hardware del robot
utilizaremos el robot remoto de LabsLand.
El robot remoto de LabsLand tiene varios sensores y actuadores que le permiten percibir y actuar:
sensores de proximidad, sensores de línea, motores, LEDs, terminal serie, etc.
Deberás diseñar e implementar un programa que haga que patrulle de forma continua y aleatoria
todo el área (el rectángulo con la pista). El robot debe evitar chocarse con las paredes, de forma
que deberá utilizar los sensores de proximidad para detectar cuando esté demasiado cerca, y no
llegar a chocarse. En los dos segundos posteriores a la detección de amenaza, no obstante, está
permitido que choque ligeramente con la pared, aunque es preferible que no lo haga.
De forma continua, para simular la detección de amenazas que llevaría a cabo un verdadero robot
policía, nuestro robot deberá detectar líneas negras en el suelo (las líneas del circuito). Para
monitorizar las líneas podrá usar precisamente los sensores de línea. Cada vez que una línea sea
detectada, el robot deberá emitir un mensaje de alerta por el terminal serie (por ejemplo,
transmitiendo “Amenaza detectada”, reducir su velocidad, y hacer parpadear el LED durante 2
segundos.
6. Consejos y avisos
Para resolver correctamente el ejercicio seguramente necesites utilizar los sensores de proximidad,
los de línea, los LEDs, el terminal serie, y los motores. También necesitarás bloques básicos y
bloques lógicos, entre otros.
Puedes normalmente saber qué valores devuelve o toma un sensor poniendo el ratón sobre el
bloque para ver información adicional en el “tooltip”.
-5-
Esta actividad ha sido diseñada por Luis Rodríguez Gil para su uso con el
laboratorio LabsLand Arduino Robot – programación visual. Puedes encontrar
más laboratorios y actividades en: https://labsland.com.
Los motores, a velocidades bajas, tienen menos potencia: si les pides que funcionen a una
velocidad particularmente baja (e.g. 80), es posible que ni siquiera tengan fuerza para mover al
robot. Recomendación es usar al menos una velocidad de 125 (el máximo es 400).
Al mismo tiempo, si el robot se mueve muy rápido, es posible que no le dé tiempo a detectar la
línea con un sensor concreto si la atraviesa muy rápidamente. Para evitarlo, mueve el robot más
lentamente (e.g. a velocidad de 200 en vez de 400), y/o detecta la línea a través de varios sensores
(así hay más probabilidades de que uno de ellos la vea).
Según pruebes distintas veces, es probable que accedas a copias diferentes del robot. Aunque
todas son similares, puesto que todos ellos son robots reales, igual que en la realidad, podrás notar
pequeñas diferencias entre ellos y su situación: diferente luminosidad, ligeramente diferentes
circuitos… parte del reto de crear un programa en robótica es asegurarte de que funciona
correctamente a pesar de esas variaciones. Que funcione en una sola copia no es garantía completa
de que funcione de nuevo en la misma copia, o en otro diferente.
En ocasiones tendrás que usar valores arbitrarios relacionados con los valores que toman los
sensores (e.g. para determinar si se detecta una línea o no). Para encontrar los valores óptimos,
aparte del tooltip, es probable que tengas que experimentar y probar varias veces. El valor puede
incluso variar ligeramente dependiendo de la instancia del robot, de modo que deberás tener
cuidado. Una pista: el valor para detectar línea negra con los sensores del centro normalmente
estará por encima de 600.
-6-