Está en la página 1de 11

Dadme un punto de apoyo y mover al mundo habra dicho Arqumedes 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 mquinas simples, y el dispositivo que veremos y aplicaremos hoy en este artculo es un buen ejemplo de ello. Un servomotor es bsicamente un actuador mecnico 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 posicin de un elemento mecnico que ser el enlace con el mundo exterior. Es decir, ante una accin inducida electrnicamente a un servomotor, obtendremos por resultado una respuesta mecnica 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 clsico servomotor de reconocida marca y para aplicaciones sencillas Las aplicaciones de estos sistemas esclavos se pueden observar mayormente en aeromodelismo y robtica, pero no son exclusivos de estos usos. Cualquier sistema que requiera un posicionamiento mecnico preciso y controlado depender de un servosistema o servomecanismo, actuado, por supuesto, por un servomotor. El zoom de una cmara, el autoenfoque de un conjunto ptico, un sistema de movilizacin de cmaras de vigilancia y hasta las puertas automticas de un ascensor son sencillos ejemplos de su aplicacin. El motor posee la caracterstica 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 Adems, en esta ltima rueda de acoplamiento encontraremos topes o lmites de recorrido para entregarnos en la salida final un giro de 180 del brazo actuador. En la mayora de los servomotores, este desplazamiento angular es copiado por un potencimetro incorporado al sistema de control y solidario en forma mecnica al eje externo. Este sensor resistivo se encargar de informarle al sistema la posicin que posee el actuador exterior para as controlar con exactitud que la instruccin de posicionamiento enviada est siendo ejecutada fielmente. 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 alimentacin principal, junto a otro cable que puede ser de color Negro o Marrn y que, por lgica, podemos deducir que se trata del negativo de alimentacin. Un tercer cable, correspondiente al control de posicionamiento del actuador mecnico, es Amarillo o Blanco. En la primera imagen se puede apreciar el conjunto de colores Rojo Negro y Amarillo para la conexin en servomotores de la marca HITEC. La tensin de trabajo de los servomotores suele estar comprendida entre los 3 y los 7 Volts,

siendo 5 Volts la tensin que se utiliza en la mayora de las aplicaciones fijas donde interviene una fuente de alimentacin conectada a la red de energa domiciliaria, y 6 Volts para los casos de alimentacin a bateras cuando se trata de equipos mviles. En todos los casos, siempre se requiere de una seal de control de 5 Volts de amplitud. La seal de control del servo Como mencionamos al principio, los servomotores se controlan mediante impulsos de ancho variable que deben refrescarse peridicamente. Esto significa que si dejamos de enviar la seal de control en el tiempo en el que el servomotor lo necesita, ste (a pesar de estar energizado) dejar de mantenerse en la posicin preestablecida y adoptar cualquier orientacin regida por el esfuerzo al que est sometido. Es decir, si no mantenemos la seal 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 mecnico que pueda recorrer, o un sistema erguido en vertical se caer hacia atrs o hacia adelante al momento en el que el servomotor deje de sostener la aplicacin en la posicin preestablecida. Para bloquear al servomotor en una posicin es necesario, entonces, enviarle continuamente la seal con la posicin deseada. De esta forma, el sistema de control seguir operando y el servo conservar su posicin y se resistir a las fuerzas externas que intenten cambiarlo de posicin.

Tiempos de duracin de los impulsos y direccin obtenida del actuador 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, tal como muestra el diagrama. Por otro lado, el ancho del impulso, es decir, su tiempo de duracin, dar la posicin u orientacin del actuador mecnico. En este punto en particular, es decir, cuando se est constantemente atento a enviar un impulso de duracin exacta para evitar oscilaciones mecnicas indeseadas, se centra la complejidad y la cautela al trabajar con servomotores. Si para el control de uno de estos sistemas utilizamos un microcontrolador que adems 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 realizacin sin mayores complicaciones se basa en la utilizacin 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 acompaado, por supuesto, de la observacin cuidadosa del diagrama de tiempos de nuestra aplicacin. Moviendo un servo en BASIC Este trabajo es extremadamente sencillo de realizar en este lenguaje. Bastar con escribir la instruccin SERVO Pin, Posicin y el sistema se posicionar de manera automtica con la

orientacin indicada. Pin corresponder a la I/O digital del microcontrolador donde conectaremos la seal de control requerida por el servomotor, mientras que Posicin corresponder a una variable del tipo WORD, siendo valores habituales para esta variable los siguientes: 1500 para el centro, 500 para el extremo de inicio y 2500 para el extremo de final de carrera del actuador. Por ejemplo, un listado muy sencillo sera el siguiente:

