Un paso más
He añadido a la Web un nuevo Modulo: Prueba Motor
Permite a través del teclado del ordenador gobernar un motor Brushless.
Creo que merece la pena verlo/probarlo y que puede ser de aplicación en otros proyectos.
Por favor informarme de cualquier error que detectéis
Tíos preguntar algo que parece que ahí detrás no hay nadie :-/
Saludos
Convierten la corriente contiunua (2 fases) a alterna y trifasica
Un ESC controla y regula una potencia de hasta 250 w (vatios), mientras que la potencia total (todos los pines)) de ARDUINO estimo que es de unos 2 w.
Por otra parte se necesita: el equipo de radio (emisor y receptor) y diferentes sensores (acelerometros, giroscopos, etc.)
¡Uff!! Que proyecto mas guapo.
Estaremos pendientes.
Aprovecho para hacer una pregunta de novatillo.
En las rutinas de lectura y escritura de la eeprom se utiliza "union" que explicas que sirve para disponer de una misma variable en varios tipos a la vez.
Esto es propio de C++ pero, ¿se puede usar en el código de Arduino?
Estaba inquieto por conocer la precisión/fiabilidad de los datos, que el programa de "control de vuelo" recibe, en comparación con los que el piloto le envía a través del equipo de RC.
Para salir de dudas he modificado el programa “Leer Radio” , para que una vez “centrado” e “inicializados motores” y sin mover los sticks, tomar una “muestra” de 50 lecturas y ver que resultados obtengo.
He añadido tres nuevas subrutinas para calcular los valores “estadísticos” que utilizaremos para evaluar la precisión del sistema:
mediayrecorrido();
desviacion();
moda();
Que naturalmente se pueden utilizar en otros programas.
Y he medido las del último tramo, midiendo el PWM de un solo canal
SORPRESA ahora los datos son perfectos. :-/
La solución parece ser que es leer los canales por separado.
Pero aun no se cual es el error en el planteamiento del Leer Radio-01
Por desconocimiento de la función, en los programas yo estaba utilizando una subrutina para calcular el ancho de los pulsos de la radio, hasta que un “colega” me indico que utilizando “pulseIn” podía ahorrarme un montón de líneas.
Inmediatamente cambie el programa pero empecé a obtener resultados extraños.
Después de volverme loco descubrí que: cuando esta función trabaja conjuntamente con “ServoTimer2” las lecturas de “pulseIn” son unos 100 microsegundos inferiores a las normales
En la Web he traducido lo que dice “referente” y mis experiencia.
También adjunto un pequeño programa para que lo comprobéis.
Se que es imposible controlar un cuadricóptero a mano.
Las reacciones humanas no son suficientemente rápidas. :-[
He preparado un programa que le puesto el nombre de Pim-Pom (le va al pelo)
Para tratar de mantener equilibrado un “columpio” con un motor en cada extremo, mandándole ordenes con la radio.
El resultado el esperado, pero para mi no es una perdida de tiempo, es un paso más.
El siguiente paso tiene que ser incorporar “sensores” que hagan el trabajo de mantenerlo equilibrado (80%) y nosotros de “señoritos” solo a mandar (20%)