Robótica con Arduino

Grafimo: Epcia robótica
Obtenida de: elaboración propia

Docente: Miguel Señor Alonso

Curso: 3º ESO

Asignatura: Pensamiento Computacional (Optativa diseño propio IES Abyla)

Objetivos de la propuesta

Los objetivos de esta unidad didáctica, que son parte de los de la materia Pensamiento Computacional en 3º de ESO, se relacionan con las diferentes dimensiones de la competencia digital en la siguiente tabla: 

Desarrollo de las sesiones

Común a las sesiones:

  • Recursos materiales:
    • Cada estudiante cuenta con un ordenador de sobremesa, con sistema operativo Ubuntu. 
    • Cada equipo cuenta con un Arduino 101, su placa shield y un kit de componentes (leds, resistencias, cables), además de microservos de giro continuo con sus ruedas correspondientes, un chasis Jovebot, un sensor de infrarrojos, portapilas y baterías. 
    • El IDE de Arduino está instalado en todos los equipos del aula. 
    • Contamos en el aula con dos impresoras Artillery Genius Pro. 
  • Metodología
    • Se ha aplicado una metodología activa y participativa, generando siempre un aprendizaje significativo. A ello ha contribuido el material del que dispone cada equipo. 
    • La clase la componen 15 alumnos/as, que se han dividido en 5 equipos de 3 estudiantes.  
    • Los miembros de cada equipo cooperarán entre sí para el desarrollo y logro de cada tarea. Se permite el intercambio temporal de miembros entre distintos equipos para colaboraciones puntuales y apoyo en las tareas. 
    • Por lo general se proponen diversas tareas en cada sesión, de simulación o montaje según corresponda. 

Sesión 1

En esta sesión inicial se establecen los grupos de trabajo, los métodos cooperativos y la colaboración entre equipos. A continuación, se explica qué es Arduino, los elementos del modelo de Arduino que hay en clase (el 101 con su placa shield) y la diferencia entre las señales analógicas y las digitales. 

Objetivos.  

  • Conocer la plataforma Arduino. 
  • Diferenciar entre señales digitales y analógicas.  

Sesión 2 

Se ve la plataforma TinkerCad y su uso para la simulación de Arduino. Se realizan las primeras prácticas sencillas de parpadeo led y secuencia de leds, consolidando y poniendo en práctica los contenidos vistos en la sesión 1. 

Objetivos.  

  • Conocer la plataforma Tinkercad.  
  • Simular circuitos sencillos con Arduino en TinkerCad, utilizando correctamente las placas de prototipado para las conexiones. 

Sesión 3

El alumnado se enfrenta a la dificultad del montaje físico, con el agravante de que las placas de prototipado disponibles son más pequeñas y carecen de las filas superiores e inferiores que comunican alimentación y tierra, debiendo ingeniárselas para comunicar los cátodos de los leds entre sí antes de sacarlos al pin de tierra de la placa de Arduino.  

Objetivos:

  • Construir circuitos con secuencia de leds. 
  • Programar scripts sencillos en el IDE de Arduino.

Sesión 4

Se revisan los montajes de la práctica de parpadeo de leds y se programa su funcionamiento en el IDE de Arduino. 

Algunos equipos detectan fallos en el montaje (conexiones a pines erróneos, cortos de leds o resistencias, tierras mal puenteadas). Se les enseña a depurar los errores. 

Objetivos.  

  • Construir circuitos con secuencia de leds. 
  • Programar scripts sencillos en el IDE de Arduino. 

Equipo 1 / Equipo 2 / Equipo 3 / Equipo 4 / Equipo 5 

Sesión 5

Se explican los distintos tipos de motores, haciendo hincapié en los servomotores y en especial el de giro continuo. Simulamos en Tinkercad el de giro parcial, conectándolo directamente a la placa Arduino.  

Objetivos.  

  • Simular circuitos sencillos con Arduino en TinkerCad, utilizando correctamente las placas de prototipado para las conexiones. 
  • Construir circuitos con movimiento de servos. 

Sesión 6

Se simula en TinkerCad los servos de giro continuo, montando uno directamente a la placa y dos usando una placa de prototipado. 

Se replican las simulaciones de servomotores de giro continuo de Tinkercad en montajes físicos y programación en el IDE de Arduino (vídeo Equipo5). 

El chasis del JoveBot descargado de Thingiverse está diseñado para servos de tamaño estándar. Al recibir el pedido de servos comprados en Amazon para la fase de implementación, estos han resultado ser microservos, por lo que me he visto obligado a rediseñar en Tinkercad el chasis original para adaptarlo a estos. El modelo resultante se sube a Thingiverse para beneficio de la comunidad (Imagen del modelo publicado). 

Se muestra a la clase cómo descargar el modelo de Thingiverse y pasarlo a la impresora 3D a través de la aplicación Ultimaker Cura. Iniciamos la impresión en 3D del modelo de chasis JoveBot modificado. Como este proceso se demora unas 4 horas por chasis, se muestra a los estudiantes el inicio de impresión de uno de los chasis y se utiliza para continuar con el montaje del resto que están ya impresos. 

Objetivos.  

  • Simular circuitos sencillos con Arduino en TinkerCad, utilizando correctamente las placas de prototipado para las conexiones. 
  • Construir circuitos con movimiento de servos. 
  • Buscar y descargar modelos 3D de Thingiverse. 
  • Imprimir modelos 3D. 

Sesión 7

