Cintillo Institucional
Diferencias entre las revisiones 23 y 24
Versión 23 con fecha 2011-05-31 15:13:56
Tamaño: 12249
Comentario:
Versión 24 con fecha 2011-05-31 17:52:20
Tamaño: 22033
Comentario:
Los textos eliminados se marcan así. Los textos añadidos se marcan así.
Línea 21: Línea 21:

Un servomotor (también llamado servo) es un dispositivo similar a un motor de corriente continua que tiene la capacidad de ubicarse en cualquier posición dentro de su rango de operación, y mantenerse estable en dicha posición.<<BR>>

Los servos se utilizan frecuentemente en sistemas de radio control y en robótica, pero su uso no está limitado a estos. Es posible modificar un servomotor para obtener un motor de corriente continua que, si bien ya no tiene la capacidad de control del servo, conserva la fuerza, velocidad y baja inercia que caracteriza a estos dispositivos.<<BR>>
 <<BR>>

<<BR>>
Línea 28: Línea 27:
Está conformado por un motor, una caja reductora y un circuito de control. Un servo normal o estándar tiene 3kg por cm. de torque, lo cual es bastante fuerte para su tamaño. También potencia proporcional para cargas mecánicas. Un servo, por consiguiente, tiene un consumo de energía reducido.
Línea 32: Línea 29:
Línea 34: Línea 30:


“Dadme un punto de apoyo y moveré al mundo” habría dicho Arquímedes de Siracusa, arrastrado quizá por un entusiasmo desmedido ante su descubrimiento de la ley de la palanca. A partir de allí comienza la historia de las máquinas simples, y el dispositivo que veremos y aplicaremos hoy en este artículo es un buen ejemplo de ello.

Un servomotor es básicamente un actuador mecánico basado en un motor y un conjunto de engranajes que permiten multiplicar el torque del sistema final, el cual posee elementos de control para monitorear de manera constante la posición de un elemento mecánico que será el enlace con el mundo exterior. Es decir, ante una acción inducida electrónicamente a un servomotor, obtendremos por resultado una respuesta mecánica controlada. Por ejemplo, los motores que forman parte de una impresora, junto a los sistemas de control de avance o retroceso del papel, forman un servomotor.

Un clásico servomotor de reconocida marca y para aplicaciones sencillas Un clásico servomotor de reconocida marca y para aplicaciones sencillas
Línea 60: Línea 49:
Si para el control de uno de estos sistemas utilizamos un microcontrolador que además de actuar sobre el servomotor deba realizar otras actividades, se nos planteará siempre el temor de no lograr actuar en los tiempos requeridos por estos sistemas. Sin embargo, la clave de un funcionamiento satisfactorio y de una realización sin mayores complicaciones se basa en la utilización de un cristal de alta frecuencia (20 Mhz) para poder ejecutar todo el trabajo adicional que sea necesario hasta que llegue el momento de refrescar nuevamente el impulso de control del servomotor. Esto debe ir acompañado, por supuesto, de la observación cuidadosa del diagrama de tiempos de nuestra aplicación. Si para el control de uno de estos sistemas utilizamos un microcontrolador que además de actuar sobre el servomotor deba realizar otras actividades, se nos planteará siempre el temor de no lograr actuar en los tiempos requeridos por estos sistemas. Sin embargo, la clave de un funcionamiento satisfactorio y de una realización sin mayores complicaciones se basa en la utilización de un cristal de alta frecuencia (20 Mhz) para poder ejecutar todo el trabajo adicional que sea necesario hasta que llegue el momento de refrescar nuevamente el impulso de control del servomotor. Esto debe ir acompañado, por supuesto, de la
observación cuidadosa del diagrama de tiempos de nuestra aplicación.

