guia-seleccion-motores-para-arduino

Guía de selección motores y actuadores para Arduino

Cuando vayamos a empezar un proyecto de robótica, un vehículo, o cualquier otro dispositivo móvil, una de las primeras decisiones será elegir los tipos de actuadores que vamos a emplear.

Un actuador es el nombre genérico que empleamos para cualquier dispositivo capaz de realizar acciones en el mundo físico y que podremos controlar desde un autómata o procesador como Arduino. En particular, usamos el nombre actuador para los dispositivos que son capaces de generar movimiento.

Seleccionar el actuador correcto para nuestro proyecto es una tarea complicada ya que disponemos de un gran abanico de opciones (motores de corriente continua, servos, motores paso a paso, motores brushless..) cada uno de los cuales tiene sus ventajas y desventajas.

Explicar todos los actuadores en una única entrada sería demasiado larga, así que en esta entrada veremos los factores y criterios que condicionan la elección de uno u otro

En la entrada siguiente veremos las características y funcionamiento de los principales tipos de motores rotativos, y en la última entrada de la serie otros tipos de actuadores disponibles.

Factores para elegir un motor o actuador

En general, al seleccionar un actuador deberemos contemplar las características mecánicas y eléctricas, el control que vamos a poder disponer y, por supuesto, el precio.

Sin embargo, conviene tener claro que las características de un motor no son mejores o peores que las del otro. Por ejemplo, en principio tener una velocidad o par pequeño puede parecer algo malo, pero no tiene porqué ser necesariamente así.

Imaginar que estamos haciendo un proyecto para hacer girar un cartel publicitario. Seguramente hacerlo girar a 12000 rpm no conseguirá el efecto que buscamos. O imaginar que queremos un motor con un par bajo para que, si alguien accidentalmente introduce un dedo, el motor se pare sin causar daños.

Con robots y vehículos también ocurre lo mismo. Lo mismo nos da que las ruedas puedan girar a gran velocidad si en cuanto tocan el suelo se paran. O que tenga el robot tenga par suficiente para subir una pared, pero a cambio se mueva a velocidad de tortuga.

Una vez refrescado esto, pasamos por fin a desglosar cada uno de los factores.

Características mecánicas

Las características mecánicas incluyen la velocidad, la fuerza o par que puede ejerce, la precisión y la carga máxima que puede soportar.

Velocidad

La velocidad es la relación entre el desplazamiento que realiza actuador y el tiempo, es decir

Las unidades para la velocidad en el sistema internacional son m/s, y en ocasiones km/h para vehículos, o cm/min en el caso de actuadores lentos.

En el caso de actuadores rotativos usaremos la velocidad angular, que es la relación entre el ángulo girado y el tiempo

Las unidades del sistema internacional para la velocidad angular son radianes / s, siendo frecuentes grados (º) / s, revoluciones por min (rpm), o vueltas por segundo (rev / s)

Fuerza / Par

La fuerza ejercida por un actuador aplicada a una cierta masa se emplea en acelerar a la misma, es decir, en modificar su velocidad. Un actuador con una determinada fuerza será capaz de acelerar rápidamente masas pequeñas, y lentamente masas grandes.

La expresión de la fuerza es,

Siendo,

Las unidades para la fuerza en el sistema internacional son los Newton (N), siendo habitual en el ámbito técnico referirse a kilogramos-fuerza (Kgf), que es la fuerza ejercida sobre un Kg de masa por el campo gravitatorio terrestre (aceleración de 9.81 m/s2).

En muchas ocasiones se emplea Kg para referirse a la fuerza, incluso en hojas de especificaciones técnicas. Técnicamente incorrecto, porque Kg es una unidad de masa, es tan frecuente que os aconsejamos no perder la paciencia cuando lo veáis. En cualquier caso, cuesta poco ser técnicamente correcto simplemente usando Kgf.

Sin embargo, en el mundo real existen fuerzas de rozamiento, por lo que a efectos prácticos un actuador no podrá mover cualquier masa. Por encima de la fuerza disponible simplemente la carga no se moverá en absoluto e incluso podemos dañar el actuador.

En el caso de actuadores rotativos el equivalente de la fuerza es el par (en algunos sitios llamado torque)

La expresión para el par es la siguiente,

Las unidades para el Par N·m (Newton Metro) en el sistema internacional, aunque frecuentemente encontraremos Kgf·cm. 1 Kgf·cm equivale a 0.098N·m, y equivalentemente 1 N·m equivale a 10.2 Kgf·cm

Donde la aceleración angular es la variación por unidad de tiempo de la velocidad angular, y la inercia rotacional es un parámetro característico de la carga que vamos a girar que viene dada por la distribución geométrica de su masa.

