» Electrónica » Arduino »Sistema de estabilización de aeronaves casero basado en Arduino

Sistema de estabilización de aeronaves hecho en casa basado en Arduino


Recientemente, me interesé en el tema del modelo de avión. Y entonces comenzó: construyó un avión, compró equipo. Anticipándose a la rápida desaparición del primer modelo sin salir de la taquilla, comenzó a recoger el segundo, mientras trabajaba simultáneamente en el simulador. En general, retrasé mi primer vuelo real como pude, temiendo romper en movimiento el modelo. Y luego, por casualidad, al arar los espacios abiertos de aliexpress, me encontré con algo interesante: un sistema de estabilización de vuelo. Este es un pequeño dispositivo del tamaño de un receptor que ajusta el vuelo de un avión, haciéndolo más suave y aliviando las fallas del piloto. Comenzó a buscar, leer, dicen y realmente es algo bueno para los principiantes. Bueno, aquí encendí, quiero y al menos tú te rompes. Es solo que el presupuesto ya se estaba agotando ... Parece que el avión construiría una pregunta de 10 dólares en el techo, y compraría equipo, compraría una batería, compraría un cargador, un motor, un regulador, servos, hélices ... En resumen, suceden muchas cosas. Un poco deprimido, pero sin rendirme, comencé a marchitarme la cabeza: Duc, puedo soldar. Comenzó a buscar y casi de inmediato encontró un pequeño artículo titulado "El sistema de estabilización del avión por 200 rublos". Un pequeño artículo muy modesto con una implementación muy modesta. Pero esto ya es algo. Él subió a foros extranjeros, y he aquí, este es un gran proyecto con un desarrollo constante. ¡Está decidido, lo haremos!

El proyecto se llama MultiWii. Inicialmente, fue concebido como un controlador de vuelo para multicopter arduino, pero con el tiempo, comenzó a crecer y mejorar. Ahora hay un código que le permite poner este sistema de estabilización en aviones y alas V. Para la ejecución más simple, como en el artículo anterior, solo necesitará 2 cosas: arduino y acelerómetro. Todo esto puede soldarse con alambres, llenarse de mocos calientes y funcionará. Pero puede y será, solo que yo no trabajo así.




Y así, para la fabricación de un dispositivo completo necesitará:

  • Arduino PRO Mini, 5V, Atmega 328
  • Módulo acelerómetro de tres ejes con giroscopio MPU-6050
  • Peine por favor
  • Un pedazo de papel de fibra de vidrio, si haces el tablero tú mismo.
  • Resistencia SMD 500-1500 Om
  • LED 3 mm cualquiera.

De las herramientas:

  • Soldador
  • Soldadura
  • Flux (recomiendo F5)
  • USB - Convertidor UART CP2102 o similar
  • Modelo / clerical / cuchillo de montaje para hacer el estuche

Bueno, las pequeñas cosas, cinta adhesiva de doble cara, tijeras, auriculares, pinzas, lo que debería estar en servicio con los más pequeños.

Como dije, el proyecto está creciendo y desarrollándose. Entonces, aquí puede atornillar otro módulo Bluetooth para configurar el controlador desde el teléfono, un barómetro, para controlar la altitud, GPS para devolver el modelo "a casa" cuando se pierde la señal. Además de esto, el tema de los receptores improvisados ​​basados ​​en el mismo arduino y un módulo de comunicación barato A7105 también está creciendo, lo que sin intervención quirúrgica se conecta con mi equipo FlySky i6, por lo que, en teoría, puede conectar estos dos proyectos y obtener cerebros completos para un avión, un planeador o alas Y en un compartimento con el equipo económico mencionado anteriormente, que se transmite silenciosamente de 6 canales a 14, esto generalmente resulta perfecto para un principiante por su dinero.

