Si bien el que lea estos post no se dará cuenta de la cronología de los mismo (voy a tener que hacer un índice), todos los post que voy escribiendo van siguiendo el camino más o menos lógico en el diseño de una controladora de vuelo para un UAV. Hemos visto los sensores (acelerómetro, giróscopos, magnetómetros, altímetro), estamos hablando algo de la matriz de cosenos directores para la orientacion del UAV, hemos visto como leer la señal PPM del Rx del RC para saber conocer las órdenes del usuario.
Ahora nos toca ver como hacer para controlar un motor brushless a travez de un ESC (Electronic Speed Controller) y nuestro radiocontrol.
No descarto en un futuro no muy lejano tratar de diseñar nuestros propios ESC, Texas Instruments tiene unas muestras grátis de sus integrados específicos para control de BLDC que son muy tentadores, pero por ahora no es ese el objetivo.
Bueno, como muchos sabrán, hoy por hoy la mayoría de los modelos RC (aviones, quad, hexa, etc.) que son eléctricos funcionan con motores Brushless sensorless. No vamos a entrar demasiado en la teoría de funcionamiento, pero muy básicamente el motor es de iman permanente, trifásico, similar a un Paso a Paso, pero con la necesidad de controlar el momento preciso en el que debemos aplicar pulsos a cada bobina para her girar el motor. Los BLDC suelen ser de muy altas revoluciones, por ejemplo un motor de 1000kv (no son 1000 kilo volts!!!) nos da 1000 RPM por cada volt aplicado. Si funciona con una lipo de 3s (11.1V) nos dará más de 10.000RPM!!!! Para determinar en que momento se debe cambiar de bobina bajo alimentacion tenemos los BLDC con sensores y los sensorless. Estos miden la fuerza contra electro motriz que se crea por el paso de un imán frente a una de las bobinas.... en fin, el ESC posee la electrónica adecuada para comandar al motor a partir de una señal de control en forma de PWM.
Es muy importante saber que cada ESC debe ser configurado con el equipo RC que vallamos a usar. Como vimos las señales de cada canal de control del RC es un PWM con período 20mseg y con el tiempo en on de 1mseg para el stick del RC en el extremo inferior, 1.5mseg para el stick centrado y 2mseg para el stick con máximo superior. El tema es que esto no está tan normalizado. Por lo tanto debemos decirle al ESC cual es el tiempo ON de cada posicion del Stick. Para ello el ESC tiene un modo "configuracion" que se activa al energizarlo y con la señal de Stick al máximo. El procedimiento sería, desconectar la alimentacion del ESC. Encender el Tx. Llevar el stick del acelerador al máximo y tenerlo ahí. Alimentar el ESC. Este emitirá un sonido (un pitido, 2 pitidos o un tono, de acuerdo al modelo). Cuando esto sucede el ESC ha grabado el máximo valor del PWM del Rx. Luego debemos poner el stick en la posicion mínimo. Al cabo de unos segundos el ESC emitirá otro sonido avisándonos que ha terminado la configuracion. A partir de alli ya podemos utilizar el ESC sin problemas y con "escalado" perfecto. Debido a que la configuracion se graba en Flash, no será necesario volver a configurarlo cuando encendamos denuevo el sistema.
Aquí dejo un manual de un
ESC de RCTimer para que vean la programacion del mismo.
Una vez que la inicializacion está completa ya solo queda el comando del motor, el cual se realiza con un simple PWM.
Bueno, por ahora solo eso, la próxima veremos como controlar el ESC con nuestro uC.
Saludos