Listado de programa orientativo para manejar un servomotor A partir de un simple listado como el anterior, podemos controlar cmaras de vigilancia, llaves de paso de fluidos, cambios de vas en ferromodelismo y un sinfn de aplicaciones. Incrementando o decrementando la variable POS, segn el pulsador que actuemos, lograremos un movimiento hacia un lado o hacia el otro, manteniendo los lmites expresados en el prrafo anterior. Por ltimo, tenemos un tercer pulsador que nos permite reiniciar rpidamente el movimiento recuperando la posicin central del actuador. En los videos de demostracin veremos en accin la instruccin SERVO. La primer reforma que se nos viene a la mente es la de acelerar el movimiento, reemplazando las instrucciones INC y DEC, que varan de a una unidad, por otras variantes ms rpidas como POS = POS + 5, por citar un ejemplo. Tu sistema de vigilancia comienza aqu Movilizar dos servomotores nos permitir lograr una prestacin de movimientos muy importante, ya que sabiendo combinar mecnicamente los dos dispositivos intervinientes, el recorrido pasar de una trayectoria lineal a otra 2D (dos dimensiones), con las grandes ventajas que ello significa.

Detalle del montaje y movimientos de los dos servomotores utilizados En la imagen puedes apreciar que el servo inferior (o de azimut) est fijo y asentado a una base y que moviliza un pequeo trozo de aluminio en forma de L. Este primer servo nos dar la movilidad en el eje cartesiano x, entregndonos un paneo de 180 a izquierda y derecha. Luego contina hacia arriba una seccin en forma de U recta a la que se asegura el brazo de palanca del segundo servo, el cual, gracias a esta disposicin, nos dar el movimiento sobre el eje cartesiano y, aportando al sistema el ajuste de altura, tambin conocido como elevacin o tilt. El detalle a destacar en este desarrollo constructivo lo ofrece este segundo servo que, en lugar de movilizar su brazo de palanca para accionar los desplazamientos, es el propio cuerpo del servo el que se moviliza mientras el brazo actuador permanece fijamente atornillado a la estructura inferior. Para comprender mejor la complejidad de movimiento que posee el sistema y el alcance que puede tener dentro de un sistema de cmaras de vigilancia o de simple observacin, te recomendamos ver el siguiente video donde podrs comprender el sistema mvil empleado y, a su vez, podrs imaginar y desarrollar tus propios arreglos mecnicos:

Combinando de forma apropiada los movimientos de los actuadotes de los servos, seguramente podrs lograr un mejor sistema del que te mostramos o, tal vez, otros diseos ms complejos como pueden ser brazos robticos, articulaciones para hacer caminar un androide bpedo o algn hexpodo, que siempre son tan interesantes de desarrollar por el

gran desafo que significa programar una rutina que logre coordinar el movimiento de patas, las que seguramente involucrarn a varios servos y ninguna de ellas se deber tropezar con la otra para lograr que nuestro insecto camine, es decir, se traslade de un lugar a otro como si fuera un insecto real.

Un hexpodo siempre es un desafo para cualquier diseador Programando servos con BASIC En el desarrollo de este artculo utilizaremos un tema que ya hemos visto: el uso de los mdulos de radio de UHF que nos permitirn utilizar el sistema de manera remota o a distancia. Sin duda alguna, esta posibilidad expande notablemente las aplicaciones potenciales que puede tener esta rama de la electrnica llamada tambin mecatrnica. Manejar y operar sistemas electromecnicos a distancia como el que aqu veremos son el preludio de aplicaciones ms complejas, como puede ser la manipulacin de material radioactivo dentro de un reactor nuclear. Es decir, en todos aquellos lugares donde las manos del ser humano no puedan acceder, all estarn los servomecanismos operados de manera inalmbrica. Obviamente, la complejidad de los mecanismos y la precisin en los movimientos sern muy superiores a las expuestas aqu, pero no te quepan dudas que los principios elementales son exactamente los que vers en este artculo. Como siempre, en el encabezado del programa definiremos el dispositivo a utilizar y la frecuencia del reloj o clock del sistema. Para este ejemplo hemos seleccionado el

