martes, 15 de diciembre de 2009

SERVOMOTOR





Los servos son un tipo especial de motor de c.c. que se caracterizan por su capacidad para posicionarse de forma inmediata en cualquier posición dentro de su intervalo de operación. Para ello, el servomotor espera un tren de pulsos que se corresponde con el movimiento a realizar. Están generalmente formados por un amplificador, un motor, un sistema reductor formado por ruedas dentadas y un circuito de realimentación, todo en un misma caja de pequeñas dimensiones. El resultado es un servo de posición con un margen de operación de 180° aproximadamente.



Se dice que el servo es un dispositivo con un eje de rendimiento controlado ya que puede ser llevado a posiciones angulares específicas al enviar una señal codificada. Con tal de que exista una señal codificada en la línea de entrada, el servo mantendrá la posición angular del engranaje. Cuando la señala codificada cambia, la posición angular de los piñones cambia. En la práctica, se usan servos para posicionar elementos de control como palancas, pequeños ascensores y timones. También se usan en radio-control, marionetas y, por supuesto, en robots. Los Servos son sumamente útiles en robótica. Los motores son pequeños. Un motor como el de las imágenes superiores posee internamente una circuitería de control y es sumamente potente para su tamaño. Un servo normal o estándar como el HS-300 de Hitec proporciona un par de 3 kg•cm a 4.8 V, lo cual es bastante para su tamaño, sin consumir mucha energía. La corriente que requiere depende del tamaño del servo. Normalmente el fabricante indica cual es la corriente que consume. Eso no significa mucho si todos los servos van a estar moviéndose todo el tiempo. La corriente depende principalmente del par, y puede exceder un amperio si el servo está enclavado.





Composición del servo

En la siguiente figura se muestra la composición interna de un servomotor. Se puede observar el motor, la circuitería de control, un juego de piñones, y la caja. También se pueden ver los 3 cables de conexión externa:

• uno (rojo) es para alimentación, Vcc (~ +5volts);

• otro (negro) para conexión a tierra (GND);

• el último (blanco o amarillo) es la línea de control por la que se le envía la señal codificada para comunicar el ángulo en el que se debe posicionar.



Servomotor desmontado



Detalle del tren de engranajes

Detalle del circuito de realimentación

El motor del servo tiene algunos circuitos de control y un potenciómetro conectado al eje central del motor. En la figura superior se puede observar a la derecha. Este potenciómetro permite a la circuitería de control, supervisar el ángulo actual del servo motor. Si el eje está en el ángulo correcto, entonces el motor está apagado. Si el circuito chequea que el ángulo no es correcto, el motor volverá a la dirección correcta, hasta llegar al ángulo que es correcto. El eje del servo es capaz de llegar alrededor de los 180 grados. Normalmente, en algunos llega a los 210 grados, pero varía según el fabricante.

Un servo normal se usa para controlar un movimiento angular de entre 0 y 180 grados. Un servo normal no es mecánicamente capaz de retornar a su lugar, si hay un mayor peso que el sugerido por las especificaciones del fabricante.

El voltaje aplicado al motor es proporcional a la distancia que éste necesita viajar. Así, si el eje necesita regresar una distancia grande, el motor regresará a toda velocidad. Si este necesita regresar sólo una pequeña cantidad, el motor girará a menor velocidad. A esto se le denomina control proporcional.





Funcionamiento del servo. Control PWM

La modulación por anchura de pulso, PWM (Pulse Width Modulation), es una de los sistemas más empleados para el control de servos. Este sistema consiste en generar una onda cuadrada en la que se varía el tiempo que el pulso está a nivel alto, manteniendo el mismo período (normalmente), con el objetivo de modificar la posición del servo según se desee.

Para la generación de una onda PWM en un microcontrolador, lo más habitual es usar un timer y un comparador (interrupciones asociadas), de modo que el microcontrolador quede libre para realizar otras tareas, y la generación de la señal sea automática y más efectiva. El mecanismo consiste en programar el timer con el ancho del pulso (el período de la señal) y al comparador con el valor de duración del pulso a nivel alto. Cuando se produce una interrupción de overflow del timer, la subrutina de interrupción debe poner la señal PWM a nivel alto y cuando se produzca la interrupción del comparador, ésta debe poner la señal PWM a nivel bajo. En la actualidad, muchos microcontroladores, como el 68HC08, disponen de hardware específico para realizar esta tarea, eso sí, consumiendo los recursos antes mencionados (timer y comparador).



PWM para recorrer todo el rango de operación del servo

