Calibración de hélices y motores Brushless para drones
Índice:
- Conceptos generales sobre drones
- Material necesario y montaje de los componentes hardware
- Mando RC y receptor. Programación en Arduino
- MPU6050 y su programación en Arduino
- Batería LiPo
- Control de estabilidad y PID
- Motores, ESC y su programación en Arduino
- → Calibración de hélices y motores
- Software completo y esquema detallado
- Probando el Software completo antes de volar
- Como leer variables de Arduino en Matlab
¿Por qué es importante eliminar las vibraciones con la calibración de hélices y motores?
Como ya hemos comentado en la entrada del sensor MPU6050, si las hélices no están bien calibradas, las vibraciones producidas por el movimiento irregular de estas pueden convertirse en nuestro peor enemigo a la hora de hacer volar nuestro drone. Tened siempre presente el tema de las vibraciones, ya que si no podéis acabar frustrados y con el drone aparcado el una estantería y sin haberlo volado nunca. El 100% de las vibraciones son producidas por los motores y las hélices, de ahí la importancia de la calibración de estos componentes. Son elementos que giran a gran velocidad y que sustentan todo el peso del drone, por lo que pequeñas irregularidades en el movimiento de los mismos pueden acarrear grandes vibraciones que pueden afectar a la estimación de inclinación y hacer que nuestro drone nunca llegue a ser estable, causando gran frustración en nosotros. Yo mismo estuve a punto de abandonar el proyecto cuando ya tenía todo listo por no saber cómo identificar este problema, pero tranquilos, voy a intentar explicar cómo solucionarlo.
Es imprescindible que las hélices y los motores estén completamente equilibrados. La calibración de estos componentes es un tema vital. Cada pala de la hélice tiene que tener exactamente el mismo peso que la otra, ya que una desviación de unos poco gramos en una de las palas girando a 11000rpm genera una cantidad de vibraciones demasiado elevada para nuestro pequeño y sensible acelerómetro. El problema es que el acelerómetro es tremendamente sensible a estas vibraciones, por lo que es imprescindible reducirlas al máximo evitando que se produzcan, para lo que hay que calibrar las hélices lo mejor posible. En caso contrario, estas vibraciones captadas por el acelerómetro pasan a nuestro control produciendo lecturas erróneas en el cálculo de la inclinación que pueden llegar a ser de varios grados. Para que os hagáis una idea, cuando aun no tenía calibradas las hélices y los motores, teniendo el drone completamente horizontal en el suelo, las vibraciones producidas por las hélices que eran captadas por el acelerómetro producían un error en la estimación de la inclinación de hasta 7º. Como vemos en la siguiente ecuación, para calcular el ángulo de inclinación es necesario utilizar los datos del acelerómetro:
angulo_pitch = angulo_pitch * 0.999 + angle_pitch_acc * 0.001;
angulo_roll = angulo_roll * 0.999 + angle_roll_acc * 0.001;
La frecuencia de estas vibración es muy fácil de estimar de forma básica. En teoría, una hélice que gira a 5000rpm, producirá vibraciones a una frecuencia de aproximadamente 83.3Hz:
Velocidad de giro (rpm)/60 = Frecuencia de vibración (Hz)
Asumiendo que los motores giran entre 3000rpm (30% de throttle) y 11000rpm (100% de throttle), tenemos que enfrentarnos a vibraciones que pueden variar entre 50Hz y 184Hz (esto es simplemente una aproximación rápida). Una de las soluciones es filtrar la salida del sensor MPU6050 configurando el filtro LPF (low pass filter) que incorpora el sensor, pero tened cuidado con filtrar demasiado la salida utilizando frecuencias de corte bajas ya que el filtrado introduce un retardo en las medidas que puede llegar a los 19ms. Tened en cuenta que el filtrado siempre nos hará perder prestaciones:
Calibración de hélices y motores
La mejor solución para olvidarnos de las vibraciones es atacarlas en su origen, es decir, calibrar hélices y motores. La calibración de estos componentes no es una ciencia exacta, no podemos medir el peso de cada pala por separado por lo que tenemos que recurrir a otras técnicas para estimar e identificar las vibraciones.
A continuación, vamos a ver dos métodos de calibración para hélices y motores.
Método 1 – Equilibrador magnético
El primer método, y el más sencillo, es utilizar un equilibrador magnético como el de la siguiente figura. Con esta herramienta podremos equilibrar las hélices de forma sencilla y sin riesgos. Esta es para mi la opción preferida debido a su simplicidad:
Comprar en Amazon
Basta con colocar las hélices entre los soportes y ver si cae en alguna dirección. Si esto sucede, utilizar cinta aislante para añadir peso en el lado contrario. Repetir el proceso con las 4 hélices.
Método 2 – Analizar aceleraciones
Este segundo método es más complejo ya que requiere montar las hélices. Consiste en hacer girar los motores con sus correspondientes hélices y analizar el ruido o la distorsión que se produce en la aceleración (registrada utilizando el sensor MPU6050). Después, siguiente el mismo proceso que en el método anterior, ir colocando cinta aislante hasta que el rizado de la aceleración producida por el giro de los motores esté comprendida n un rango determinado.
Todo el software que utilizaremos a lo largo de este apartado está subido a GitHub:
Para poder continuar con este método es imprescindible haber validado antes los motores como hemos visto en la correspondiente entrada. Antes de colocar las hélices, es imprescindible validar también el software de calibración de motores que vamos a utilizar a continuación, para comprobar que funciona correctamente en vuestro entorno de pruebas. Una vez que somos capaces de girar los motores de forma controlada usando el mando, solo entonces pondremos las hélices.
⊗ Esta es la primera vez que vamos a poner en marcha los motores con las hélices puestas. MUCHO CUIDADO. Aseguraos de que el drone esta firmemente sujeto al suelo y de que no hay peligro de tocar las hélices ⊗ |
Hecho esto, podemos colocar las hélices. Antes de continuar, acordaos de que cada motor tiene que girar en un sentido concreto como hemos visto en la entrada dedicada a los motores. Conviene hacer el calibrado de hélices y motores con los motores girando en el sentido correcto:
Os habréis fijado en que el fabricante nos provee con dos hélices diferentes además de con el motor. Esto es debido a que dependiendo del sentido de giro del motor tendremos que utilizar una u otra para que el empuje sea siempre hacia abajo (recordad que tenemos dos motores girando en sentido horario y dos girando en sentido anti-horario). Para saber que hélice corresponde con cada sentido de giro tenéis que fijaos en la forma de la propia hélice, donde la ‘parte lisa’ siempre tiene que estar de cara al movimiento, y la ‘muesca’ detrás:
Comprobad también que no las estáis poniendo boca abajo. La serigrafía con el tipo de hélice (en mi caso 10×4.5R), siempre hacia arriba. Una vez instaladas hacedlas girar a baja velocidad. En seguida os daréis cuanta de hacia donde empuja el motor, tenéis que sentir que el aire sale hacia abajo.
Una vez identificadas que hélices corresponden con cada motor, es hora de que empezáis con los test de vibraciones y el proceso calibración. Recordad amarrar bien el drone para que no despegue y tomad todas las precauciones necesarias para no tocar las hélices cuando estas se encuentren en movimiento.
El software que vamos a utilizar el es mismo que hemos utilizado para mover los motores, pero integrando también las lecturas del sensor MPU6050 para visualizar la aceleración de los 3 ejes. La calibración tiene que realizarse motor a motor. Simplemente escogemos el motor que queremos analizar, subimos el Throttle, visualizamos las lecturas del acelerómetro y analizamos los resultados para ver si están o no fuera de rango. Si alguno de los motores produce vibraciones que estén fuera de rango, tenemos que intentar equilibrar las palas. La calibración es muy sencilla. Simplemente ponemos un cacho de cinta aislante en una de las palas y volvemos a hacerlo girar, si las vibraciones se han reducido, podemos ajustar la cantidad de cinta hasta reducir las vibraciones al mínimo posible. Si por el contrario las vibraciones aumentan, retiramos la cinta aislante de esa pala y la ponemos en la otra, repitiendo la prueba y comprobando que efectivamente las vibraciones se han reducido. También podemos repetir este proceso con los cuatro motores:
La web de ArduPilot recomienda que las vibraciones no superen los ±3m/s² en los X e Y, y que estén comprendidas entre ±5m/s² y ±15m/s² para el eje Z:
A continuación muestro los resultados de la calibración realizada por mi, donde se puede ver como las vibraciones nos superan los limites marcados (mis resultados están en ‘g‘, pero la relación es de 9.8 para compararlos con los resultados de arriba. 1g = 9.8m/s². Mas información en la entrada dedicada al sensor MPU6050):
Continuar con la siguiente entrada:
- Conceptos generales sobre drones
- Material necesario y montaje de los componentes hardware
- Mando RC y receptor. Programación en Arduino
- MPU6050 y su programación en Arduino
- Batería LiPo
- Control de estabilidad y PID
- Motores, ESC y su programación en Arduino
- Calibración de hélices y motores
- → Software completo y esquema detallado
- Como leer variables de Arduino en Matlab
Hola, acabo de terminar de montar el dron, a falta de las hélices y la batería. Lo estoy alimentando con una fuente de alimentación de un pc, y estoy valorando las vibraciones de los motores. Sin tomar ninguna medida correctiva, entiendo que tiene muy pocas vibraciones. No se si esto será normal. Adjunto foto con la gráfica de los valores de las vibraciones del dron sobre la mesa con el throttle al máximo. Es esto normal? https://uploads.disquscdn.com/images/79c42360185114ec653123f8343899d66a6d6186f5c5cdffd43fb082d6df569e.jpg
Buenas Paco,
Si aun no has colocado las hélices es normal que las vibraciones sean bajas. La clave esta en las hélices. Es verdad que los motores también giran a la misma velocidad, pero son las hélices las que meter el 95% del ruido.
Cuando las instales verás que esa gráfica cambia bastante. Es entonces cuando tendrás que calibrar.
El tema de las vibraciones es un tema un poco subjetivo. Hay gente no lo hace nunca, y hay gente que hasta no calibrar las hélices no consigue volar el drone de forma estable. depende mucho de la construcción del drone, del peso, del tamaño… Yo recomiendo hacer una calibración ‘media’, sin profundizar demasiado ni volvernos locos con esto. Si obtienes valores cercanos a la gráfica que he puesto es suficiente.
Un saludo y ánimo
.
Buenos días, he intentado calibrar las hélices pero utilizando el Serial Plotter el valor del eje Z me aparece en 9,8 de media. Como puedo hacer para tenerlo alrededor del 1 como tú. Y así poder compararlos con tu gráfica para ver que correctamente la variación es aproximada a la tuya.
Muchas gracias.
Buenas Guillermo,
La aceleración se visualiza en m/s2, que es la unidad de medida estándar para la aceleración. 9.8m/s2 equivale a 1g. Simplemente divide 9.8 * ax / 4096 /9.8
Un saludo
Buenas,
Me he quedado atascado en esta parte del proyecto ya que no consigo hacer funcionar el programa para visualizar los valores del acelerómetro.
En el programa principal de DroneArduinov_1 i en el de la prueba de los motores consigo controlar-los a la perfección, pero en este no consigo comprender porque no.
Llego a visualizar las aceleraciones por el serial plotter pero en ningún momento suenan los pitidos de los motores que tienen que sonar i por ello no giran.
Si tienes alguna sugerencia me seria de gran ayuda.
Gracias.