» Eletrônicos » Arduino »Sistema de estabilização de aeronave caseiro baseado em Arduino

Sistema caseiro de estabilização de aeronaves baseado em Arduino


Recentemente, fiquei interessado no tema do modelo de aeronave. E então começou: ele construiu um avião, comprou equipamentos. Antecipando o rápido desaparecimento do primeiro modelo sem sair da bilheteria, ele começou a coletar o segundo, enquanto trabalhava simultaneamente no simulador. Em geral, adiei meu primeiro voo real, pois tinha medo de partir em movimento o modelo. E então, por acidente, abrindo os espaços abertos do aliexpress, me deparei com uma coisa interessante - o sistema de estabilização de vôo. Este é um pequeno dispositivo do tamanho de um receptor que ajusta o voo de um avião, tornando-o mais suave e suavizando as falhas do piloto. Começou a pesquisar, ler, dizem e realmente uma coisa boa para iniciantes. Bem, aqui eu comecei - eu quero e pelo menos você quebra. É que o orçamento já estava acabando ... Parece que o avião construiria uma questão de 10 dólares no teto e compraria equipamentos, compraria uma bateria, compraria um carregador, um motor, um regulador, servos, hélices ... Em suma, muitas coisas acontecem. Um pouco deprimido, mas não desistindo, comecei a murchar a parte de trás da minha cabeça: então, eu meio que sei como soldar. Ele começou a procurar e quase imediatamente encontrou um pequeno artigo intitulado "O sistema de estabilização da aeronave por 200 rublos". Um pequeno artigo muito modesto com uma implementação muito modesta. Mas isso já é alguma coisa. Ele subiu para fóruns estrangeiros - e eis que este é um projeto enorme, com constante desenvolvimento! Está decidido, nós faremos!

O projeto é chamado MultiWii. Inicialmente, foi concebido como um controlador de vôo para multicopter baseado arduino, mas com o tempo, começou a crescer e melhorar. Agora existe um código que permite que você coloque esse sistema de estabilização em aeronaves e asas em V. Para uma execução mais simples, como no artigo acima, você precisará de apenas duas coisas: arduino e acelerômetro. Tudo isso pode ser soldado com fios, preenchido com ranho quente e funcionará. Mas pode e será, só que não trabalho assim.




E assim, para a fabricação de um dispositivo completo, você precisará de:

  • Arduino PRO Mini, 5V, Atmega 328
  • Módulo acelerômetro de três eixos com giroscópio MPU-6050
  • Pente pls
  • Um pedaço de fibra de vidro, se você mesmo fizer a prancha.
  • Resistor SMD 500-1500 Om
  • LED 3 mm qualquer.

Das ferramentas:

  • Ferro de solda
  • Solda
  • Fluxo (eu recomendo F5)
  • Conversor USB - UART CP2102 ou similar
  • Modelo / faca de escritório / montagem para fazer o caso

Bem, as pequenas coisas, fita dupla face, tesoura, brincos, pinças, algo que deveria estar armado com os mais jovens.

Como eu disse, o projeto está crescendo e se desenvolvendo. Então aqui você pode estragar outro módulo Bluetooth para configurar o controlador a partir do telefone, um barômetro, para controlar a altitude, o GPS para retornar o modelo "casa" quando o sinal for perdido. Além disso, o tópico de receptores improvisados ​​baseados no mesmo arduino e um módulo de comunicação barato A7105 também está crescendo, o que sem cirurgia interfere no meu equipamento FlySky i6, portanto, em teoria, você pode conectar esses dois projetos e obter cérebros completos para um avião, um planador ou asas. E em um compartimento com o equipamento de orçamento acima mencionado, que é discretamente modificado de 6 para 14 canais, isso geralmente é perfeito para iniciantes pelo seu dinheiro.

Por esse motivo, tentei tornar a placa de circuito para este dispositivo o mais simples possível, isto é, unilateral e com ferro de passar. Obviamente, será necessário conhecimento em eletrônica de rádio, pelo menos a capacidade de soldar mais ou menos qualitativamente, você pode pedir uma placa e, em casos extremos, mas, em essência, é um designer: eu costurei um arduino, soldei, o módulo e pentei na placa, está pronto. Esforço mínimo.


Arduino



