domingo, 26 de mayo de 2019

Programando Arduino con Scracth.

Seguimos avanzando en las prácticas con 4º ESO. Esta vez nos hemos atrevido con Scratch for Arduino (S4A), que no es más que una versión modificada del lenguaje de bloques Scratch, que permite la interacción con el hardware libre Arduino. Creado por el equipo de Smalltalk del Citilab en 2010 e implementa bloques específicos para manejar los sensores y actuadores de Arduino, este entorno nos pareció muy útil y conveniente para introducir a nuestros alumnos en esta programación y trabajar durante unos días, previos a programar Arduino, para que nuestro brazo robot realice sus movimientos con sus cuatro servomotores.
Para usar este software, debemos instalar el entorno S4A en los equipos portátiles del aula-taller y también un firmware específico de S4A en la memoria de la placa de Arduino, que será el que realice la comunicación con el software del PC, informando a este de la situación de cada entrada y salida en todo momento. Estos pasos están muy bien explicados e la página de descargas de S4A.
La interfaz de S4A es muy parecida a la de Scratch 1.4, aunque con algunas diferencias que los alumnos ha ido descubriendo con el desarrollo de  pequeños proyectos que tenían que resolver.
Programa de bloques de S4A que permite controlar a Arduino
El primer bloque permite inicializar las variables asociadas a las posiciones de los servos, así como los ángulos iniciales de los mismos. Hay que cambiar las posiciones (aquí 10, 10, 10) según en qué punto queramos que el brazo robot se posicione inicialmente. Las variables "hombro", "horizontal" y "pinza" contendrán en todo momento los ángulos de las articulaciones del brazo (servos) y se podrán modificar con los distintos eventos asociados a distintas pulsaciones de teclas. Estas variables actualizarán constantemente los ángulos reales de los servos en el bucle "por siempre" inicial. 
En los bloques siguientes (en el centro de la imagen), asociados a distintos eventos del teclado, vamos situando los servos manualmente mediante la modificación de los ángulos contenidos en las variables antes citadas, para colocarlos en las posiciones que necesitemos. Además, fijándonos en los valores que aparecen en la ventana de ejecución, arriba a la derecha de la pantalla, tomaremos los ángulos extremo hasta donde puede llegar la articulación correspondiente, para luego poder calibrar el movimiento de forma exacta.
Ventana de ejecución a la derecha de la imagen
Y por último con el bloque de la derecha, permitimos realizar movimientos fijos de prueba cada vez que pulsemos la tecla espaciadora.

Brazo robot controlado mediante código de bloques S4A

No hay comentarios: