Los servomotores, también
llamados servos, son motores de corriente continua cuyo eje tiene la capacidad
de girar un número de grados variable, según sea la anchura de una señal
aplicada al terminal de control del mismo, así como de controlar su velocidad.
Para mantener la posición es necesario el envío continuo de un tren de pulsos
con la anchura adecuada.
Las aplicaciones más comunes
de los servos van desde el aeromodelismo hasta la robótica y la automática, ya
que se poseen una gran precisión en el posicionamiento.
Existen
dos tipos de servomotores, los analógicos y los digitales. Ambos tienen una
misma base constructiva:
La diferencia entre ambos
servos radica en la inclusión de un microprocesador en el control del servo
digital, el cual se encarga de procesar la señal de control con una frecuencia
10 veces mayor que la de un servo analógico. Este aumento se traduce en una
disminución del tiempo de respuesta, aumento de la resolución, mayor suavidad
en el movimiento, así como posibilidad de configuración de algunos parámetros
que son fijos en los servos analógicos (sentido de giro, posición central al
inicio, etc.).
Aunque todo parecen ventajas
en los servos digitales, también poseen algunos inconvenientes que no deben ser
obviados a la hora de su utilización, como por ejemplo un mayor del consumo
(necesidad de generar más pulsos) y la necesidad de programarlos con los dispositivos específicos de cada marca.
Control
del servomotor
Los servos tienen tres cables
para su funcionamiento. Dos de ellos son necesarios para conseguir la
alimentación del servo y el tercero sirve para su control.
La tensión de alimentación
puede variar normalmente entre 4.8 y 6 voltios de corriente continua obteniendo velocidades y torques (pares)
diferentes para cada tensión. Los colores de estos cables pueden variar según
el fabricante.
Figura 56: Códigos de
colores según fabricante
El cable de control, cuyo color
también varía según el fabricante, sirve para obtener una posición determinada
según una señal PWM (“Pulse Width Modulation”) introducida.
La señal PWM que debemos
enviar al servomotor debe tener una frecuencia de 50 Hz, esto es, cada 20
milisegundos. La anchura de cada pulso determinará la posición que conseguirá
el servo en cada instante. Los valores máximos y mínimos de esta anchura de
pulso varían dependiendo de la marca del servo, por tanto, es fundamental
realizar pruebas que determinen exactamente estos valores. Unos valores
habituales están entre 0.5 y 2.5 ms
Para
el posicionamiento en el plano horizontal hemos decidido utilizar el servo S125
(1T) del fabricante GWS con posibilidad de giro de 0º a 360º, utilizado
comúnmente en aplicaciones de modelismo de barcos a vela.
Según
la tensión aplicada variará el tiempo que tarda en realizar el giro deseado. En
nuestro caso, con una tensión de 5v tardará 1,56 segundos en realizar un giro
de 360º. En el caso de una rotación de 60º el tiempo invertido es de 0,26 seg.
Figura 60: Servo GWS
S125T
Mediante una serie de pruebas
hemos testado el servo obteniéndose los siguientes resultados:
El procedimiento que se ha
diseñado para situar al servo en una posición solicitada (anguloH) es calcular
la anchura del pulso que hay que enviar por la señal de control al servo y que
se corresponde con la siguiente expresión:
AnchuraPulsoH = minPulseH + (anguloH*IncremxgradoH)
Para conectar este servo a la
placa principal se ha utilizado un conector de tres pines macho cuya conexión
viene reflejada en la siguiente tabla:
Figura: Conexión Servo
Horizontal/aplicación
PIN |
SEÑAL |
DESCRIPCIÓN |
1 |
CTRL_MOTOR_H |
Señal de control del servo H |
2 |
GND |
Tierra (0 v) |
3 |
Vmotor |
Alimentación
del servo (5 v) |
Este
servo tiene un rango de movimiento de +/- 90º.
Figura 62: Servomotor
Futaba S3003
Este servomotor realiza un
giro de 60º en 0,23 segundos cuando le aplicamos una tensión de 4.8 v reales.
Mediante una serie de pruebas
hemos testado el servo obteniéndose los siguientes resultados:
De igual manera que con el
servo horizontal, el algoritmo que se ha diseñado para situar al servo en una
posición dada (anguloV) es calcular la anchura del pulso que hay que enviarle
por la señal de control y que se corresponde con la siguiente expresión:
AnchuraPulsoV = minPulseV + (anguloV*IncremxgradoV)
Figura: Conexión Servo
vertical/aplicación
Para el servomotor con movimiento vertical
PIN |
SEÑAL |
DESCRIPCIÓN |
1 |
CTRL_MOTOR_V |
Señal de control del servo V |
2 |
GND |
Tierra (0 v) |
3 |
Vmotor |
Alimentación
del servo (5 v) |