Por esta razón, traté de hacer que la placa de circuito para este dispositivo sea lo más simple posible, es decir, unilateral y con una plancha. Por supuesto, se necesitará conocimiento en electrónica de radio, al menos la capacidad de soldar de manera más o menos cualitativa, puede pedir una placa y, en casos extremos, pero en esencia es un diseñador: cosí un arduino, lo solde, el módulo y el peine a la placa, está listo. Mínimo esfuerzo


Arduino



Para el firmware de Arduinka, necesitará un convertidor USB - UART (TTL) especial, porque Arduino PRO Mini no tiene una interfaz USB. No debe tener miedo de esto, por regla general, puede comprarlos en el mismo lugar donde se venden arduino y módulos. La única diferencia en el firmware a través de este convertidor es que debe presionar hábilmente el botón de reinicio en el arduino estrictamente en el momento en que se descarga el boceto, aunque hay convertidores que tiran del pie de reinicio. No describiré el procedimiento para subir un boceto; ya hay un millón de artículos y videos sobre este tema escritos y grabados.

Tarifa



El siguiente paso es hacer el tablero. El tablero está hecho por cualquier tecnología disponible u ordenada. Recomiendo desgarrar las vías, es mejor usar aleación ROSE o WOODA, de modo que la capa sea lo más pequeña posible, las grandes corrientes no anden por aquí, y es mejor proteger el cobre de la corrosión excesiva, la lluvia, la nieve, nunca se sabe, todavía no es un dispositivo doméstico. Hice un LUT deshonesto, no es el mejor resultado, puedes hacer muchas impresoras malas, pero a quién le importa)



Lo primero para soldar los puentes.



Detrás de ellos está Arduino. Las patas para flashear el arduinki necesitan ser soldadas o anguladas de lado. Puede completar el boceto de inmediato, no puede completarlo, no importa, porque el dispositivo ensamblado aún tendrá que estar conectado a la computadora, por lo que los contactos de programación deben ser fácilmente accesibles. El único consejo es verificar el arduino antes de soldar, completar cualquier boceto de prueba y asegurarse de que la placa parpadee. Solo suelde, entonces serán hemorroides.



Bueno y todo lo demás. El acelerómetro está soldado en patas altas y se encuentra por encima del arduino. No esconderé un pecado, espiaba tal diseño en un foro extranjero en uno vendido, pero dibujé mi propia bufanda unilateral. En cuanto a mí, la ausencia de tres puentes no vale la pena con un tablero de doble cara, no importa cuán mala sea la presencia de estos mismos puentes no se considera.




Una advertencia. Hay una resistencia y un LED en el tablero. El formato SMD de resistencia se puede eliminar de algunos equipos rotos, el valor nominal de 500 Ohms - 1.5 kOhm. Puedes tomar un LED normal de 3 mm, tenía uno rectangular, lo soldeé.


En esta etapa, el dispositivo, en principio, ya se puede conectar y configurar, pero como me parece incompleto. Electrónica para modelos controlados por radio ha adquirido desde hace tiempo un carácter modular Por lo tanto, creo que este dispositivo debe llevarse al módulo terminado, que es fácil de montar en el modelo y conectar. Para hacer esto, necesita un caso. Una buena opción sería imprimirlo en una impresora 3D, el plástico utilizado para imprimir es liviano y duradero. Pero no todos lo tienen. Puede hacer el caso por termoformado, en Internet hay una gran cantidad de información sobre cómo hacer una máquina simple para esto con una aspiradora, madera y un pedazo de madera contrachapada. Pero para esto necesitas hacer un tonto, y esto es pereza. En esto, tomé el camino de menor resistencia. Sí, y dicho método será similar a este artículo, para hacerlo lo más simple posible, utilizando un mínimo de herramientas.


Vivienda