Para firmware arduinka, você precisará de um conversor USB - UART (TTL) especial, porque O Arduino PRO Mini não possui uma interface USB. Você não deve ter medo disso, como regra, você pode comprá-los no mesmo local em que o arduino e os módulos são vendidos. A única diferença no firmware por meio desse conversor é que você precisa pressionar com habilidade o botão de reinicialização no próprio arduino no momento em que o esboço é baixado, embora existam conversores que acionam o pé de redefinição. Não descreverei o procedimento para enviar um esboço; já existem um milhão de artigos e vídeos sobre esse assunto, gravados e gravados.

Taxa



O próximo passo é formar o conselho. A placa é feita por qualquer tecnologia disponível ou encomendada. Eu recomendo rasgar as faixas, é melhor usar a liga ROSE ou WOODA, para que a camada seja a menor possível, grandes correntes não circulam por aqui e é melhor proteger o cobre da corrosão excessiva, chuva, neve, você nunca sabe, ainda não é um dispositivo doméstico. Eu fiz um LUT desonesto, não o melhor resultado, você pode fazer muita impressora ruim, mas quem se importa)



A primeira coisa a soldar os jumpers.



Atrás deles está o arduino. As pernas para piscar o arduinki precisam ser soldadas para cima ou angulares para os lados. Você pode preencher o esboço imediatamente, não pode preenchê-lo, isso não importa, porque o dispositivo montado ainda precisará estar conectado ao computador, para que os contatos de programação sejam facilmente acessíveis. O único conselho é verificar o arduino antes da soldagem, preencher qualquer esboço de teste e garantir que a placa esteja piscando. Apenas solda, então será hemorróidas.



Bem e tudo mais. O acelerômetro é soldado nas pernas altas e está localizado acima do arduino. Não vou esconder um pecado, espiei esse layout em um fórum estrangeiro em um vendido, mas desenhei meu próprio lenço unilateral. Quanto a mim, a ausência de três jumpers não vale o barulho com uma prancha de dupla face, não importa quão ruim seja a presença desses mesmos jumpers.




Uma ressalva. Há um resistor e LED na placa. O formato SMD do resistor pode ser retirado de alguns equipamentos quebrados, o valor nominal de 500 Ohms - 1,5 kOhm. Você pode pegar um LED comum de 3 mm, eu tinha um retangular, eu o soldei.


Nesta fase, o dispositivo, em princípio, já pode ser conectado e configurado, mas como me parece incompleto. Eletrônicos para modelos controlados por rádio há muito tempo adquire um caráter modular. Portanto, acho que esse dispositivo deve ser trazido para o módulo acabado, que é fácil de montar no modelo e conectar. Para fazer isso, ele precisa de um caso. Uma boa opção seria imprimi-lo em uma impressora 3D, o plástico usado para impressão é leve e durável. Mas nem todo mundo tem. Você pode argumentar por termoformação. Na Internet, há uma tonelada de informações sobre como fazer uma máquina simples para isso usando um aspirador de pó, madeira e um pedaço de madeira compensada. Mas para isso você precisa fazer uma cabeça dura e isso é preguiça. Sobre isso, segui o caminho de menor resistência. Sim, e esse método será semelhante a este artigo - para torná-lo o mais simples possível, usando o mínimo de ferramentas.


Habitação

Cortei dois pedaços de plástico de acordo com o tamanho da placa, no meu caso, em PVC transparente fino, mas você pode usar qualquer coisa, uma caixa de um disco, por exemplo. Não tirei fotos intermediárias, mas acho que ficará claro de qualquer maneira.Usando uma régua, medi a distância dos contatos no quadro e cortei janelas para eles no topo do "estojo". Fiz coaxialmente os furos do quadro e os conectei com rebites improvisados ​​dos tubos dos tapa-orelhas. Para fazer esse rebite, basta segurar cuidadosamente a ponta do tubo na chama do isqueiro e, quando um influxo se formar, pressionar contra o corpo do isqueiro. No verso, cortamos os tubos deixando alguns milímetros e fazemos o mesmo. Como espaçadores usavam segmentos do tubo do conta-gotas. Como resultado, surgiu um sanduíche desse tipo:




Fácil de fazer, leve, simples e confiável. Já é conveniente montá-lo na fuselagem da aeronave colando no fundo um par de tiras de fita dupla face "automóvel". Mas, para ter uma visão geral, você ainda precisa de uma placa de identificação, que informará em meio ano, quando já serão montados onze outros esquemas a que se conectar.




A placa de identificação impressa em papel brilhante autoadesivo. Recentemente comprado especificamente para esses fins. Anteriormente, fiz o seguinte: imprimi o que tinha, laminada com fita adesiva e colei em fita dupla face. O mais atento poderia avaliar meu nível de inglês)