Un Servo es un dispositivo pequeño que tiene un eje de rendimiento controlado. Este puede ser llevado a
posiciones angulares específicas al enviar una señal codificada. Con tal de que una señal codificada exista
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
superficies de control como el movimiento de palancas, pequeños ascensores y timones. Ellos también se
usan en radio control, títeres, y por supuesto, en robots.
Los Servos son sumamente útiles en robótica. Los motores son pequeños, cuando usted observa la foto de
arriba, tiene internamente una circuitería de control interna y es sumamente poderoso para su tamaño. Un
servo normal o Standard como el HS-300 de Hitec tiene 42 onzas por pulgada o mejor 3kg por cm. de
torque que es bastante fuerte para su tamaño. También potencia proporcional para cargas mecánicas. Un
servo, por consiguiente, no consume mucha energía. Se muestra la composición interna de un servo motor
en el cuadro de abajo. Podrá observar la circuitería de control, el motor, un juego de piñones, y la caja.
También puede ver los 3 alambres de conexión externa. Uno es para alimentación Vcc (+5volts),
conexión a tierra GND y el alambre blanco es el alambre de control.
Un servo desmontado.

¿Como trabaja un servo?

El motor del servo tiene algunos circuitos de control y un potenciómetro (una resistencia variable) esta es
conectada al eje central del servo motor. En la figura se puede observar al lado derecho del circuito. 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 el
correcto, el motor girará en la dirección adecuada hasta llegar al ángulo 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.
La cantidad de 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 correrá a una velocidad más lenta. A esto se le llama control
proporcional.
¿Cómo se debe comunicar el ángulo a cual el servo debe posicionarse?
El cable de control se usa para comunicar el ángulo. El ángulo está determinado por la duración de un
pulso que se aplica al alambre de control. A esto se le llama PCM Modulación codificada de Pulsos. El
servo espera ver un pulso cada 20 milisegundos (.02 segundos). La longitud del pulso determinará los giros
de motor. Un pulso de 1.5 ms., por ejemplo, hará que el motor se torne a la posición de 90 grados (llamado
la posición neutra). Si el pulso es menor de 1.5 ms., entonces el motor se acercará a los 0 grados. Si el
pulso es mayor de 1.5ms, el eje se acercará a los 180 grados.
NEUTRAL
0 GRADOS
180 GRADOS
Como se observa en la figura, la duración del pulso indica o dictamina el ángulo del eje (mostrado como
un círculo verde con flecha). Nótese que las ilustraciones y los tiempos reales dependen del fabricante de
motor. El principio, sin embargo, es el mismo.
Para los Hitec: 0.50 ms = 0 grados, 1.50 ms = 90 grados y 2.5 ms = 180 grados.
* Características generales:
Este documento trata acerca del control de servos. Estos servos tienen un amplificador, servo motor,
Piñonería de reducción y un potenciómetro de realimentación; todo incorporado en el mismo conjunto.
Esto es un servo de posición (lo cual significa que uno le indica a qué posición debe ir), con un rango de
aproximadamente 180 grados. Ellos tienen tres cables de conexión eléctrica; Vcc, GND, y entrada de
control.
*Control
Para controlar un servo, usted le ordena un cierto ángulo, medido desde 0 grados. Usted le envía una serie
de pulsos. En un tiempo ON de pulso indica el ángulo al que debe posicionarse; 1ms = 0 grados, 2.0ms =
máx. grado (cerca de 120) y algún valor entre ellos da un ángulo de salida proporcional. Generalmente se
considera que en 1.5ms está el "centro." Entre límites de 1 ~ 2ms son las recomendaciones de los
fabricantes; usted normalmente puede usar un rango mayor de 1.5ms para obtener un ángulo mayor e
incluso de 2ms para un ángulo de rendimiento de 180 grados o más. El factor limitante es el tope del
potenciómetro y los límites mecánicos construidos en el servo. Un sonido de zumbido normalmente indica
que usted está forzando por encima al servo, entonces debe disminuir un poco.
El tiempo de OFF en el servo no es crítico; puede estar alrededor de los 20ms. Hemos usado entre 10ms y
30 ms. Esto No tiene que ser de ésta manera, puede variar de un pulso a otro. Los pulsos que ocurren
frecuentemente en el tiempo de OFF pueden interferir con el sincronismo interno del servo y podría
escucharse un sonido de zumbido o alguna vibración en el eje. Si el espacio del pulso es mayor de 50ms
(depende del fabricante), entonces el servo podría estar en modo SLEEP entre los pulsos. Entraría a
funcionar en pasos pequeños y el rendimiento no sería el óptimo.
Este es un ejemplo de la señal que debería tener el servo:
____
____
____
____
________
OFF
ON |_____
_|
|____________|
|___________|
|_____ |
|___________|
El tiempo de OFF está variando, como se puede observar. Esto no tiene efectos adversos con tal de que
esté entre 10 ~ 30ms. El tiempo de ON determina la posición del brazo de salida.
Tenga mucho cuidado que hay servos viejos que usan polaridad de pulso invertido (es decir donde tiempo
de OFF es importante). Ellos son difíciles de conseguir en estos días. También, hay algunos servos que
tienen el "centro" en posición diferente y rangos de tiempo diferentes. No es común. ¡Pero si usted llega a
tener uno de estos servos, todo lo que tiene que hacer es cambiar su tiempo de pulso o polaridad! El resto
es lo mismo.
¿*Supongamos que queremos mover el servo a 30 grados?
Para controlarlo a 30 grados; se debe calcular la longitud (ancho) del pulso:
En 0 grados =1ms, 120 grados = 2ms => 30 grados =1.16ms. Relación lineal.
Así, si seguimos enviándole pulsos de 1.16ms, incrementaremos su posición en 30 grados. Si hay una
fuerza externa que intenta bloquearlo, el servo intentará resistir activamente (es decir, sí el brazo se mueve
externamente, el servo dará entradas al motor para corregir el error).
También es posible dejar de enviar pulsos después que el servo se ha movido a su posición. Si dejamos
de enviar pulsos por más de 50ms (dependiendo del servo), este podría caerse. Esto significa, que este no
estaría aplicando ninguna entrada al motor, o activamente resistiendo fuerzas externas; solamente la
fricción sostendrá el brazo (del servo) en su lugar.
*Circuito Driver del Servo
Esta es una versión. Puede usarse para jugar con servos, para verificar que ellos funcionen, o parta
conectarle servos a un Robot. Lo primero para este Driver es encontrar los pulsos requeridos con un
osciloscopio para programarlo en un microcontrolador. Como de costumbre, este circuito es "como es",
no se garantiza algo útil u óptimo y negamos alguna responsabilidad por cualquier daño ocasionado que
pueda causarse mientras construyen o usan éste circuito.
Este usa un IC TIMER "Timer" 555. El nombre usual es NE555 o LM555, pero casi todos los fabricantes
de IC ́s lo han hecho.
El circuito esquemático lo encuentra en las hojas de datos de los manuales ECG, National, Motorola
u otros, con los valores de resistor/capacitor calculados de las fórmulas. La única diferencia es
la presencia del potenciómetro P1, el cual cambia el tiempo constantemente como usted lo mueva.
La señal de salida del IC (pin3) tiene mala polaridad. Para Invertir esta, es necesario el transistor. El
transistor se conecta en configuración "colector común" y se usa en modo de saturación (esto significa
APAGADO ó ENCENDIDO), así podría usar cualquier transistor npn para trabajar sin problemas (en
nuestro caso usamos un C1959Y).
En caso de que usted no pueda leer los valores, aquí está una lista de las partes:
R1: 220K
R2: 15K
R3: 10K
R4: 10K
P1: 10K
C1: 100nF
C2: 100nF
V1: 4~6V
Pilas o baterías 4 AA ó usar una fuente de voltaje a 5 Voltios.
Cualquier transistor npn de baja señal.
¿*Pero cual CABLE es cual?
Los cables del servo son normalmente codificados en colores como en el esquemático. Hitec, Futaba y
Hobbico usan la misma convención. JR y Graupner tienen el control de color Naranja(Pero el orden de la
instalación eléctrica es igual que Futaba). Otros como Sanwa (Airtronics) tienen la línea de GND azul.
Otros Sanwa tienen todos los cables negros, con la raya roja a un lado. El alambre rayado es Vcc, el
siguiente es GND y el último es la señal de control (clasificación diferente que Futaba).
Los Hitec, Futaba o Hobbico y tienen esta distribución:
Señal de control (Amarillo o Blanco)
Vcc (Rojo)
GND (Negro).
Los números y las posiciones de los cables en el esquemático son arbitrarias, verifique su propio servo
antes de conectarlo. Una señal de voltaje mal polarizada puede dañar el servo.
*Suministro de Voltaje
El voltaje nominal es el que un pack de pilas de 4x1.2V de NiCd puede dar; 4.8V. En la práctica, esto
puede variar significativamente. Algunas compañías de Servos producen paquetes de pilas de 5 unidades
de NiCd, con un voltaje nominal de 6.0V, pero tienen entre 6.5 ~ 7V cuando están recién cargadas. Futaba
da especificaciones de Servo velocidad/torque para 6V Consideremos 7V como un máximo seguro.
También supongamos que los servos trabajan con un paquete de pilas NiCd de 4 unidades, a 4.4V. Pero
la respuesta sería algo lenta. Así que se puede trabajar entre 4.4 V y 7.0 V,. Eso lo decide cada cual.
Recomendamos usar 5V sin problemas. Se puede usar una fuente de voltaje de 5V, incluso usar integrados
reguladores, como el 7805; sólo no alimenta el protoboard o su circuito impreso con un buen desempeño,
sino que también puede alimentar dos servos.
La corriente que requiere depende del tamaño del servo. Normalmente el fabricante indica cual es la
corriente que consume el Servo. Eso no significa mucho si todos los servos van a estar moviéndose todo
el tiempo. La corriente depende principalmente del torque usado por el servo motor y puede exceder más
de un amperio si el servo está enclavado. Es mejor medir las especificaciones del servo.