El sistema de control de un servo se limita a indicar en que posición se debe situar. Esto se lleva a cabo mediante una serie de pulsos tal que la duración del pulso indica el ángulo de giro del motor. Cada servo tiene sus márgenes de operación, que se corresponden con el ancho del pulso máximo y mínimo que el servo entiende. Los valores más generales se corresponden con pulsos de entre 1 ms y 2 ms de anchura, que dejarían al motor en ambos extremos (0º y 180º). El valor 1.5 ms indicaría la posición central o neutra (90º), mientras que otros valores del pulso lo dejan en posiciones intermedias. Estos valores suelen ser los recomendados, sin embargo, es posible emplear pulsos menores de 1 ms o mayores de 2 ms, pudiéndose conseguir ángulos mayores de 180°. Si se sobrepasan los límites de movimiento del servo, éste comenzará a emitir un zumbido, indicando que se debe cambiar la longitud del pulso. El factor limitante es el tope del potenciómetro y los límites mecánicos constructivos.

El período entre pulso y pulso (tiempo de OFF) no es crítico, e incluso puede ser distinto entre uno y otro pulso. Se suelen emplear valores ~ 20 ms (entre 10 ms y 30 ms). Si el intervalo entre pulso y pulso es inferior al mínimo, puede interferir con la temporización interna del servo, causando un zumbido, y la vibración del eje de salida. Si es mayor que el máximo, entonces el servo pasará a estado dormido entre pulsos. Esto provoca que se mueva con intervalos pequeños.

Es importante destacar que para que un servo se mantenga en la misma posición durante un cierto tiempo, es necesario enviarle continuamente el pulso correspondiente. De este modo, si existe alguna fuerza que le obligue a abandonar esta posición, intentará resistirse. Si se deja de enviar pulsos (o el intervalo entre pulsos es mayor que el máximo) entonces el servo perderá fuerza y dejará de intentar mantener su posición, de modo que cualquier fuerza externa podría desplazarlo.



Tren de pulsos para control del servo



Otra posibilidad de pulsos de control

Observaciones:

• Lo que hacen algunos es quitar el tope mecánico que llevan las reductoras en alguna corona y cambiar el potenciómetro (que aquí actúa como sensor para indicar la posición en la que está el motor) por un par de resistencias fijas para "engañar" a la electrónica haciéndole ver que no ha alcanzado aún la posición deseada, con lo que el pobre motor, siguiendo esa consigna, gira y gira intentando llegar a la posición, que no se da cuenta que alcanza. Se supone (es que esto no lo he probado) que el control que llevan los servos está preparado de tal manera que cuando se determina llegar a una posición cercana la velocidad es baja. Por el contrario, si se indica una posición que queda lejos de la actual, lo hace más rápidamente. Así puedes "ajustar" la velocidad de los motores.

• Otra de las grandes utilidades del PWM es la de gestionar la velocidad de cualquier tipo de motor, sin ningún tipo de electrónica, (salvo para la etapa de potencia, que se puede utilizar algún transistor MOSFET de potencia, como el BUK10 ó el BUK11, con los que podemos controlar poniendo la salida del micro, directamente a la puerta del MOSFET. Ambos TRT gestionan mas de 20 Amperios, con unas resistencias de canal de 0.03. Para mejorar el rendimiento se coloca una resistencia entre el surtidor y la puerta de 1K, para descargar la carga parásita). El principio es el siguiente, si tu alimentas un motor con una señal de pulsos de suficiente frecuencia, el motor no nota las variaciones (actúa como un filtro) y saca un giro constante. La gracia, es que variando el % de tiempo de la señal rectangular en alta, y en baja, variamos la potencia que le entregamos al motor, con lo que controlamos la velocidad de giro con mucha precisión. Nota: Si el micro lo permite, a mayor frecuencia de PWM, mejor rendimiento saca el motor.



Circuito driver del Servo

La que se proporciona aquí es una versión. Puede usarse para jugar con servos, para verificar que funcionan, o para conectarle servos a un Robot. Lo primero para este montaje es encontrar los pulsos requeridos con un osciloscopio para programarlo en un microcontrolador.



Se usa un integrado "Timer" 555. El nombre usual es NE555 o LM555, pero casi todos fabricantes de IC´s lo han hecho. A veces también es listado como 7555. Este circuito se encuentra en las hojas de datos de los manuales ECG, National, Motorola u otros, con los valores de resistencias/condensadores calculados con las fórmulas precisas. La única diferencia es la presencia del potenciómetro P1, que cambia el tiempo cuando se gira..

La señal de salida del 555 (pin3) tiene polaridad opuesta. Para invertirla, es necesario el transistor. Éste se conecta en configuración "colector común" y se usa en modo de saturación. Se podría usar cualquier transistor npn de baja señal para trabajar sin problemas (por ejemplo, un C1959Y).






No hay comentarios:

Publicar un comentario

por favor dejen su comentario