Agora, o dispositivo pode realmente ser chamado de módulo pronto. O peso total de 15,5 gramas. Demais quando comparado com o adquirido, mas em geral, muito pouco. Pelo menos o meu modelo com um alcance de 950 mm será puxado sem problemas. Mas se você persegue o peso, pode dessoldar o arduino do pó solto diretamente na placa, economizar 2 gramas, usar um textolito fino de milímetro (eu usei qual deles, um, um e meio ou dois milímetros, não mede), não é o caso. Mas vale a pena esses 5 gramas? Por exemplo, o peso do receptor nativo do meu aplicativo é 16 gramas.
O dispositivo deve estar localizado em um plano horizontal; a seta indica a direção do movimento. Além disso, o dispositivo não pode ser instalado de cabeça para baixo. Para maior clareza, estou anexando uma foto.




Configuração, calibração

Agora vá para as configurações. Primeiro, você precisa conectar o dispositivo ao computador e, em seguida, abrir a interface gráfica do usuário anexada. Se não houver problemas com os drivers, a porta deverá aparecer no programa:




Nós selecionamos. Agora você precisa calibrar o acelerômetro. Pressionamos o botão READ e, se tudo estiver correto, podemos observar as leituras do sensor em tempo real. Colocamos o dispositivo em uma superfície plana e pressionamos CALIB_ACC. Normalmente, uma “superfície plana” é uma mesa perto do computador; portanto, ao pressionar a calibração, mantenha as mãos afastadas da mesa. Quem não se lembra, o acelerômetro é um sensor de aceleração. Portanto, quaisquer vibrações ou vibrações na calibração não terão um efeito positivo. Mas, se possível, é melhor calibrá-lo em uma superfície exposta ao nível. O giroscópio é calibrado automaticamente toda vez que é ligado, portanto, não precisa ser calibrado. A única coisa é que, quando você liga o modelo, ele deve ficar parado. Ou seja, colocamos o modelo no chão, ligamos e não tocamos nele. O giroscópio é calibrado imediatamente. A calibração é indicada por um LED assinado como STATUS.




Configure imediatamente o AUX1. É conveniente que ele use um interruptor de três posições, se houver um no transmissor. Em um nível baixo (a chave está na primeira posição), a estabilização é desativada; em um nível médio (e na posição, respectivamente), um acelerômetro é ativado e, em um nível alto, um giroscópio e um acelerômetro. Para um vôo normal, em princípio, basta um acelerômetro, um giroscópio geralmente é usado para vôos FPV. O que seria como eu descrevi - defina os valores como mostrado aqui:



Um pouco sobre outras configurações. PID - estas são as configurações da própria estabilização. Em poucas palavras:

  • P é o valor da força corretiva aplicada para retornar o modelo à sua posição inicial.
  • Eu É o período de tempo durante o qual os desvios angulares são registrados e calculados a média.
  • D - é a velocidade com que o modelo retornará à sua posição inicial.




Aconselho que você não toque nessas configurações antes do primeiro voo. A estabilização funciona bem com valores básicos, bem, e aí você já pode apertar se algo não combina com você.

Próximo. TPA responsável pelo valor dessas configurações do PID, dependendo da posição do gás. Com um valor de 0,00, os valores do PID serão os mesmos em qualquer posição do gás, ou seja, como esperado, a qualquer velocidade. Com um valor de 1,00 com um gás, o PID 100% será zero, ou seja, a estabilização será desativada. Com um valor de 0,5 por 100% do gás, os pids serão iguais a 50%, respectivamente. Aqui já está sendo ajustado para o avião e para o seu estilo acrobático, até agora deixei 50%.

Também no canal Aux2 você precisa configurar o reforço. Armar é um termo de helicóptero. Humanamente, isso é chamado de desbloqueio do mecanismo. Nos aviões, isso geralmente é implementado através de equipamentos de controle, mas desde Este controlador era originalmente helicóptero - aqui foi feito bastante difícil. Em geral, penduramos algum tipo de chave de alternância livre no AUX2; no programa, configuramos o ARM para um nível alto. Aqui, alguém pode querer trapacear e definir o desbloqueio em todos os níveis do AUX2, mas simplesmente não falha. Nesse caso, o multiviy se recusa a dar partida no mecanismo. Pode-se supor que isso seja um bug, mas acho que a proteção será breve. O avião ainda voa para a frente, e só Deus sabe onde o helicóptero descontrolado explodirá.

