Mostrando entradas con la etiqueta brazo. Mostrar todas las entradas
Mostrando entradas con la etiqueta brazo. Mostrar todas las entradas

viernes, 23 de diciembre de 2011

icaro - bloques


Comenzó como un estudio sobre programación orientada a objetos , python, y la integración de pygame (SDL) con pygtk (GTK+). Al final, después de un mes de programación termine haciendo este programa para la generación de código C++ para compilador SDCC y las librerías pinguino-usb (hacking labs).
La idea es un entorno grafico parecido a TurtleArt, con la diferencia que en ves de generar codigo LOGO y controlar una tortuga, se genera codigo C++ y se carga en un pic 18f4550 mediante el bootloader VASCO-PUF y las librerías pinguino-usb.



Pantalla del programa de bloques icaro.

En la imagen anterior se puede ver el entorno echo en pygtk con un  drawing area donde se inserta la libreria grafica pygame para poder manipular imagenes, dibujar primitivas etc etc. En el menu de la derecha estan lo botones para poder insertar los bloques de color que representan instrucciones completas de C++ que luego pueden ser cargadas en la placa pinguino-usb.
Cada bloque se "pega" al bloque de arriba y puede arrastrar a los bloques pegados abajo suyo como si estuvieran "imantados".
Es demasiado BETA para poder ser usado, tiene muchos errores que hay que depurar, pero la idea  es poder generar código para cargar en los 18f4550 y crear pequeños robots autónomos sin necesidad de tenerlos conectados a la computadora (tal ves robots insectos).

En este ejemplo diseñe un brazo robot de 5 servos, al cual le cargo los parámetros de movimiento mediante el programa (todavía no tiene nombre), luego de cargarle el programa, el pic ejecutara todas las instrucciones en bucle y solo usara el cable USB para la alimentación del pic y los servos (+5 volts).


Detalle de la pinza con un micro servo


vista de costado

del otro lado (se pueden apreciar los servos)


El pcb pinguino-usb y una protoboard donde conecto la alimentación de los servos
chip 18f4550


aca se ven los bloques del programa.

En la imagen anterior se ven los bloques que representan los 5 servos y pausas, el programa comienza en el bloque "inicio" va moviendo los servos para mover el brazo. La librería Pinguino para control de servos permite controlar varios servos al mismo tiempo usando interrupciones (timer1) por lo que todo el tiempo se esta generando PWM en las salidas seleccionadas, y los servos quedan trabados en una posición.
Por lo pronto el programa esta muy verde, pero la idea es poder montarlo en SUGAR y desarrollar un pcb basado en pinguino-usb para crear robots autonomos, controlarlos desde tutrleart o generar ventanas de control con PYcaro.




video del funcionamineto del brazo




otra vista del brazo

domingo, 8 de mayo de 2011

icaro y servomotores (prueba)

Con una actualización del firmware de la placa np03 se puede manejar servomotores.
Los servomotores tienen ciertas características como su control de posición que los hace muy efectivos para proyectos de robótica, son precisos, potentes y relativamente baratos.


un servo Futaba s3003, muy usado en hobbies
Para poder trabajar con servos hay que modificar la placa np03 y eliminar el integrado UNL2803 (por la forma de trabajo del servo no la necesitamos), en este caso armamos un "adaptador" para poder conectar 3 servos futaba 3003, las salidas directas del pic 16F628A van al puerto de control de cada servo, mediante PWM generamos el pulso para controlar la posición del servo de 0 a 180 grados.




placa modificada con adaptador


 brazo echo con 3 servos futaba

 La camara es para hacer pruebas con TurtleArt

 detalle de la pinza abierta 

 Pinza cerrada

Vista general



robot en accion.



 otra vista

mediante TurtleArt controlamos los grados de cada servo del brazo robot y lo movemos, con una primitiva que nos permite seleccionar el servo y la posición (de 0 a 255 representando los 180 grados del servo)


Turtleart con opción para control de servo



barra de herramienta icaro en TurtleArt


Todavía el firmware es inestable y no puede manejar mas de un servo al mismo tiempo, ademas si no se hace una pausa de 1500 mili segundos el sistema se cuelga y hay que reiniciar al pic.

Link de descargas



firmware de prueba para manejar servomotores
 


plugin para TurtleArt (version 107) que agrega primitivas de icaro