Se conectan a la plataforma de simulación Open Roberta Lab. Se simula el robot mBot con movimientos sencillos y su comportamiento detecta líneas y evita-obstáculos a través de la programación por bloques. Se reconocen los elementos que componen el mBot y se desacativan o eliminan los no necesarios. 

Se constata lo esencial del sensor de infrarrojos para la detección de líneas. Se explica su funcionamiento y se examina un sensor real. 

Objetivos

  • Simular el comportamiento detecta líneas de un mBot en la plataforma Open Roberta Lab. 
  • Reconocer un sensor de infrarrojos y conocer su funcionamiento

Sesión 8

Se monta en Arduino el sensor de infrarrojos y se programa para observar sus lecturas desde la consola del IDE. 

Objetivos

  • Programar un sensor de infrarrojos en el IDE de Arduino y obtener sus lecturas por consola. 

Sesión 9

Se termina el montaje físico del Jovebot usando los chasis impresos, los servos de giro continuo, ruedas, sensor IR, portapilas, baterías y cableado necesario y se programa el comportamiento de evitación de obstáculos en el IDE de Arduino y… ¡se prueban en acción! 

Objetivos

  • Construir un robot tipo Jovebot/mBot. 
  • Programar el comportamiento de evitación de obstáculos en el IDE de Arduino para nuestro robot. 

Equipo1 |Equipo2 | Equipo3 | Equipo4 | Equipo5 | Prueba en suelo 

En muchas sesiones se ha utilizado la observación directa como instrumento de evaluación para determinar los roles asumidos por los distintos miembros de cada equipo y su participación e implicación en el proyecto. 

En general, se evalúan las tareas realizadas en cada sesión, estableciendo qué equipos las han finalizado, qué grado de consecución han alcanzado, así como el trabajo de cada miembro del mismo en el proceso cooperativo. 

Como extra, se ha tenido en cuenta a los miembros de un equipo que han ayudado a otros equipos a localizar errores en los montajes.  

Al tratarse de un proceso de aprendizaje significativo, el principal indicador de logro ha sido el conseguir finalmente un robot funcional y operativo en cada equipo de estudiantes. 

No obstante, cada tarea intermedia se ha valorado como parte de la evaluación continua: conoce el funcionamiento básico de Arduino, sabe utilizar su IDE, simula montajes sencillos en TinkerCad, monta circuitos físicos sencillos de Arduino y los programa en su IDE, simula el mBot en Open Roberta Lab programando el comportamiento evita-obstáculos a través de bloques, sabe imprimir una pieza en 3D a través de su archivo STL y finalmente construye el Jovebot y lo programa en el IDE de Arduino para evitar obstáculos. 

Todos estos criterios de evaluación se resumen en la siguiente rúbrica: 

Rúbrica empleada para la evaluación

Adicionalmente y para afinar la nota de la evaluación trimestral, se ha realizado una prueba objetiva tipo test en nuestra plataforma Moodle. 

Reflexión sobre las dificultades encontradas y logros obtenidos 

En resumen, la implementación de la propuesta ha sido un éxito. Hemos aprendido mucho de ella y nos hemos divertido de lo lindo. Todo este proyecto ha rebosado aprendizajes significativos, cooperativos y colaborativos. Hemos fabricado parte de nuestros componentes (chasis impresos en 3D), manipulado componentes continuamente en los ensamblajes de circuitos y robots, y programado sus comportamientos fomentando la creatividad y la experimentación. 

A pesar de ello, también nos hemos visto obligados a resolver problemas sobrevenidos. Los principales problemas resultos en esta implementación han sido tres: 

En primer lugar, la dificultad encontrada en el montaje físico de los circuitos sobre una placa de prototipado real en comparación con Tinkercad. Esta ha sido resuelta utilizando una sesión extra para terminar los montajes, probándolos adecuadamente y depurando los errores encontrados. 

En segundo lugar, el problema de recibir microservos cuando habíamos creído adquirir servos de tamaño normal. El modelo de chasis del Jovebot descargado de Thingiverse estaba diseñado para servos de tamaño normal, por lo que ha requerido adaptación. Esta ha consistido en editar el modelo original en el propio Tinkercad utilizado para las simulaciones de Arduino. 

En tercer y último lugar, creíamos haber adquirido sensores de infrarrojos para detectar líneas y finalmente han sido para detectar obstáculos, lo que nos ha requerido una ligera adaptación del diseño. 

Los principales logros alcanzados son los propios robots evita-obstáculos funcionales de cada equipo y el hecho de poder devolver a la comunidad Thingiverse como colaboración un diseño de Jovebot adaptado a microservos. Los estudiantes han aprendido lo útil de compartir en comunidades virtuales de este tipo. Inicialmente nos servimos de la comunidad para después contribuir a esta con un nuevo diseño que responda a las necesidades de otros que, como nosotros, quieran montar el robot con microservos. 

Como propuesta de mejora, creo que mi implementación podría mejorarse contando con todos los elementos necesarios para los montajes previo al inicio de la misma (algunos componentes han sido recibidos una vez planificada la implementación, como los microservos o los sensores IR, siendo necesaria una restructuración). Además, podría ampliarse sustituyendo los sensores IR de los robots por un sensor de ultrasonidos para detectar a otros robots en la distancia, evaluando esta proximidad de una manera más exacta que con los sensores IR, para enfrentarse a ellos como en la liga de sumo-robots o añadir un sensor IR detecta-líneas como inicialmente se había previsto.