Línea 71: Línea 220:
Conectando un servo
Las conexiones son muy sencillas y se basan en una normativa de colores muy elementales que involucran al Rojo como positivo de la alimentación principal, junto a otro cable que puede ser de color Negro o Marrón y que, por lógica, podemos deducir que se trata del negativo de alimentación. Un tercer cable, correspondiente al control de posicionamiento del actuador mecánico, es Amarillo o Blanco. En la primera imagen se puede apreciar el conjunto de colores Rojo – Negro y Amarillo para la conexión en servomotores de la marca HITEC.

Línea 73: Línea 226:

En los servos Hitec, el Negro es la masa o negativo, el rojo (centro) es la alimentación o positivo, y el tercer cable es el de señal.

wiki comunidad

Proyecto Hardware Libre Cenditel

Página Cenditel

wiki Cenditel

Plataforma de Desarrollo Colaborativo

Curso Sensibilización Hardware Libre (Unidad 002)

logohl.png logohl.png logohl.png

003/01 Actividad 005

El Servo Motor

Un Servomotor es un dispositivo pequeño que tiene un eje de rendimiento controlado. Este puede ser llevado a posiciones angulares específicas al enviar una señal codificada, al cambiar esta señal enviada al motor la posición angular cambia. Los servomotores se consideran como primer paso en la robótica.

