lunes, 18 de abril de 2011

TurtleArt (sugar) + icaro = Tortucaro

Tortucaro es un plugin y una API escritos en python para usar con TurtleART.
TurtleArt Es un entorno de programación gráfico basado en el lenguaje LOGO, en el que se puede hacer pequeños programas y realizar diseños con una tortuga de forma gráfica.
La idea fue desarrollar como primera medida una API (usando python-serial) que permitiera trabajar directamente con python y la placa de control ICARO NP03 a través del puerto serie /dev/ttyUSB0. Luego desarrolle un plugin para Turtle Art para crear "primitivas" propias de icaro y poder interactuar con el software TurtleArt.
Las primitivas integradas a TurtleArt son para activar las salidas de la plca NP03, leer los 6 sensores digitales y un retardo en mili-segundos para hacer pausas.


pantalla de TurtleArt con ICARO




video del robot

En este video podemos ver el funcionamiento de TurtleArt con icaro, el programa activa el avance del robot y se queda en un bucle infinito esperando que los sensores 2 y 3 hagan contacto. Cuando eso pasa, el robot retrocede y gira para la derecha y vuelve a avanzar.


otro ejemplo de TurtleArt con icaro





video del robot con un sensor LDR para seguir una linterna


Con este programa, el robot gira constantemente a la derecha hasta que se activa el LDR (por el contacto con una fuente de luz). Cuando el sensor se pone en estado alto (hay luz) el robot avanza, si no, gira a las derecha.
cuando choca con el sensor 2, un boton del tipo "final de carrera", se para el programa.




control de un motor paso a paso con LDR


detalles de las primitivas icaro


barra de herramientas TurtleArt con icaro


para ver un tutorial de como hacer plugins para TurtleArt:

http://wiki.sugarlabs.org/go/Activities/TurtleArt/Plugins


codigo fuente de la API:

http://valentinbasel.fedorapeople.org/apicaro.py

codigo fuente del plugin:

http://valentinbasel.fedorapeople.org/icaro_plugin.py

version de TurtleArt 106 con icaro ya instalado:

http://valentinbasel.fedorapeople.org/turtleart.tar