Corté dos piezas de plástico de acuerdo con el tamaño de la placa, en mi caso de PVC transparente delgado, pero puedes usar cualquier cosa, una caja de un disco, por ejemplo. No tomé fotos intermedias, pero creo que quedará claro de todos modos.Usando una regla, medí la distancia a los contactos en el tablero, y corté ventanas para ellos en la parte superior de la "caja". Taladré agujeros coaxialmente con los agujeros en el tablero y conecté todo junto con remaches improvisados ​​de los tubos de los auriculares. Para hacer un remache de este tipo, es suficiente sostener suavemente la punta del tubo en la llama del encendedor y, cuando se forme un flujo, presionarlo contra el cuerpo de este encendedor. En el reverso, cortamos los tubos dejando un par de milímetros y hacemos lo mismo. Como espaciadores utilizaban segmentos del tubo del gotero. Como resultado, salió un sándwich de este tipo:




Fácil de hacer, ligero, simple y confiable. Ya es conveniente montarlo en el fuselaje del avión pegando al fondo un par de tiras de cinta adhesiva de doble cara para "automóviles". Pero para la imagen completa, todavía necesita una placa de identificación, que le dirá en medio año, cuando ya se ensamblarán otros once esquemas, a qué conectarse.




La placa de identificación impresa en papel brillante autoadhesivo. Recientemente comprado específicamente para tales fines. Anteriormente, hice esto: imprimí en lo que tenía, laminé con cinta adhesiva y lo pegué con cinta adhesiva de doble cara. El más atento podría evaluar mi nivel de inglés)

Ahora el dispositivo realmente se puede llamar un módulo listo para usar. El peso total de 15,5 gramos. Demasiado en comparación con el comprado, pero en general, casi nada. Al menos mi modelo con un rango de 950 mm tirará sin problemas. Pero si persigue el peso, puede soldar el arduino del polvo suelto directamente en el tablero, ahorre 2 gramos, use una textolita delgada milimétrica (usé cuál, uno y medio o dos milímetros, no midió), no haga el caso. ¿Pero valen esos 5 gramos? Por ejemplo, el peso del receptor nativo de mi aplicación es de 16 gramos.
El dispositivo debe ubicarse en un plano horizontal, la flecha indica la dirección del movimiento. Además, el dispositivo no se puede instalar al revés. Para mayor claridad, adjunto una imagen.




Configuración, calibración

Ahora ve a la configuración. Primero debe conectar el dispositivo a la computadora y luego abrir la interfaz gráfica de usuario adjunta. Si no hay problemas con los controladores, el puerto debería aparecer en el programa:




Lo seleccionamos Ahora necesita calibrar el acelerómetro. Presionamos el botón READ y si todo está correcto, podemos observar las lecturas del sensor en tiempo real. Colocamos el dispositivo sobre una superficie plana y presionamos CALIB_ACC. Por lo general, una "superficie plana" es una mesa cerca de la computadora, así que cuando presione la calibración, mantenga las manos alejadas de la mesa. Quién no recuerda, el acelerómetro es un sensor de aceleración. Por lo tanto, cualquier vibración o vibración en la calibración no tendrá un efecto positivo. Pero si es posible, es mejor calibrarlo en una superficie expuesta al nivel. El giroscopio se calibra cada vez que se enciende, por lo que no es necesario calibrarlo. Lo único es que cuando enciendes el modelo debe estar estacionario. Es decir, ponemos el modelo en el suelo, lo encendemos y no lo tocamos. El giroscopio se calibra inmediatamente. La calibración se indica mediante un LED firmado como ESTADO.




Inmediatamente configure AUX1. Le conviene usar un interruptor de tres posiciones, si hay uno en el transmisor. A un nivel bajo (el interruptor está en la primera posición), la estabilización está deshabilitada, en un nivel promedio (y posición, respectivamente) se enciende un acelerómetro, y en un nivel alto, un giroscopio y un acelerómetro. Para un vuelo normal, en principio, un acelerómetro es suficiente, generalmente se usa un giroscopio para vuelos FPV. Lo que sería como lo describí: establezca los valores como se muestra aquí:



