El robot tiene un sensor cny70 para poder seguir una linea negra y una pinza manejada por un servo para abrir y cerrar.
domingo, 16 de octubre de 2011
Xo robot (sugar y robots)
El robot tiene un sensor cny70 para poder seguir una linea negra y una pinza manejada por un servo para abrir y cerrar.
lunes, 13 de junio de 2011
seguidor de linea
cuando una onda de luz infrarroja choca contra una superficie blanca o clara, rebota hacia el receptor, el cual generara una señal lógica de uno si la superficie es blanca o cero si es negra.
En realidad para poder trabajar directamente con un PIC, hay que acomodar la señal con un integrado 40106, El cual es un integrado con lógica negada (NOT) o tambien conocido como Schmitt Trigger.
Diagrama esquemático de la conexión del CNY70 y el 40106
Este robot (una variación del presentado en la FUDCON de panama), tiene un sensor CNY70 sobre la rueda libre al frente del robot aproximadamente a 5 mm del piso. Se pone el robot sobre la derecha de la linea negra y cuando se inicia el algoritmo, se enciende el motor izquierdo hasta que toque la linea negra y se apaga el motor izquierdo y se prende el motor derecho hasta llegar al blanco y así avanzara emulando el andar de una persona no vidente con su bastón.
con dos sensores se puede conseguir un mejor rendimiento y velocidad, pero con un sensor es mas fácil de diseñar.
Video del robot
domingo, 8 de mayo de 2011
icaro y servomotores (prueba)
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.
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)
Link de descargas
miércoles, 22 de septiembre de 2010
robot de vigilancia
Se conecta a la computadora mediante un cable Serie o un adaptador Serie/USB y puede manejar hasta 8 dispositivos digitales (ON/OFF) simultáneos con una tension maxima de 12 V - 500 mA y la minima de 5 V - 500 mA
La parte mas importante del circuito es el microcontrolador PIC 16F628A que sirve de interface para demultiplexar los bytes enviados a traves del puerto serie, y para mandar informacion de los 6 sensores digitales que tiene.
Este es un Robot con cámara de vigilancia aprovechando la placa np03 de puerto serie/usb, el sistema esta controlado por una netbook ASUS de 8 pulgadas y 2 gigas de disco duro.
en la netbook se instalo icaro (version 0.6), tkinter (para la ventana de control), opencv (para manejar las camras), vncserver (para controlar remotamente a la netbook) y python.
el mecanismo de funcionamiento es sencillo, se activa el servidor vnc y desde otra pc dentro de la misma red wifi se llama al cliente vnc (vncviewer) y se abre un usuario dentro de la netbook.
como ROOT (desde la terminal) se abre el programa ./gui.py que es una ventana echa en tkinter y python que contiene los botones para enviar la informacion a la placa de control.
cuando se apreta un boton, se graba un numero en el archivo variables.txt y se ejecuta el archivo .icr con icaro.
el software icaro lee variables.txt y en funcion del valor (que graba en una variable) del numero, activa los puertos y genera el voltaje que accionan los motores que controlan las dos ruedas y los dos ejes de la camara de vigilancia
El siguiente es un video de 4 minutos donde se puede ver la vision del robot de vigilancia, usando sus dos camaras web (la propia de la netbook y la movil).
En el video se puede ver como desde la pc controlo el robot (mediante VNC) y lo muevo por el living de la casa.
como la computadora es de bajos recursos, los videos no son de la mejor calidad, pero sirve ara mostrar las posibilidades del sistema.
jueves, 18 de marzo de 2010
camara de vigilancia
Se usa como interface de control un pequeño programa escrito en python usando las librerias graficas Tkinter (Tk) para generar una ventana con 4 botones (arriba, abajo, izquierda, derecha) y con otro programa en python usando librerias opencv para visualizar la camara web.
cuando se presiona un boton, el programa graba un valor en un archivo de texto (variable.txt) y ejecuta el archivo ICARO el cual toma el valor del archivo de texto y en funcion de eso, activa el motor correspondiente y su direccion.
pasandole mas datos a traves de "variable.txt" se puede aumentar o disminuir la velocidad de giro o sus tiempo de encedido.
De esta forma ICARO se vuelve un lenguaje de script y se puede controlar desde distintas interfaces como python o hasta PHP, con lo que se podria hacer una camara controlada por internet (mediante streamind de video).
usando un par de motoreductores CC se controlan los dos ejes (x,y), se usan dos pines de la placa ICARO para controlar cada motor, un pin activa/desactiva la tension en el motor y el otro trabaja sobre un Rele que cambia el sentido de la direccion de giro del motor.
cada ves que se apreta un boton, se graba un valor numerico en un archivo de texto, luego se ejecuta ICARO mediante una llamada a sistema y abre el archivo de texto, lee el valor y activa los puerto en funcion de eso.
Detalle de la camara conel motor de control eje Y
Motor eje X
placa controladora ICARO con dos relespara cambiar la direccion de giro de los motores
Video de ejemplo de la camara
martes, 10 de noviembre de 2009
brazo robotico
La idea basica era fabricar de un brazo de costo casi cero con componentes recuperados de basura electronica, poco hardware y aprovechar los 8 conectores de la placa ICARO.
Basicamente, cada motor es controlado por un relé doble inversor, y este a su ves es controlado por 2 conectores del puerto paralelo (con este esquema se puede controlar hasta 4 motores).
un conector envia tension al motor prendiendolo y apagandolo; El otro motor controla el rele que al activarlo cambia la polaridad de la tension haciendo que el motor gire para un lado o para el otro.
de esta forma con los dos conectores de lpt se puede activar/desactivar el motor , cambiar su sentido de giro (derecha/izquierda) y controlando el encedido y apagado, se puede controlar la velocidad con la que gira prendiendolo y apagandolo en pulsos regulares (PWM).
Este pequeño brazo tiene muy poca presicion y es bastante debil para levantar objetos, pero mas que nada sta diseñado para demostrar como se pueden fabricar pequeños robots educativos con un bajo costo. Sin embargo, si se utilizaran componentes de buena calidad (motores mas pontentes con servomecanismos y una estructura mas estable) se con el mismo codigo ICARO, se podria usar un brazo robotico muchisimo mas estable y profesional.
En esta fotografia se aprecia los motores y los grados de libertad del brazo robot.
los motores y sus engranajes son del dispositivo de ejeccion de la bandeja de CD de lectoras rotas.
Para controlarlo uso los 5 conectores de sensores de la placa ICARO para manejar cada motor a modo de jostick. 4 conectores controlan el giro izquierda/derecha de 2 motores. el quinto boton, cambia a los otros dos motores para asi poder controlar el giro de los 4 motores en total.
miércoles, 9 de septiembre de 2009
control de motores de CC
hay dos factores importantes a la hora de manipular un motor CC, uno es que la direccion de giro depende de la polaridad con la que se conecta la fuente de alimentacioin al motor, el otro factor, es la cantidad de tension y amperaje que se aplica al motor.
si queremos que gire para un lado o para el otro, debemos cambiar su plaridad. Si queremos aumentar o disminuir su potencia, subiremos o bajaremos la tension.
para el siguiente proyecto usaremos un rele doble inversor (bastante comun en las casa de electronica) en cada motor de CC para controlar su polaridad. como se observa En el grafico siguiente, nececitamos 2 puertos de la placa de control, el puerto 1 activa o desactiva el rele, y el puerto 2 envia tension al motor.
Cuando se aplica tension al rele, este mediante su bobina interna, mueve el interruptor cambiando la polaridad que se envia al motor mediante el puerto 2, es como si se sacaran los cables y se invirtieran cambiando su polaridad.
para controlar este motor nececitamos activar el puerto 2 para enviar tension al motor, y si queremos cambiar el sentido de giro, activamos el puerto 1 y el puerto 2.
En el siguiente programa vemos como activar durante 2 segundos la direccion de giro y despues cambiarla durante otros 2 segundo antes de salir del sistema
#----programa de ejemplo----inicio# poner los pines del puerto a cero y esperar
#5000 milisegundomultipuerto(0,5000)# activamos el puerto 2 y el motor
#girara en un sentido durante 2000 Msmultipuerto(2,2000)# activamos el puerto 2 y 1 (3) y el motor girara en el
#otro sentido durante 2000 Msmultipuerto(3,2000)# salimos del programamultipuerto(0,0)final
Para mostrar algunas de las posibilidades de este tipo de motores
en el siguiente video vemos un robot con 2 motores CC y 2 interruptores de contacto que al ser activados modifican el funcionamiento de os motores.
video
cuando el sensor izquierdo es activado (el robot choca contra la pared) el programa cambia la direccion del motor derecho durante 500 Ms y luego continua el ciclo normal. Cuando se activa el sensor derecho, es el motor izquierdo el que cambia de sentido de giro.
Si se activan los dos sensores al mismo tiempo, se cambia la polaridad a los dos motores para que el robot retroceda y despues se lo hace girar a la izquierda durante 500 Ms.
algunas imagenes del robotito



Aca esta el codigo de control del programa
#----programa del robot que resuelve laberintos----# poner los pines del puerto a cero y esperarinicio#variables de movimeinto del robot#----------------------------##retrocede rueda derecha
$a=2#avanza rueda derecha$b=3#----------------------------##----------------------------## retrocede rueda izquierda
$c=8# avanza rueda izquierda$d=12#----------------------------##avanza$e=15#retrocede$f=10#----------------------------## variables sensores# sensor derecha$g=63# sensor izquierda$h=255# ambos sensores$i=191#salir$j=119#----------------------------##----------------------------## inicia el programa ##----------------------------## pongo los pines a ceromultipuerto(0,4000)# bucle de iniciobucle# salirsi(%p=$j)
multipuerto(0,0)
final
finsi# Avanzomultipuerto($e,2)
multipuerto(5,30)# golpea ambos sensoressi(%p=$i)
multipuerto($f,200)
finsi# sensor izquierosi(%p=$h)
multipuerto($f,300)
multipuerto($d,360)
finsi# sensor derechosi(%p=$g)
multipuerto($f,300)
multipuerto($b,360)
finsi
finbuclefinal