16F628A a una frecuencia de 20 Mhz, que son valores aptos para el programa compilador BASIC que utilizamos en la programacin de los microcontroladores (Proton Lite). Tambin en la parte inicial definiremos las variables que indicarn la posicin que adopte cada servomotor que, para hacerlo bien comprensible, hemos seleccionado las palabras GIRO y ALTO. Es decir, la variable GIRO determinar la posicin del servo inferior que brinda el movimiento en el eje x, mientras que ALTO lo har con el encargado del movimiento de elevacin, movilizando la webcam por el eje de las ordenadas (eje y). Una vez comprendido esto, pasamos a definir los pines del microcontrolador que manejarn los servomotores, es decir, los pines que llevarn los impulsos de ancho variable a cada servomotor, los que de manera muy original hemos bautizado como AZIMUT y ALTURA, para facilitarte la comprensin. Le indicamos al microcontrolador que trabajaremos en modo digital con la instruccin ALL_DIGITAL, con la que anulamos el funcionamiento de los comparadores del 16F628A. Esto es lo mismo que colocar CMCON = 7, sintaxis a la que muchos estn ms acostumbrados pero que significa lo mismo y causa el mismo efecto sobre el microcontrolador.

Encabezado del programa para manejar dos servomotores A partir de este punto definimos los valores iniciales de las variables y las condiciones de los pines de cada puerto del microcontrolador. Como dijimos anteriormente, un valor de 1500 equivale a un posicionamiento en el centro del recorrido del actuador del servomotor. De aqu surge que al conectar el sistema a la fuente de alimentacin, ambos actuadores adoptan la posicin central de su recorrido. Con las instrucciones TRIS definimos los pines que sern entradas y los que sern salidas. Podemos ver que en ambos puertos tenemos los tres primeros pines como entradas y el resto como salidas.

Lazo principal del programa Luego viene el lazo principal (MAIN) del programa donde se desarrolla todo el recorrido y lectura de los pines de entrada. Vemos que el pin 1 del puerto A es el encargado de llevar al sistema a la posicin inicial o de RESET que le decimos en los videos, colocando en las variables que definen el ancho del impulso un valor de 1500. Luego chequeamos los pines que activan los incrementos o decrementos de las variables y, si observas bien, notars que ya no varan de a una unidad sino que lo hacen de a dos. GIRO = GIRO + 2 y GIRO = GIRO 2. El valor que exista en las variables GIRO y ALTO se reflejar en movimiento por parte de los servomotores, adoptando la posicin que elijamos. Por supuesto que la mayora de las mentes brillantes que visita NeoTeo ya estar ideando y pensando la forma de realizar la toma de datos correspondientes a las variables a partir de los mapas de bits de la misma imagen que nos devuelva la webcam, para comenzar a desarrollar una Sentry-Gun ya los imagino! Optimizando las velocidades de accin del sistema, puedes transformar este simple sistema de orientacin de cmara webcam en lo que desees. Alguien dijo seguidor de cuerpos celestes para telescopio? O me pareci escuchar que estn preparando un sistema de direccin para aeromodelos? Cualquier aplicacin es posible, slo hay que soar. Acoplando el mdulo UHF De la misma forma que cuando ensayamos con sencillos LEDs para experimentar con mdulos de radio UHF, ahora trabajaremos basndonos en el mismo estilo de programa para el 12F675, pero, en vez de encender LEDs, cada estado lgico alto que obtengamos en sus salidas ahora nos servir para activar transistores NPN, segn el siguiente circuito:

Conexin del mdulo receptor UHF simulando pulsadores para el 16F628A Entonces, cada estado alto a la salida de un pin del 12F675 provocar un estado bajo en el Colector del respectivo transistor, lo que equivaldr a un pulsador activado respecto a GND para el 16F628A encargado de controlar los servos. Cuando a la salida del 12F675 existe un estado bajo, el transistor no conduce a su salida y entonces aparece un estado alto en su Colector. Todo esto como si se tratara de un pulsador ubicado en cada pin de entrada del 16F628A. Naturalmente, en el grfico hemos dibujado un solo transistor pero t debers colocar la cantidad equivalente a los pulsadores que quieras emular. El transmisor no vara respecto al artculo anterior por lo que no merece mencin alguna. Por ltimo, recuerda alimentar al mdulo receptor y al 12F675 con los mismos 5 Volts que utilizas para el 16F628A. Recuerda tambin que los motores de los servomecanismos generan mucho ruido elctrico que puede provocar funcionamientos inestables en el sistema. Trata de filtrar muy bien la alimentacin en el receptor y en los PIC de esta seccin con capacitores cermicos de 100 nanofaradios (100 nF) ubicados lo ms prximo posible a los microcontroladores. Un par de capacitores electrolticos de 100uF repartidos en el circuito tambin sern bienvenidos.

También podría gustarte