El motor del servo tiene algunos circuitos de control y un potenciómetro que esta conectado al eje central del servo motor. 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 el correcto, el motor girará en la dirección adecuada hasta llegar al ángulo 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.

La cantidad de 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 correrá a una velocidad más lenta. A esto se le llama control proporcional.



Características

La corriente que requiere depende del tamaño del servo. Normalmente el fabricante indica cual es la corriente que consume. La corriente depende principalmente del par, y puede exceder un amperio si el servo está enclavado, pero no es muy alto si el servo está libre moviéndose todo el tiempo.

Estos dispositivos son considerados una de las materias primas en el diseño y la construcción de los robots. Si combinamos y administramos los movimientos en un montaje mecánico adecuado, un grupo variable de servomotores puede dar motricidad y locomoción a sistemas controlados de manera local o remota. Desde pequeñas aplicaciones didácticas hasta el más complejo diseño robótico. Los límites son tu imaginación y tus ganas de aprender.

Las aplicaciones de estos sistemas esclavos se pueden observar mayormente en aeromodelismo y robótica, pero no son exclusivos de estos usos. Cualquier sistema que requiera un posicionamiento mecánico preciso y controlado dependerá de un servosistema o servomecanismo, actuado, por supuesto, por un servomotor. El zoom de una cámara, el autoenfoque de un conjunto óptico, un sistema de movilización de cámaras de vigilancia y hasta las puertas automáticas de un ascensor son sencillos ejemplos de su aplicación.

