martes, 5 de agosto de 2008

Controladora de 8 servos y 5 entradas analogicas por USB

Buenas, soy fernando torrealba, y les traigo un articulo interesante, que pueden experimentar los que vean electronica 2, espero que les guste: (el articulo no es mio, lo saque de http://www.jvmbots.com/)
Controladora de 8 servos y 5 entradas analogicas por USB



Se trata de un prototipo de controladora de servos de RC para puerto USB 2.0. -Esta controladora, es capaz de gobernar 8 servos y de retornar el valor de 5 entradas analógicas con una resolución de 8 bits al mismo tiempo. Toda la informacion y controladores para la libreria del PC la consegui de aqui: http://www.intel.com/intelpress/usb/examples/VBOverview.htm
Ahora es posible manejar los brazos robóticos, robots y otros dispositivos que requieran un máximo de 8 servos RC, desde ordenadores fijos o portátiles que dispongan de un puerto USB (2.0).

-Todos sabemos que están desapareciendo cada vez mas los puertos COM de los PC's, muchos de los equipos portátiles ya carecen de puertos serie mientras que los USB van ganando terreno por su versatilidad y funcionalidad plug and play. Ante estas situaciones nos vemos obligados a recurrir a conversores extraños y otros dispositivos para adaptar las conexiones serie a USB y viceversa.

-Lo que os muestro aquí es una controladora que ya dispone del puerto USB en el propio PIC. El PIC es un PIC18F2550 que esta trabajando a una velocidad de reloj de 8 MHz. Con esto es mas que suficiente para mantener los ciclos PWM necesarios para los servos. Esta controladora, a través de un conjunto de interrupciones, es capaz de mantener la posición de los 8 servos mientras que estamos requiriéndole los datos analógicos de las 5 entradas. Es posible desarrollar un brazo robótico con ella.

-He implementado un completo sistema de comunicación por USB, de forma que se pueda actuar sobre cada servo individualmente o a todos ellos a la vez por medio de comandos USB. Estos comandos los envía el software (desarrollado en Vb6) desde el PC a través de una librería (dll) de tipo API.

OPCIONES DEL FIRMWARE DEL PIC (Funciones)

-la controladora es capaz de almacenar una posición de inicio para los servos, de forma que cuando se le suministra energía inicialmente, se sitúa en esta posición. Esta posición se puede modificar desde un comando del software.

• Podemos leer la posición de cada servo independientemente.
• Podemos variar la posición de los servos de uno en uno o de todos ellos en un solo comando.
• Leemos el valor de las entradas analógicas de una en una.
• Es posible acelerar la lectura de las entradas hasta un máximo de ciclo de 50 ms (se puede forzar mas pero no se recomienda)
• Podemos utilizar las entradas analógicas para posicionar los servos (solo hasta 5 mediante el software o modificando el codigo del pic)

ELECTRONICA
En el circuito observareis un pequeño rele de 5v, la función de este rele es cortar la alimentación positiva a los servos mientras se detecta la controladora por el USB.
Todos sabéis que si aplicamos corriente a un servo y dejamos su terminal de señal en el aire (sin conectar) se pueden obtener resultados imprevistos en los servos, pueden comenzar a moverse debido a que captan señales de ruido contenidos en la atmósfera porque son dispositivos extremamente sensibles.
Una vez la controladora es detectada por el PC se encenderá el Led rojo y a su vez se activara el rele, dando suministro eléctrico a los servos, así evitamos cualquier brusquedad imprevista en los servos. El Led verde indica datos recibidos en el usb (actividad). Para los que estéis interesados en construir esta controladora aquí os subo la información necesaria asi como los codigos fuente:

LISTA DE MATERIALES:

1- Cristal de cuarzo a 8MHz
2- Resistencias de 330 1/4w
1- Resistencia de 12K 1/4w
1- Resistencia de 10K 1/4w
2- Condensadores de 22pf (disco)
3- Condensadores de 100nf (poliéster)
1- Diodo 1N4007 1- Transistor BC547
1- Rele Omron de 5v 1 Circuito
1- Diodo Led rojo de 3mm
1- Diodo Led verde de 3mm
1- Clavija USB de chasis
1- Zócalo de 28 Pines

ESQUEMA ELECTRONICO


DISEÑO DEL PCB