A propósito, isso é realmente conveniente. Especificamente, no meu aplicativo, o mecanismo é desbloqueado movendo a chave seletora para cima. Nesse caso, o equipamento deve ser ligado apenas com todos os interruptores na posição superior. Ou seja, você precisa ligar o equipamento, mover a chave seletora para baixo para bloquear o motor e, em seguida, transferi-la novamente para desbloquear. E você não pode inverter a coisa principal. Acontece imediatamente que, na posição superior, o motor está travado, na parte inferior, destravada.




Na aba SERVO você pode reverter os servos, se necessário. Aqui eles fizeram de alguma maneira intricada. Primeiro você precisa pressionar SERVO. Uma lista de servos e níveis será exibida. Se você pressionar o botão reverso agora e tentar salvar, nada será salvo. Primeiro, você precisa pressionar GO LIVE, após o qual, quando os sticks são rejeitados, será possível observar o desvio de nível na janela. Agora pressionamos o botão reverso do canal desejado e depois pressionamos SALVAR. Agora tudo foi gravado.




Um ponto importante sobre como desconectar o dispositivo do computador. Se você puxar os fios de programação do dispositivo ou o conversor da porta USB sem fechar a porta COM ou o programa MultiWiiConf, o sistema travará e a tela azul será aproximadamente 100% provável. Pelo menos no meu laptop é. Eu até chequei especificamente. Não sei se esse é um problema no meu hardware ou se ele reage, é visível na porta COM virtual, mas se for avisado, significa que está armado. Tenha em mente.

E mais algumas configurações que podem ser úteis. Se o seu receptor sabe emitir um sinal PPM, convém transmiti-lo para a visualização múltipla. Para fazer isso, abra o arquivo de firmware, vá para a guia config.h e procure a seção Receptor de soma PPM (Ctrl + F glorificado). Aqui você precisa descomentar 2 linhas. Quem não está no assunto, não comenta - isso significa remover duas barras no início da linha. Foi assim:


// # define PPM_ON_THROTTLE


Tornou-se assim:

#define PPM_ON_THROTTLE


Você também precisa descomentar uma dessas linhas, dependendo do 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 alguns Hitec / Sanwa / Outros


No meu caso, esta é a segunda linha, onde está o Futaba (para o que eu tenho o equipamento FlySky). Aqui pode ser necessário selecionar empiricamente, é possível prescrever a sequência desejada. De um jeito ou de outro, não há nada de complicado nisso. Compilamos o esboço e o preenchemos com um novo. Para retornar ao modo normal, faça o oposto, comente as linhas, compile, preencha. Quero prestar atenção, depois de recarregar o esboço, todas as configurações e calibração serão derrubadas, lembre-se disso.

Outro problema comum que, como eu o entendo, é frequentemente encontrado, e não sou exceção.Depois que todos montam e configuram, conectam todos os volantes - o leme flutua para longe. As alças do controle remoto foram arrancadas - parecia estar no lugar, mas se o planador tremesse um pouco - ele flutua para o lado novamente e em um ângulo bastante sério. É tratado elementarmente: no programa GUI, defina o valor YAW - eu para zero. O problema desaparece imediatamente.


Bem, o vídeo funciona:


Conclusão

Em geral, se você possui experiência na fabricação de placas de circuito impresso, o dispositivo é montado em uma noite. Eu já fiz as configurações básicas do avião no esboço, o restante que descrevi no artigo. As informações tiveram que ser coletadas em vários fóruns, principalmente estrangeiros. No entanto, dou links para várias fontes que ajudarão em caso de outros problemas, embora não devam ser.

, do qual peguei emprestado o fator de forma do quadro. Não ofereço comprar, mas o tópico possui um guia detalhado sobre a configuração do firmware em inglês. É verdade para a versão antiga do firmware, mas no novo tudo é quase o mesmo. Há também um modo no ramo que permite ajustar as configurações do PID em tempo real através do equipamento de controle do potenciômetro.

. Ele tem seu próprio firmware pessoal reescrito, eles dizem que é idealmente otimizado para aviões. Mas, novamente, a versão antiga. Você pode experimentá-lo, mas, pelo aparecimento de falhas não descritas neste artigo, não sou responsável. Existem muitas descrições de configurações.

. Mas as informações úteis básicas descritas aqui, a saber, o tratamento do leme, já descrevi. No entanto, você nunca sabe.

