Servomotores son ampliamente usados en robótica, mecanismos industriales, aeromodelismo, dispensadores de alimentos, proyectos estudiantiles y universitario, etc. su principal ventaja es la precisión de la posición de su eje, de una forma controlada. en este capítulo, estudiaremos como controlar servomotores con la tarjeta MICROBIT.
Servomotores son motores electromagnéticos-mecánico, cuyo eje puede ser posicionado con gran precisión en un rango de 0 a 180 grados. Para lograr esto, los servomotores poseen un circuito electrónico que consigue saber en qué posición esta su eje. La gran mayoría de servomotores usan una resistencia variable (potenciómetro) para conocer la posición del eje. Para controlar la posición del eje, se usa un pulso digital como el mostrado en la siguiente figura:
Dependiendo del servomotor, normalmente, este pulso puede variar de unos 0.4 milisegundos (400 microsegundos) a unos 4 milisegundos (4000 microsegundos). En la siguiente figura podemos observar la relación entre la posición de eje y el pulso de control:
Este pulso es manejado por una señal PWM o Modulación por ancho del pulso, la cual, para los servomotores, normalmente tiene un periodo de 20 milisegundos y una frecuencia de 50 ciclos por segundo, como muestra la siguiente figura:
Las principales partes que forman un servomotor son:
• Potenciómetro
• Circuito Controlador
• Motor
• Caja de Engranajes
• Eje
La siguiente figura muestra las partes del servomotor en forma de diagrama:
Para la conexión, los servomotores poseen 3 cables. Uno para conectar a la fuente de voltaje, otro para conectar a tierra y otro para la señal como muestra la siguiente figura:
Las tensiones típicas para conectar los servomotores pueden variar de unos 3 a 9 voltios. Los hay de varios tamaños, dependiendo de la cantidad de peso que necesitan mover. Refiérase a la hoja técnica del fabricante, para obtener los datos del servomotor que va a usar. Para el desarrollo de las prácticas de este capítulo, observe que la tensión de alimentación del servomotor soporte 3 volts. La siguiente figura muestra un modelo de servomotores:
Para usar los servomotores en microbit, vaya al menú: “Avanzado” y en la ventana que se desplegó, seleccione el menú: “Extensiones”, como muestra la siguiente figura:
Aparecerá una página con varios iconos. Seleccione el que tiene el nombre: “servo”, como mostrado en la siguiente figura:
Una vez seleccionado el icono: “servo”, aparecerá en el menú de las funciones, un ítem llamado: “Servos”, como mostrado en la siguiente imagen:
Seleccione el menú: “Servos”, para comenzar a usar sus bloques, como mostrado en la siguiente figura:
Configuracion del servomotor.
Hay algunos bloques para configurar el servomotor, los cuales vamos a ver en esta sección:
Hay un bloque llamado: “set servo pulse to us”, el cual permite establecer el ancho del pulso del servo en microsegundos. La siguiente figura muestra este bloque:
Hay un bloque llamado: “set servo range from to”, el cual coloca el posible rango de ángulos de rotación. Normalmente este rango va de: 0 a 180 grados como muestra la siguiente figura:
Hay un bloque llamado: “set servo stop on neutral”, el cual permite colocar (set) un modo de parada. Así, cuando este bloque es activado, detiene (stop) el servomotor cuando el ángulo de rotación este en la posición neutral (90 grados). Este bloque es mostrado en la siguiente figura:
Normalmente estos bloques son usados al inicio del programa. Para el desarrollo de este capítulo dejamos los que el compilador de “MakeCode”, usa por defecto.
Posicionando el servomotor de 0 a 180 grados.
El compilador de MakeCode, permite manejar 3 servomotores, por defecto, en los pines de salida: P1, P2 y P3 de la tarjeta microbit. Al usar los bloques que usan servomotores, tome cuidado de seleccionar el pin correcto sobre el que se encuentra el servomotor, pues el compilador de MakeCode, por defecto, selecciona el pin P0. Todos los bloques que usan servomotores, en su menú desplegable, permiten seleccionar el pin sobre el cual está el servomotor, como muestra la siguiente imagen:
Para establecer el ángulo del servo, usamos un bloque llamado: “set servo angle to”, como mostrado en la siguiente figura:
Por ejemplo, si queremos que el servomotor se posicione a 0 grados, podemos usar el siguiente programa, como mostrado en la siguiente figura:
Cuando usamos algún servomotor, el compilador “MakeCode”, usa el simulador para observar cómo los servos se posicionarían. En la siguiente figura podemos observar al simulador, cuando ejecuta los bloques mostrados anteriormente:
Observe como se ve el programa “MakeCode”, cuando usamos algún bloque del menú: “Servos”:
Si queremos posicionar el servomotor a 180 grados, podemos usar los siguientes bloques:
El simulador mostrara el servomotor en la siguiente posición:
Así, podemos hacer un programa donde el servomotor se posicione a 0 grados, después se posicione a 180 grados y después se vuelva a posicionar a 0 grados. Estas posiciones se repetirían continuamente. Los bloques para hacer esto, son mostrados en la siguiente figura:
Hay un tipo de servomotor que puede girar continuamente, como lo hacen los motores convencionales de corriente continua, el cual podemos controlar con el siguiente bloque de código:
Para parar (stop) los servomotores continuos, podemos usar el bloque: “stop servo”, como mostrado en la siguiente figura:
Posicionando 2 servomotores.
Cuando son usados 2 servomotores, el simulador de “MakeCode”, muestra un protoboard, como mostrado en la siguiente figura:
Así, podemos hacer que los 2 servos se muevan al mismo ángulo de posición. Este movimiento es similar al usado por los ojos humanos o por los parabrisas de un carro. La siguiente figura, muestra el programa para hacer esto:
Por ejemplo, si queremos abrir puertas o ventanas con servomotores, podemos usar un programa como el mostrado en la siguiente figura:
Observe que en un momento los brazos de los servomotores se encuentran y en otro se alejan. Con estos bloques es posible crear infinidad de ideas, donde se requieran movimientos precisos.
Posicionando 3 servomotores.
MakeCode nos permite controlar y simular 3 servomotores. En la siguiente figura podemos observar el simulador de microbit y los 3 servomotores:
El siguiente programa nos permite controlar los 3 servomotores al mismo tiempo:
Note que, en el protoboard de la izquierda: en un momento el servomotor de la izquierda y del centro, se alejan y el servomotor de la derecha y del centro, se acercan. Después, en el protoboard de la derecha: se hace lo contrario, el servo de la izquierda y del centro, se acercan, mientras que el de la derecha y el centro, se alejan.
Secuencias de posicion con servomotores.
Es muy común en algunos proyectos usando servomotores, la necesidad de secuencias de posiciones del eje, para ejecutar alguna tarea especifica. Por ejemplo, supongamos que un mecanismo necesita la siguiente secuencia de posiciones:
Cree un nuevo proyecto. Para hacer estas secuencias de posiciones, podemos usar un programa como el siguiente:
El siguiente programa hace lo mismo que el programa anterior, pero usamos un arreglo (array) para almacenar las posiciones:
Para crear un arreglo numérico, vaya al menú: “Arreglos”, como muestra la siguiente figura:
En el menú desplegable del bloque, puede crear una nueva variable, como muestra la siguiente figura:
Al arreglo que creamos, le hemos dado el nombre: “PosicionesLista”, más puede usar cualquier otro nombre. Para recorrer los elementos de este arreglo y obtener las posiciones, podemos usar el bloque llamado: “para el elemento de”, el cual se encuentra en el menú: “bucles”, como mostrado en la siguiente figura:
Observe si, en el bloque: “para el elemento de”, esta seleccionado el arreglo: “PosicionesLista”.
Así, podemos crear infinidad de proyectos usando servomotores. Algunos proyectos usan varios servomotores, para lo cual es necesario usar una tarjeta que soporte el control de estos. También, si los servomotores consumen mucha corriente, es necesario reforzar la batería o tomar el voltaje para los servomotores de una fuente externa. La creatividad, la práctica, nos ayudaran mucho a utilizar los servomotores. Como una última nota, siempre es recomendable, ver las características del servomotor en su hoja técnica.