Alternativamente, el par puede ser reescrito de la siguiente forma,

Por ejemplo, un motor con un par máximo de 10 Kgf·cm al que acoplamos una polea con un radio de 1cm será capaz de levantar en vertical una masa de 10Kg, mientras que si el radio de la polea es de 2cm únicamente podrá levantar 5Kg.

Potencia mecánica

La potencia mecánica es la cantidad de energía por unidad de tiempo que el actuador es capaz de entregar a la carga.

La potencia mecánica viene dada por la siguiente expresión,

Mientras que en el caso de actuadores rotativos,

Carga máxima

La carga máxima es el peso o esfuerzos que puede soportar el actuador sin romperse, que no es lo mismo que la carga máxima que puede mover.

Considerar un vehículo con ruedas, el eje podrá soportar, por ejemplo, 50Kg, pero no significa que el motor tenga que hacer una fuerza de 50 Kg, ya que la carga por rodadura es mucho menor.

Precisión

No todos los actuadores tienen la misma precisión en los movimientos. Independientemente de la calidad y control que empleemos, ciertos actuadores son más propicios a mayores niveles de precisión.

Por ejemplo, con un motor paso a paso obtener fácilmente precisiones de décimas de grados, algo que será mucho más difícil de obtener con un motor de corriente continua.

Características eléctricas

Las características eléctricas incluyen la potencia, la tensión y la corriente nominal. Esto condicionará el tamaño de los componentes, la sección de los conductores y la capacidad de las baterías.

Tensión nominal

Es la tensión a la que debemos alimentar el motor para un funcionamiento correcto, medida en Voltios. Frecuentemente también es la tensión máxima a la que podemos alimentar el dispositivo sin dañarlo.

En ocasiones la tensión nominal es un rango, en lugar de un único valor. El punto de trabajo variará en función de la tensión que apliquemos.

Valores frecuentes para motores y actuadores son 6V, 12V, y 24V.

Corriente nominal

Es la intensidad de corriente que debemos suministrar al motor para un funcionamiento correcto, medida en Amperios. De forma similar, frecuentemente la corriente nominal coincide con la corriente máxima a la que podemos alimentar el dispositivo sin dañarlo.

Algunos actuadores tienen una intensidad nominal inferior a la que circularía por la ley de Ohm según su tensión nominal y su resistencia. Por este motivo el controlador debe disponer de un dispositivo limitador de corriente.

Existen motores en un gran rango de intensidades nominales, desde unos pocos mA, hasta varias decenas en el caso de grandes motores.

Potencia eléctrica

La potencia eléctrica es la energía por unidad de tiempo absorbida por el actuador de la fuente de alimentación, medida en Watios (W), tiene la siguiente expresión,

A la vez, la potencia mecánica está relacionada con la potencia eléctrica según,

Donde μ es el rendimiento global del actuador, que engloba las pérdidas mecánicas por rozamiento, y las pérdidas eléctricas por perdidas en el cobre por efecto Joule, pérdidas por corrientes inducidas, pérdidas por histéresis magnéticas, y perdidas por dispersión de flujo magnético.

Por otro lado, la carga eléctrica consumida por el motor es

La unidad para la energía son los Julios (J), siendo unidades frecuentes Amperio-hora (Ah) y micro Amperio-hora (mAh).

Esta carga eléctrica es especialmente relevante al abastecer el actuador desde baterías, para determinar el tiempo de funcionamiento con una carga.

Otros factores

Existen otros factores a considerar a la hora de seleccionar un actuador para nuestro proyecto. No entraremos en detalles porque son bastante evidentes, pero merece al menos que los mencionemos brevemente.

  • Forma y dimensiones.
  • Fijaciones y soportes tanto del actuador al robot, como de la carga al actuador (por ejemplo, diámetro del eje de un rotor).
  • Peso tanto del propio actuador como de los componentes adicionales que requiere para operarlo (baterías, controladores).
  • Grado de protección (IP) que incluye la resistencia al agua, y la resistencia al polvo, y condiciona si el actuador puede ser usado en ambiente exteriores.
  • Rango de temperatura que debemos respetar si no queremos dañar el actuador
  • Vida útil entendido como el tiempo promedio que podemos esperar que funcione el actuador.

Características de control

Además de los criterios mecánicos y eléctricos, un factor que condiciona enormemente la elección del actuador (y frecuentemente es el más olvidado) es el control que vamos a disponer. De forma general, en un robot o vehículo tenemos interés en tres tipos de control:

  • Control de velocidad, saber a qué velocidad está avanzando el vehículo.
  • Control de posición, saber en qué punto está nuestro vehículo.
  • Control de orientación, saber la dirección a la que apunta el vehículo.