El motor posee la característica de girar a una buena velocidad, la cual disminuye por los juegos de engranajes de la caja reductora que aprovechan esta velocidad para transformarla en fuerza de trabajo. Al girar el último engranaje acoplado al eje de salida obtenemos una velocidad notablemente reducida, a pesar de que, dentro del sistema, el motor está girando a altas velocidades.

Diagrama en bloques de la estructura interna de un servomotor Diagrama en bloques de la estructura interna de un servomotor

Además, en esta última rueda de acoplamiento encontraremos topes o límites de recorrido para entregarnos en la salida final un giro de 180° del brazo actuador. En la mayoría de los servomotores, este desplazamiento angular es “copiado” por un potenciómetro incorporado al sistema de control y solidario en forma mecánica al eje externo. Este sensor resistivo se encargará de informarle al sistema la posición que posee el actuador exterior para así controlar con exactitud que la instrucción de posicionamiento enviada esté siendo ejecutada fielmente.

La tensión de trabajo de los servomotores suele estar comprendida entre los 3 y los 7 Volts, siendo 5 Volts la tensión que se utiliza en la mayoría de las aplicaciones fijas donde interviene una fuente de alimentación conectada a la red de energía domiciliaria, y 6 Volts para los casos de alimentación a baterías cuando se trata de equipos móviles. En todos los casos, siempre se requiere de una señal de control de 5 Volts de amplitud.

La señal de control del servo Como mencionamos al principio, los servomotores se controlan mediante impulsos de ancho variable que deben refrescarse periódicamente. Esto significa que si dejamos de enviar la señal de control en el tiempo en el que el servomotor lo necesita, éste (a pesar de estar energizado) dejará de mantenerse en la posición preestablecida y adoptará cualquier orientación regida por el esfuerzo al que esté sometido. Es decir, si no mantenemos la señal de control en forma efectiva todo el tiempo que sea necesario, el sistema quedará a merced de las fuerzas externas a la que sea sometido. Por ejemplo, un brazo de palanca dejará de sostener un objeto y se dejará caer todo el trayecto mecánico que pueda recorrer, o un sistema erguido en vertical se caerá hacia atrás o hacia adelante al momento en el que el servomotor deje de “sostener” la aplicación en la posición preestablecida.

Para bloquear al servomotor en una posición es necesario, entonces, enviarle continuamente la señal con la posición deseada. De esta forma, el sistema de control seguirá operando y el servo conservará su posición y se resistirá a las fuerzas externas que intenten cambiarlo de posición.

Tiempos de duración de los impulsos y dirección obtenida del actuador Tiempos de duración de los impulsos y dirección obtenida del actuador

Si para el control de uno de estos sistemas utilizamos un microcontrolador que además de actuar sobre el servomotor deba realizar otras actividades, se nos planteará siempre el temor de no lograr actuar en los tiempos requeridos por estos sistemas. Sin embargo, la clave de un funcionamiento satisfactorio y de una realización sin mayores complicaciones se basa en la utilización de un cristal de alta frecuencia (20 Mhz) para poder ejecutar todo el trabajo adicional que sea necesario hasta que llegue el momento de refrescar nuevamente el impulso de control del servomotor. Esto debe ir acompañado, por supuesto, de la observación cuidadosa del diagrama de tiempos de nuestra aplicación.

Un Servo es un dispositivo pequeño que tiene un eje de rendimiento controlado. Este puede ser llevado a posiciones angulares específicas al enviar una señal codificada. Con tal de que una señal codificada exista 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 superficies de control como el movimiento de palancas, pequeños ascensores y timones. Ellos también se usan en radio control, títeres, y por supuesto, en robots. Los Servos son sumamente útiles en robótica. Los motores son pequeños, cuando usted observa la foto de arriba, tiene internamente una circuitería de control interna y es sumamente poderoso para su tamaño. Un servo normal o Standard como el HS-300 de Hitec tiene 42 onzas por pulgada o mejor 3kg por cm. de torque que es bastante fuerte para su tamaño. También potencia proporcional para cargas mecánicas. Un servo, por consiguiente, no consume mucha energía. Se muestra la composición interna de un servo motor en el cuadro de abajo. Podrá observar la circuitería de control, el motor, un juego de piñones, y la caja. También puede ver los 3 alambres de conexión externa. Uno es para alimentación Vcc (+5volts), conexión a tierra GND y el alambre blanco es el alambre de control. Un servo desmontado.

