Controlando hasta 8 servomotores con la Interfaz para puerto paralelo IPP01

 

Proyecto: Controlando hasta 8 servomotores con la Interfaz para Puerto Paralelo

Autor: TodoRobot

 

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:

    • Fijo: se envía pulso de anchura fija, ajustable manualmente.

    • 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).

    • 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.

 

 

 

 

..