En principio,olvidaros de tener un control total sobre ninguna de estas variables. El mundo real no es perfecto, las ruedas patinan, los motores tienen respuestas no lineales, las cargas no están balanceadas, los componentes no son idénticos y perfectos, los sensores tienen deriva… Todos estos defectos hacen que, en general, no podamos tener una precisión total y absoluta.

El control de la velocidad es, en general, la más sencilla de medir o al menos estimar. En muchos actuadores actuamos directamente sobre su velocidad. Por otro lado, si sabemos la posición del actuador, podemos obtener su velocidad simplemente derivando (dividiendo) respecto al tiempo, y calcular su velocidad media.

La posición del vehículo es la más difícil de saber. Algunos actuadores permiten un buen control de posición, pero esto no garantiza saber la posición real del robot. En general, habrá que instalar sensores adicionales, como fotointerruptores o interruptores de fin de carrera, que nos permiten posicionar de forma absoluta el actuador.

Tenemos otro tipo de sensores que nos ayudan a determinar la posición de un robot, como los sensores de distancia por ultra sonidos o infrarrojos. El GPS nos permite obtener la posición real, pero tiene precisión de 0.5 metros, lo cual es demasiado alto para la mayoría de vehículos. Otras opciones incluyen sistemas de visión, o triangulación de balizas de radiofrecuencia.

Por otro lado, olvidaros de obtener la posición del vehículo por la integración de la velocidad (multiplicar velocidad x tiempo). Los errores en la medición de la velocidad se acumulan, y al final siempre tendréis una deriva en la posición. Usarlo sólo como última alternativa, o como interpolación entre posiciones dadas por sensores.

Por último, la orientación del robot es casi imposible de saber a través del control de los actuadores, por los mismos que la posición. Afortunadamente, en la mayoría de los casos podremos usar brújulas magnéticas y giroscopios para determinar con un alto grado de precisión la orientación del vehículo.

¿Sorprendido de no poder tener un control total de posición, velocidad y orientación de un robot? Aún te sorprenderá más que la mejor solución es no aspirar a un control total. En la naturaleza, los humanos y otros animales no necesitan una precisión total, simplemente les basta con una aproximación y responder a estímulos del entorno. Tu robot debería estar diseñado con la misma filosofía.

Añadir un encoder

La solución más extendida para mejorar el control de nuestros actuadores es añadir un encoder. Un encoder es un dispositivo que permite registrar la posición del actuador, lo que significa disponer de un control total de posición y velocidad.

arduino-tipos-encoder

Los encoder más frecuentes son ópticos o magnéticos. En los encoder ópticos se acopla un disco ranurado o transparente con zonas opacas al eje. Un fotointerruptor detecta el corte de un haz de luz al paso del disco. En los sensores magnéticos se acopla uno o varios imanes al actuador, y se emplea un sensor hall para detectar el paso del imán por el sensor.

Los encoder son componentes frecuentes, y casi inevitables, en los proyectos de electrónica y robótica tanto en el ámbito casero como industrial.

En ambos tipos de sensores, en los intervalos en los que no detectamos estamos “ciegos”, por lo que cuanto más fino sea el paso (ranuras más finas, o más imanes) tendremos mejor precisión.

Sin embargo, aunque mejorar enormemente la capacidad de control no nos hacen inmune ante, por ejemplo, el deslizamiento de las ruedas. Recordar, saber cuánto ha girado un motor no significa saber la posición del vehículo.

Conclusión

Todos estos factores están relacionados y el diseño debe ser abordado de forma global. Por ejemplo, aumentar el tamaño de un robot supone un mayor peso, lo que requiere motores y componentes más grandes, que requieren un mayor consumo, que supone mayores baterías, que a su vez implican un incremento de peso.

Es decir, a medida que aumentamos la potencia de un robot o vehículo todos los componentes tienen que crecer en consonancia y el precio se dispara rápidamente.

Seleccionar el motor o actuador que mejor se adecúe a las condiciones particulares de nuestro diseño y, por supuesto, manteniendo el precio lo más bajo posible, no es una tarea sencilla y no hay una única solución posible.

Para ello lo necesario conocer las características, funcionamiento, ventajas y desventajas de cada tipo de actuador. Por este motivo en la próxima entrada veremos los distintos tipos de los motores rotativos, y en la siguiente otros tipos de actuadores, para conseguir seleccionar el actuador idóneo para nuestros proyectos de Arduino.

Descarga el código

Todo el código de esta entrada está disponible para su descarga en Github. github-full