¿Como trabaja un servo?

El motor del servo tiene algunos circuitos de control y un potenciómetro (una resistencia variable) esta es conectada al eje central del servo motor. En la figura se puede observar al lado derecho del circuito. 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 el correcto, el motor girará en la dirección adecuada hasta llegar al ángulo 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. La cantidad de 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 correrá a una velocidad más lenta. A esto se le llama control proporcional. ¿Cómo se debe comunicar el ángulo a cual el servo debe posicionarse? El cable de control se usa para comunicar el ángulo. El ángulo está determinado por la duración de un pulso que se aplica al alambre de control. A esto se le llama PCM Modulación codificada de Pulsos. El servo espera ver un pulso cada 20 milisegundos (.02 segundos). La longitud del pulso determinará los giros de motor. Un pulso de 1.5 ms., por ejemplo, hará que el motor se torne a la posición de 90 grados (llamado la posición neutra). Si el pulso es menor de 1.5 ms., entonces el motor se acercará a los 0 grados. Si el pulso es mayor de 1.5ms, el eje se acercará a los 180 grados. NEUTRAL 0 GRADOS 180 GRADOS Como se observa en la figura, la duración del pulso indica o dictamina el ángulo del eje (mostrado como un círculo verde con flecha). Nótese que las ilustraciones y los tiempos reales dependen del fabricante de motor. El principio, sin embargo, es el mismo. Para los Hitec: 0.50 ms = 0 grados, 1.50 ms = 90 grados y 2.5 ms = 180 grados. * Características generales: Este documento trata acerca del control de servos. Estos servos tienen un amplificador, servo motor, Piñonería de reducción y un potenciómetro de realimentación; todo incorporado en el mismo conjunto. Esto es un servo de posición (lo cual significa que uno le indica a qué posición debe ir), con un rango de aproximadamente 180 grados. Ellos tienen tres cables de conexión eléctrica; Vcc, GND, y entrada de control. *Control Para controlar un servo, usted le ordena un cierto ángulo, medido desde 0 grados. Usted le envía una serie de pulsos. En un tiempo ON de pulso indica el ángulo al que debe posicionarse; 1ms = 0 grados, 2.0ms = máx. grado (cerca de 120) y algún valor entre ellos da un ángulo de salida proporcional. Generalmente se considera que en 1.5ms está el "centro." Entre límites de 1 ~ 2ms son las recomendaciones de los fabricantes; usted normalmente puede usar un rango mayor de 1.5ms para obtener un ángulo mayor e incluso de 2ms para un ángulo de rendimiento de 180 grados o más. El factor limitante es el tope del potenciómetro y los límites mecánicos construidos en el servo. Un sonido de zumbido normalmente indica que usted está forzando por encima al servo, entonces debe disminuir un poco. El tiempo de OFF en el servo no es crítico; puede estar alrededor de los 20ms. Hemos usado entre 10ms y 30 ms. Esto No tiene que ser de ésta manera, puede variar de un pulso a otro. Los pulsos que ocurren frecuentemente en el tiempo de OFF pueden interferir con el sincronismo interno del servo y podría escucharse un sonido de zumbido o alguna vibración en el eje. Si el espacio del pulso es mayor de 50ms (depende del fabricante), entonces el servo podría estar en modo SLEEP entre los pulsos. Entraría a funcionar en pasos pequeños y el rendimiento no sería el óptimo. Este es un ejemplo de la señal que debería tener el servo: OFF ON |_ _| || |_| |_ | |_| El tiempo de OFF está variando, como se puede observar. Esto no tiene efectos adversos con tal de que esté entre 10 ~ 30ms. El tiempo de ON determina la posición del brazo de salida. Tenga mucho cuidado que hay servos viejos que usan polaridad de pulso invertido (es decir donde tiempo de OFF es importante). Ellos son difíciles de conseguir en estos días. También, hay algunos servos que tienen el "centro" en posición diferente y rangos de tiempo diferentes. No es común. ¡Pero si usted llega a tener uno de estos servos, todo lo que tiene que hacer es cambiar su tiempo de pulso o polaridad! El resto es lo mismo. ¿*Supongamos que queremos mover el servo a 30 grados? Para controlarlo a 30 grados; se debe calcular la longitud (ancho) del pulso: En 0 grados =1ms, 120 grados = 2ms => 30 grados =1.16ms. Relación lineal. Así, si seguimos enviándole pulsos de 1.16ms, incrementaremos su posición en 30 grados. Si hay una fuerza externa que intenta bloquearlo, el servo intentará resistir activamente (es decir, sí el brazo se mueve externamente, el servo dará entradas al motor para corregir el error). También es posible dejar de enviar pulsos después que el servo se ha movido a su posición. Si dejamos de enviar pulsos por más de 50ms (dependiendo del servo), este podría caerse. Esto significa, que este no estaría aplicando ninguna entrada al motor, o activamente resistiendo fuerzas externas; solamente la fricción sostendrá el brazo (del servo) en su lugar. *Circuito Driver del Servo Esta es una versión. Puede usarse para jugar con servos, para verificar que ellos funcionen, o parta conectarle servos a un Robot. Lo primero para este Driver es encontrar los pulsos requeridos con un osciloscopio para programarlo en un microcontrolador. Como de costumbre, este circuito es "como es", no se garantiza algo útil u óptimo y negamos alguna responsabilidad por cualquier daño ocasionado que pueda causarse mientras construyen o usan éste circuito. Este usa un IC TIMER "Timer" 555. El nombre usual es NE555 o LM555, pero casi todos los fabricantes de IC ́s lo han hecho. El circuito esquemático lo encuentra en las hojas de datos de los manuales ECG, National, Motorola u otros, con los valores de resistor/capacitor calculados de las fórmulas. La única diferencia es la presencia del potenciómetro P1, el cual cambia el tiempo constantemente como usted lo mueva. La señal de salida del IC (pin3) tiene mala polaridad. Para Invertir esta, es necesario el transistor. El transistor se conecta en configuración "colector común" y se usa en modo de saturación (esto significa APAGADO ó ENCENDIDO), así podría usar cualquier transistor npn para trabajar sin problemas (en nuestro caso usamos un C1959Y). En caso de que usted no pueda leer los valores, aquí está una lista de las partes: R1: 220K R2: 15K R3: 10K R4: 10K P1: 10K C1: 100nF C2: 100nF V1: 4~6V Pilas o baterías 4 AA ó usar una fuente de voltaje a 5 Voltios. Cualquier transistor npn de baja señal. ¿*Pero cual CABLE es cual? Los cables del servo son normalmente codificados en colores como en el esquemático. Hitec, Futaba y Hobbico usan la misma convención. JR y Graupner tienen el control de color Naranja(Pero el orden de la instalación eléctrica es igual que Futaba). Otros como Sanwa (Airtronics) tienen la línea de GND azul. Otros Sanwa tienen todos los cables negros, con la raya roja a un lado. El alambre rayado es Vcc, el siguiente es GND y el último es la señal de control (clasificación diferente que Futaba). Los Hitec, Futaba o Hobbico y tienen esta distribución: Señal de control (Amarillo o Blanco) Vcc (Rojo) GND (Negro). Los números y las posiciones de los cables en el esquemático son arbitrarias, verifique su propio servo antes de conectarlo. Una señal de voltaje mal polarizada puede dañar el servo. *Suministro de Voltaje El voltaje nominal es el que un pack de pilas de 4x1.2V de NiCd puede dar; 4.8V. En la práctica, esto puede variar significativamente. Algunas compañías de Servos producen paquetes de pilas de 5 unidades de NiCd, con un voltaje nominal de 6.0V, pero tienen entre 6.5 ~ 7V cuando están recién cargadas. Futaba da especificaciones de Servo velocidad/torque para 6V Consideremos 7V como un máximo seguro. También supongamos que los servos trabajan con un paquete de pilas NiCd de 4 unidades, a 4.4V. Pero la respuesta sería algo lenta. Así que se puede trabajar entre 4.4 V y 7.0 V,. Eso lo decide cada cual. Recomendamos usar 5V sin problemas. Se puede usar una fuente de voltaje de 5V, incluso usar integrados reguladores, como el 7805; sólo no alimenta el protoboard o su circuito impreso con un buen desempeño, sino que también puede alimentar dos servos. La corriente que requiere depende del tamaño del servo. Normalmente el fabricante indica cual es la corriente que consume el Servo. Eso no significa mucho si todos los servos van a estar moviéndose todo el tiempo. La corriente depende principalmente del torque usado por el servo motor y puede exceder más de un amperio si el servo está enclavado. Es mejor medir las especificaciones del servo.

