Clone Wars: Papa quiero un robot: CachaTuga
Objetivo
El objetivo es hacer un cacharro tipo tortuga de logo con las siguientes características:
- Que se pueda programar fácilmente con herramientas de programación gráfica
- Barato
- Reproducible y modificable
- Que cumpla el principio de <math>Hardware Libre^2</math> (by Obijuan)
Idea inicial
- Herramienta de programación gráfica: S4A
- Cerebro del cacharro: Arduino Uno
- Conexión arduino/S4A: módulo bluetooth HC05
- Ruedas: dos servos de rotación continua
- Accionador del lápiz: servo normal
- Retroalimentación: ¿ratón óptico?
Iteración 0
Objetivos
- Conectar S4A con Arduino a través del módulo bluetooth HC05
- Crear las siguientes primitivas en S4A para mover el cacharro:
- Mover tortuga, con las siguientes opciones:
- adelante
- atrás
- izquierda
- derecha
- Subir lápiz
- Bajar lápiz
- Mover tortuga, con las siguientes opciones:
Implementación
La conexión Arduino-Scratch ya lo tienen solucionada la gente de S4A. Aunque hay varios problemas:
- Hacer funcionar S4A con un módulo bluetooth HC05:
- Solucionado en WIN 7. "Sólo" hay que cambiarle al módulo la velocidad de operación a 38.400 bps
- En Ubuntu 12.01 no soy capaz de hacerlo funcionar. He hecho un enlace simbólico de /dev/ttyACM1 a /dev/rfcomm0 (parece que Scratch sólo lee ttyUSBX en el caso de que sea una versión anterior a las Uno o ttyACMX si es posterior). Al arrancar S4A salta la ventana que pide la contraseña para emparejar el módulo, pero después lo "desempareja"... Supongo que pasará algo parecido a lo que cuentan en este artículo de LMR...
- Toda la lógica se hace en el PC, en el arduino "sólo" hay un sketch que escucha y envía información. Esto habría que cambiarlo para que el μC haga el trabajo de calcular cuando el robot ha avanzado "un paso" o detecte un borde (para lo cual habría que lidiar con las interrupciones, en las que tampoco soy ducho) y en squeak se haga la programación tipo logo (andar 4 pasos, girar 30 grados...)
Foto fea de TurtleBot v0. Desde S4A se le puede decir que vaya hacia alante, hacia atrás, que gire a izquierda o derecha o que levante y baje el boli. No tiene retroalimentación y una rueda va más rápida que otra.
¡Papa quiero un robot! |
Proyecto Clone Wars |