Un poco sobre otras configuraciones. PID - Estos son los ajustes de la estabilización en sí. En pocas palabras:

  • P es el valor de la fuerza correctiva aplicada para devolver el modelo a su posición inicial.
  • Yo Es el período de tiempo durante el cual se registran y promedian las desviaciones angulares.
  • D - esta es la velocidad con la que el modelo volverá a su posición inicial.




Le aconsejo que no toque estas configuraciones antes del primer vuelo. La estabilización funciona bien en valores básicos, bueno, y allí ya puede ajustar si algo no le conviene.

Siguiente TPA responsable del valor de estas configuraciones PID dependiendo de la posición del gas. A un valor de 0.00, los valores PID serán los mismos en cualquier posición de gas, es decir, como se esperaba, a cualquier velocidad. Con un valor de 1.00 con un gas, 100% PID será cero, es decir, la estabilización se desactivará. A un valor de 0.5 por 100% del gas, los pids serán iguales al 50%, respectivamente. Aquí ya se está ajustando para el avión y para su estilo acrobático, hasta ahora me queda el 50%.

También en el canal Aux2 necesita configurar el refuerzo. Armado es un término de helicóptero. Humanamente, esto se llama desbloquear el motor. En los aviones, esto generalmente se implementa a través de equipos de control, pero desde Este controlador fue originalmente helicóptero, aquí se hizo bastante difícil. En general, colgamos algún tipo de interruptor de palanca libre en AUX2, en el programa configuramos ARM a un nivel alto. Aquí, alguien puede querer hacer trampa y establecer el desbloqueo en todos los niveles de AUX2, pero simplemente no fallar. En este caso, la multivía se niega a arrancar el motor. Se puede suponer que esto es un error, pero creo que la protección es pronto. El avión todavía solo vuela hacia adelante, y solo Dios sabe dónde explotará el helicóptero incontrolado.

Por cierto, esto es realmente conveniente. Específicamente, en mi aplicación, el motor se desbloquea moviendo el interruptor hacia arriba. En este caso, el equipo debe encenderse solo con todos los interruptores de palanca en la posición superior. Es decir, resulta que debe encender el equipo, mover el interruptor hacia abajo para bloquear el motor y luego transferirlo nuevamente para desbloquearlo. Y no puedes invertir lo principal. Inmediatamente resulta humanamente, en la posición superior el motor está bloqueado, en la inferior desbloqueado.




En la pestaña SERVO Puede invertir los servos si es necesario. Aquí lo hicieron de alguna manera intrincada. Primero debes presionar SERVO. Aparecerá una lista de servos y niveles. Si presiona el botón de retroceso ahora e intenta guardar, no se guardará nada. Primero debe presionar GO LIVE, después de lo cual cuando se rechazan los palos, será posible observar la desviación de nivel en la ventana. Ahora presionamos el botón de retroceso del canal deseado y luego presionamos GUARDAR. Ahora todo ha sido grabado.




Un punto importante acerca de desconectar el dispositivo de la computadora. Si extrae los cables de programación del dispositivo o extrae el convertidor del puerto USB sin cerrar el puerto COM o el programa MultiWiiConf, el sistema se bloqueará y la pantalla azul será aproximadamente 100% probable. Al menos en mi computadora portátil lo es. Incluso lo comprobé específicamente. No sé si esto es un problema con mi hardware o si reacciona, es visible para el puerto COM virtual, pero si está advertido, significa que está armado. Tener en cuenta.

Y algunas configuraciones más que pueden ser útiles. Si su receptor sabe cómo emitir una señal PPM, es posible que desee transmitirla a la vista múltiple. Para hacer esto, abra el archivo de firmware, vaya a la pestaña config.h y busque la sección PPM Sum Reciver (Ctrl + F glorificado). Aquí necesitas descomentar 2 líneas. Quién no está en el tema, sin comentar: esto significa eliminar dos barras al comienzo de la línea. Fue así:


// # define PPM_ON_THROTTLE


Se hizo así:

#define PPM_ON_THROTTLE


También debe descomentar una de estas líneas, según el hardware:

// # define SERIAL_SUM_PPM PITCH, YAW, THROTTLE, ROLL, AUX1, AUX2, AUX3, AUX4,8,9,10,11 // Para Graupner / Spektrum
// # define SERIAL_SUM_PPM ROLL, PITCH, THROTTLE, YAW, AUX1, AUX2, AUX3, AUX4,8,9,10,11 // Para Robe / Hitec / Futaba
// # define SERIAL_SUM_PPM ROLL, PITCH, YAW, THROTTLE, AUX1, AUX2, AUX3, AUX4,8,9,10,11 // Para Multiplex
// # define SERIAL_SUM_PPM PITCH, ROLL, THROTTLE, YAW, AUX1, AUX2, AUX3, AUX4,8,9,10,11 // Para algunos Hitec / Sanwa / Otros


En mi caso, esta es la segunda línea, donde está Futaba (para qué tengo el equipo FlySky). Aquí puede ser necesario seleccionar empíricamente, es posible prescribir la secuencia deseada usted mismo. De una forma u otra, no hay nada complicado al respecto. Compilamos el boceto y lo llenamos con uno nuevo. Para volver al modo normal, haga lo contrario, comente líneas, compile, complete. Quiero prestar atención, después de volver a cargar el boceto, todos los ajustes y la calibración serán eliminados, tenga esto en cuenta.

Otro problema común que, según tengo entendido, a menudo se encuentra, y no soy la excepción.Después de que todos se hayan montado y configurado, conectado todos los volantes, el timón se aleja flotando. Las manijas del control remoto se movieron bruscamente, parecía estar en su lugar, pero si el planeador se sacudió un poco, se alejó flotando hacia un lado y en un ángulo bastante serio. Se trata de manera elemental: en el programa GUI, establezca el valor YAW - I a cero El problema desaparece de inmediato.


Bueno, el video funciona:


Conclusión

En general, si tiene experiencia en la fabricación de placas de circuito impreso, el dispositivo se ensambla en una noche. Ya hice los ajustes básicos para el avión yo mismo en el boceto, el resto lo describí en el artículo. La información tuvo que ser recopilada en varios foros, principalmente extranjeros. Sin embargo, doy enlaces a varias fuentes que ayudarán en caso de otros problemas, aunque no deberían serlo.

, del cual tomé prestado el factor de forma del tablero. No ofrezco comprar, pero el tema tiene una guía detallada sobre la configuración del firmware en inglés. Es cierto para la versión anterior del firmware, pero en la nueva todo es casi igual. También hay un modo en la rama que le permite ajustar la configuración PID en tiempo real a través del equipo de control del potenciómetro.

. Tiene su propio firmware personal reescrito, dicen que está idealmente optimizado para aviones. Pero de nuevo, la versión anterior. Puede probarlo, pero por la aparición de fallas no descritas en este artículo, no soy responsable. Hay muchas descripciones de configuraciones.

. Pero la información útil básica que se describe allí, es decir, el tratamiento del timón, ya he esbozado. Sin embargo, nunca se sabe.

El costo total oscila entre 4 y 8 dólares, dependiendo del precio que se haya comprado el arduino y el módulo, si hay una textolita en casa, si hay un programador. En cualquier caso, esto es varias veces menor que el valor de mercado de $ 20 por dispositivo con las mismas características. Personalmente, me costó $ 2, un stock de arduino para tales fines fue comprado hace un año, no solo había un módulo.

En el archivo adjunto a continuación hay un boceto para arduino, un programa de configuración MultiWiiConf para diferentes sistemas operativos, un archivo PCB (para abrir necesita SprintLayout no menos que la versión 6), así como un PCB en formato PDF, para aquellos que no tienen una impresora láser en casa ( necesita imprimir al 100%).