La Señal PWM

El refresco se realiza habitualmente con una frecuencia de 50 veces por segundo, pero es normal y efectivo trabajar entre los 10 y los 30 milisegundos. Por otro lado, el ancho del impulso, es decir, su tiempo de duración, dará la posición u orientación del actuador mecánico. En este punto en particular, se cuando se está constantemente atento a enviar un impulso de duración exacta para evitar oscilaciones mecánicas indeseadas, se centra la complejidad y la cautela al trabajar con servomotores.

Control de PWM con Arduino

Conectando un servo Las conexiones son muy sencillas y se basan en una normativa de colores muy elementales que involucran al Rojo como positivo de la alimentación principal, junto a otro cable que puede ser de color Negro o Marrón y que, por lógica, podemos deducir que se trata del negativo de alimentación. Un tercer cable, correspondiente al control de posicionamiento del actuador mecánico, es Amarillo o Blanco. En la primera imagen se puede apreciar el conjunto de colores Rojo – Negro y Amarillo para la conexión en servomotores de la marca HITEC.

Conexión del Servo

En los servos Hitec, el Negro es la masa o negativo, el rojo (centro) es la alimentación o positivo, y el tercer cable es el de señal.

Prácticas



Trabajo con servo motores con librería de arduino

dfdf

// Controlling a servo position using a potentiometer (variable resistor) 
// by Michal Rinott <http://people.interaction-ivrea.it/m.rinott> 

