Control de dos servos para modelismo con Arduino


Hay muchísima información al respecto de estos motores integrados o servo motores en internet, al encontrarse tan difundidos en el ámbito de los entusiastas tanto de aviones como de barcos incluso autos a control remoto la cantidad de fabricantes y modelos es tremenda y por suerte su forma de controlarlos está estandarizada desde los primeros modelos fabricados por Futaba en Japón. Demás está escribir que los actualmente producidos en China en general no tienen ni cercana calidad a aquellos dispositivos originarios pero tampoco su precio, hoy son tremendamente económicos volviéndolos una solución ideal para muchas aplicaciones fuera del ámbito del modelismo a control remoto.

En general estos dispositivos tienen tres cables, dos de ellos de alimentación y un tercero de control o entrada de pulso. Dicho pulso es de frecuencia constante, cercana a los 50Hz y dependiendo del ancho de pulso (el tiempo en que el pulso permanece en estado alto o a 5V típicamente) será la posición del brazo de salida mecánica del servo. Con un pulso de 1 mili segundo de duración en alto tendremos el brazo a su extremo izquierdo o anti horario mientras que con un pulso de 2 mili segundos tendremos el brazo al otro extremo, el derecho ú horario. Por lógica deductiva colocando un pulso de 1,5 mili segundos tendremos el brazo en la posición central del recorrido. Usualmente estos mecanismos admiten desplazamientos de 180 grados o media vuelta y suelen alimentarse o bien a 3,7 voltios o bien a 5 voltios aunque por supuesto hay excepciones de mucha mas tensión dado que de ello dependerá en gran medida su fuerza. Vuelvo a aclarar, estos son datos estándar para la mayoría de los modelos pero no quita que existan con distintos rangos, con diferentes tensiones incluso con formas remotamente distintas entre si. Por ello recomiendo encarecidamente investigar bien los modelos disponibles en donde cada quien viva para adquirir los mas apropiados según el proyecto que se quiera realizar. Para las pruebas de este sitio usé los de 9 gramos que son mas que suficientes para un coste bajo y un resultado aceptablemente bueno.

Aquí se observa un servo típico con sus tres cables: el rojo para positivo, el marrón para negativo y el anaranjado para entrada de señal desde el elemento de control hacia el servo. Tengo hace un tiempo una armadura plástica en la cual van dos servos montados uno se encarga del movimiento oscilante vertical mientras que el otro del horizontal permitiendo motorizar desde una cámara de seguridad hasta una luz de haz entre otros tantos usos. En el ejemplo de hoy utilicé un stick que incorpora dos potenciómetros hermanados, uno para el eje X y otro para el eje Y. No es necesario emplear este elemento, con dos potenciómetros individuales de 10K cada uno es suficiente. Si no se tiene de 10K se puede usar de 100K o de 4K7 mientras sean potenciómetros lineales todos los valores entre esos mínimos y máximos sirven sin problemas.

Este es el circuito de aplicación, el haber usado un Arduino simplificó muchísimo el desarrollo dado que todos los componentes tanto pasivos como activos relativos a su microcontrolador ya se encuentran en la placa. Un detalle que requiere mucha atención es que los servos deben ser alimentados por fuera de la placa Arduino sea esta alimentada desde el cable USB o sea esta alimentada por la entrada de 9V a 12V que incorpora (el jack tipo barrilito). Si bien en reposo no insumen prácticamente corriente los servos cuando se desplazan sobre todo a toda velocidad de extremo a extremo requieren una buena cantidad de corriente incluso con picos de mas de dos amperios por lo que es mejor proveerles positivo desde fuera. El negativo de la fuente de los servos debe estar unido a la masa del Arduino así como las masas de los servos. En tanto los potenciómetros o el stick se deben alimentar desde la placa Arduino. En caso de querer hacer un circuito que no reciba alimentación desde la PC o un cargador USB y una fuente independiente para los servos se deberá prestar atención al desacople y suministro de corriente de pico colocando capacitores electrolíticos apropiados dependiendo de la corriente que los servos requieran, para los servos como el de la foto de 9 gramos como mínimo colocar 3300µF x 18 o 25 voltios.

En este link pueden descargar el programa para cargar en el Arduino, el mismo se encuentra bastante comentado por lo que entenderlo no va a presentar demasiados retos.

En este otro link pueden acceder al video subido a YouTube con el funcionamiento de este aparato donde observarán de fondo en el osciloscopio el ancho de impulso para cada uno de los servos.

 

Pablo Canello, 31/MAR/2020