airplain_stabilization.rar [10.64 Mb] (descargas: 234)

¡Buena suerte a todos en tu trabajo!
10
10
9.9

Agrega un comentario

    • sonriesonrisasxaxaokno sabesyahoonea
      jeferascarsetontosisi-siagresivosecreto
      lo sientobailardance2dance3perdónayudabebidas
      pararamigosbuenobuenosilbatodesmayarselengua
      fumaraplaudirllorardeclararburlóndon-t_mentiondescargar
      calorfuriosorisa1mdareuniónMoskingnegativo
      not_ipalomitas de maizcastigarleerasustarasustabuscar
      burlagraciasestoto_clueumnikagudode acuerdo
      malbeeeojo negroblum3ruborpresumiraburrimiento
      censuradocortesíasecreto2amenazarvictoriaYusun_bespectacled
      shokrespektjajajaPrevedbienvenidokrutoyya_za
      ya_dobryiayudantene_huliganne_othodigolpearprohibircerrar
9 comentarios
Invitado Gennady
En general, los experimentos no tuvieron éxito, el arduinka se quemó. Estamos esperando que continúe uno nuevo de los hermanos chinos.
El autor
Y la línea también necesita ser comentada, en la misma sección, están cerca.
El autor
¿Y cómo se conectó al receptor, a través de PPM o canal por canal? Si canal por canal, necesita encontrar la sección en el boceto en la pestaña conhig.h PPM Sum Reciver y comentar en la línea, leer el final del artículo. Si no funciona a través de PPM, verifique si olvidó cambiar el equipo y el receptor al modo PPM.
Invitado Gennady
Hola Ensamblado, subió un boceto en arduino, en el programa muestra desviaciones. Pero no puedo conectarme al equipo rc. Los servos no funcionan, o más bien "traquetean".
El autor
Darse de baja, si es posible, a la cuenta del resultado, ha resuelto el problema o no. Y si es así, cómo. Será útil para otros lectores.
Valery K.
Gracias por la respuesta Probaré otra versión. Y sé que esto no es piloto automático. Necesito un estabilizador de vuelo.
El autor
Saludos Dado que el boceto funciona al 100% y las bibliotecas están integradas en el boceto en sí, lo único que viene a la mente es la versión antigua o viceversa, una versión muy nueva. Arduino IDEPor alguna razón, a veces con la versión "incorrecta", el boceto no se compila, solo ocurre una vez, pero los foros a menudo escriben sobre tal problema. No recuerdo qué versión tenía cuando lo recolecté, pero ahora lo revisé, todo se compiló. Versión 1.8.6
También lea las fuentes adjuntas al final del artículo, tal vez alguien también encontró un problema.
P.S. Esto no es un piloto automático. También hay un proyecto de piloto automático para arduino, busque ardupilot.
Valery K.
Estimado autor, armé un piloto automático para su artículo. Pero cuando el firmware no sucedió debido a la falta de finalización de la compilación del boceto. Pido ayuda porque, desafortunadamente, no soy programador. He estado trabajando con Arduino recientemente y la experiencia no es suficiente, pero cazar es volar.
El autor
Olvidé escribir sobre otro problema. El motor arranca solo si el avión está en posición horizontal. Puede suceder que, durante el vuelo, realice un bucle, por ejemplo, y por alguna razón retire el gas a cero, puede suceder por accidente. Entonces, después de esto, el motor ya no puede arrancar. La forma más fácil de resolver el problema es dejar que la señal de gas del receptor a través del cable Y, una esté conectada directamente al controlador, la segunda a la multivisión. Pero esto solo funciona si no está utilizando PPM. Para PPM, esta jamba debe tratarse en código.

Le recomendamos que lea:

Pásalo por el teléfono inteligente ...