Controlando hasta 8 servomotores con la Interfaz para puerto

Anuncio
Controlando hasta 8 servomotores con la Interfaz para puerto paralelo
IPP01
Proyecto: Controlando hasta 8 servomotores con la Interfaz para Puerto Paralelo
Introducción:
El propósito de este proyecto es aprovechar la Interfaz para el puerto paralelo para controlar hasta 8
servomotores estándar.
Para ello utilizaremos la Interfaz para el puerto paralelo publicada en esta misma sección, un servomotor
estándar y/o micro y el software EMISORO que gentilmente nos envió la gente de AutoWebadas.
Breve descripción de un servomotor:
El servomotor o simplemente Servo al que nos referimos en este proyecto es el comúnmente usado en
modelos RC (aviones, autos, barcos, etc) y muy útil también en robótica por su reducido peso y tamaño.
Estos pequeños pero potentes dispositivos disponen en su interior de un pequeño motor con un reductor
de velocidad y multiplicador de fuerza, también disponen de un pequeño circuito que gobierna el sistema.
El recorrido del eje de salida es de 180º en la mayoría de ellos y es sensado por un potenciómetro que le
indica a la lógica de control su posición.
Para controlar un servo se debe aplicar un pulso de duración y frecuencia específicos. Todos los servos
disponen de tres cables, dos para alimentación VCC (4.8v a 6v) y GND y el último cable para aplicar el
tren de pulsos de control que harán que el circuito de control diferencial interno ponga el servo en la
posición indicada por el ancho del pulso. Así por ejemplo en un pulso de 1.3 mSeg lo colocaría en una
posición central (90 grados), un pulso de 0.5 mSeg en 0 grados y un pulso 2.1mSeg. en 180 grados (estos
valores son aproximados y dependen de cada modelo y marca).
Si consultas nuestro proyecto "Construyendo un servomecanismo" en esta misma sección podrás entender
con mas detalle en que se basa internamente el funcionamiento de un Servo.
También recomendamos consultar nuestro informe Teoría de funcionamiento de los ServoMotores.
Diagrama de conexionado de las diferentes marcas
Esquema de conexión con la Interfaz Paralela (IPP01):
En la siguiente figura se puede ver el conexionado de cada servo en la Interfaz para Puerto Paralelo.
Nótese que la alimentación de cada servo debe unirse y conectarse directamente a la salida regulada de la
interfaz.
Lo recomendable es armar una pequeña placa con tres hileras de pines fácilmente construible sobre una
pequeña placa experimental y en ella conectar los servos, de lo contrario habría que cortar los conectores
de los servos y eso no es recomendable. En la siguiente figura podemos apreciar el diagrama de una placa
como la antedicha:
Usando el software EMISORO:
Emisoro es un programa para controlar hasta ocho servos de radio-control a través de un puerto de
impresora. El programa genera pulsos y los envía a través del puerto de impresora. Ello quiere decir que
sólo se puede utilizar en servos con pulso de niveles entre 0 y +5V (los más comunes).
La anchura de pulso nominal más comúnmente utilizada es entre 1000 y 2000 us (1-2 ms), con pulso
neutro (centro) de 1500 us (1.5 ms), esto corresponde a unos 180º de barrido total. El rango de variación
de los pulsos generados por el programa es entre 500 y 2500 us para adaptarse a variaciones existentes
entre los distintos fabricantes.
La principal utilidad del programa es poner los servos a realizar barrido, cuyo tiempo podemos controlar,
y de este modo dejar los servos en prueba, o controlar sus características. Puede tener otros usos variados,
como comprobar el pulso neutro (se centraría mecánicamente el servo a mano, y se buscaría el ancho de
pulso que lo deja centrado).
Inicialmente, el programa envía a cada servo pulsos 50 veces por segundo, aunque esto es variable.
Cuando se generan los pulsos, se dedica el ordenador exclusivamente a ello, lo que puede implicar
detención de otras tareas, particularmente si incluso un solo pulso es largo.
Parámetros: Para cada uno de los ocho servos tenemos:







Activo: desmarcando esta casilla el servo se para (no se envía pulso).
Modo Fijo/Progresivo/Extremo:
o Fijo: se envía pulso de anchura fija, ajustable manualmente.
o Progresivo: se envía un pulso variable entre mínimo y máximo, durante el tiempo de
barrido (el servo se moverá a derecha e izquierda).
o Extremo: similar al progresivo, excepto que se envían valores mínimos y máximos.
Pulso: pulso enviado en cada momento (la representación cambia para fijo o en barrido). En fijo
lo podemos variar entre mínimo y máximo pulso, y en barrido se varía entre estos mismos
límites automáticamente.
Máx. pulso: ajusta el valor máximo de ancho de pulso permisible
Mín. pulso: ajusta el valor mínimo de ancho de pulso permisible
Barrido: tiempo que dura el recorrido completo en un sentido, ajustable entre 100 ms y 2000 ms.
Con tiempos de barrido cortos se comprueba la rapidez de los servos.
Muestreos: el programa termina el pulso por interrupción de los temporizadores internos del PC.
Se indica el número de interrupciones. Así, si para pulso de 500 us vemos 60 muestreos (caso de
Pentium 100), el pulso se genera con precisión de 500/60 = 8.3 us. La
precisión será mayor cuanto más rápido sea el PC.
Asimismo, tenemos:


Elección de puerto de impresora. El programa inicialmente elige el primero encontrado.
Número de pulsos por segundo. Un emisor de radio-control envía pulsos secuencialmente,
alrededor de 50 ó 60 veces por segundo. El programa inicia los ocho pulsos al mismo tiempo, y
los va terminando en su momento. Se puede elegir entre 40 y 100 pulsos por segundo la tasa de
pulsos enviada a los servos, aunque para variarla todos los servos han de estar en modo fijo.
Normalmente, la variación de este parámetro no tendrá efecto visible alguno.
Características: Para Windows 3.1/3.11 (o bien 95/98). No NT. No se ha probado en Wabi/Wine. Se
recomienda un ordenador lo más rápido posible, aunque incluso en un 486DX2-66 el funcionamiento es
satisfactorio.
Instalación y uso. Basta con el ejecutable EMISORO.EXE. El PC no debe estar en ahorro de
energía.
Descargar