O custo total varia de 4 a 8 dólares, dependendo do preço que o arduino e o módulo foram comprados, existe um textolite em casa, existe um programador. De qualquer forma, isso é várias vezes menor que o valor de mercado de US $ 20 por dispositivo com as mesmas características. Pessoalmente, me custou US $ 2, um estoque de arduino para esses fins foi comprado há um ano, não havia apenas um módulo.

No arquivo anexado abaixo, há um esboço para o arduino, um programa de instalação do MultiWiiConf para diferentes sistemas operacionais, um arquivo PCB (para abrir, você precisa do SprintLayout com a versão 6) e um PCB em formato PDF para aqueles que não têm uma impressora a laser em casa ( precisa imprimir a 100%).


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

Boa sorte a todos em seu trabalho!
10
10
9.9

Adicionar um comentário

    • sorrirsorrisosxaxaoknão seiyahoonea
      chefearranhartolosimsim simagressivosegredo
      desculpedançardance2dance3perdãoajudabebidas
      pararamigosbomgoodgoodapitodesmaiarlíngua
      fumaçapalmascraydeclararirônicodon-t_mentionbaixar
      calorirritantelaugh1mdareuniãomoskingnegativo
      not_ipipocapunirlerassustarsustospesquisar
      provocarthank_youistoto_clueumnikagudoconcordar
      malbeeeblack_eyeblum3corargabar-setédio
      censuradobrincadeirasecret2ameaçarvitóriayusun_bespectacled
      sacudirrespektlolpreviubem vindoKrutoyya_za
      ya_dobryiajudantene_huliganne_othodifludproibirfechar
9 comentários
Guest Gennady
Em geral, os experimentos não tiveram êxito, o arduinka se esgotou. Estamos esperando que um novo dos irmãos chineses continue.
O autor
E a linha também precisa ser comentada, na mesma seção, elas estão próximas.
O autor
E como você se conectou ao receptor, por PPM ou canal por canal? Se canal por canal, você precisa encontrar a seção no esboço na guia conhig.h Receptor de soma PPM e comente de volta na linha, leia o final do artigo. Se não funcionar com o PPM, verifique se você esqueceu de mudar o equipamento e o receptor para o modo PPM.
Guest Gennady
Oi Montado, carregado um esboço no arduino, no programa mostra desvios. Mas não consigo conectar ao equipamento rc. Servos não funcionam, ou melhor, "chocalho".
O autor
Cancelar a inscrição, se possível, na conta do resultado, resolveu o problema ou não. E se sim, como. Será útil para outros leitores.
Valery K.
Obrigado pela resposta. Vou tentar outra versão. E sei que isso não é piloto automático. Eu preciso de um estabilizador de vôo.
O autor
Saudações. Como o esboço está 100% funcionando, e as bibliotecas são construídas no próprio esboço, a única coisa que vem à mente é a antiga ou vice-versa, uma versão muito nova. Arduino IDEPor alguma razão, às vezes com a versão "errada", o esboço não é compilado, isso aconteceu apenas uma vez, mas os fóruns costumam escrever sobre esse problema. Não me lembro de qual versão era quando a coletei, mas agora verifiquei tudo compilado. Versão 1.8.6
Leia também as fontes anexadas no final do artigo, talvez alguém também tenha encontrado um problema.
P.S. Este não é um piloto automático. Há também um projeto de piloto automático para o arduino, procure o ardupilot.
Valery K.
Caro autor, montei um piloto automático para o seu artigo. Mas quando o firmware não aconteceu devido à falta de conclusão da compilação do esboço. Peço ajuda, porque, infelizmente, não sou programador. Eu tenho trabalhado com o arduino recentemente e a experiência não é suficiente, mas a caça está voando.
O autor
Esqueci de escrever sobre outro problema. O motor inicia apenas se a aeronave estiver na posição horizontal. Pode acontecer que, durante o voo, você faça um loop, por exemplo, e por algum motivo remova o gás para zero, isso pode acontecer por acidente. Então, depois disso, o mecanismo não poderá mais iniciar. A maneira mais fácil de resolver o problema é deixar o sinal de gás do receptor através do cabo Y, um conectado diretamente ao controlador e o segundo à multivisão. Mas isso só funciona se você não estiver usando o PPM. Para o PPM, esse batente precisa ser tratado no código.

Aconselhamos que você leia:

Entregue-o para o smartphone ...