#include <Servo.h> 
 
Servo myservo;  // create servo object to control a servo 
 
int potpin = 0;  // analog pin used to connect the potentiometer
int val;    // variable to read the value from the analog pin 
 
void setup() 
{ 
  myservo.attach(7);  // attaches the servo on pin 9 to the servo object 
} 
 
void loop() 
{ 
  val = analogRead(potpin);            // reads the value of the potentiometer (value between 0 and 1023) 
  val = map(val, 0, 1023, 0, 179);     // scale it to use it with the servo (value between 0 and 180) 
  myservo.write(val);                  // sets the servo position according to the scaled value 
  delay(15);                           // waits for the servo to get there 
} 

Sin Librería Arduino

Este nos permite nodificar la frecuencia de la PWM

int potpin = 0;  // analog pin used to connect the potentiometer
int motorpin=9;
//int val;    // variable to read the value from the analog pin
int sensorval;
float val;



void setup()
{
//  myservo.attach(7);  // attaches the servo on pin 9 to the servo object
pinMode (motorpin,OUTPUT);

  TCCR1A = 0x00;  // esto es para setear el timer en uno de los modos de
generación de PWM
  TCCR1B = 0x13; // esto setea el "prescaler" (N), de la siguiente manera:

  // TCCR1B=0x11 --> N=1;  TCCR1B=0x12 -->N=8;  TCCR1B=0x13 -->N=64, etc.
  // N, el famoso "prescaler", es un divisor del clock de la Arduino (16MHz)

  ICR1 = 3000; //  ICR1 es el valor máximo del analogWrite, lo que le
llaman el "TOP"

}

void loop()
{
  sensorval = analogRead(potpin);            // reads the value of the
potentiometer (value between 0 and 1023)
  val = map(sensorval, 0, 1023, 75, 360);     // scale it to use it with
the servo (value between 0 and 180)
//  myservo.write(val);                  // sets the servo position
according to the scaled value
  analogWrite (motorpin,val);
  delay(15);                           // waits for the servo to get there
}

hlpd/curso_arduino/uni00301 (última edición 2011-06-13 21:58:17 efectuada por _desactivada_csoto)