Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

Avião Arduino RC | 100% faça você mesmo


Neste tutorial, mostrarei como construo um avião RC baseado em Arduino e, também, mostrarei como controlá-lo usando o transmissor Arduino personalizado que construí em um dos meus vídeos anteriores.

Você pode assistir ao vídeo a seguir ou ler o tutorial escrito abaixo.

Visão geral


Então, o avião é inteiramente feito de isopor. Para fazer as formas usei minha máquina de corte de espuma CNC Arduino que já mostrei como construí em um vídeo anterior. Embora eu esteja usando uma máquina CNC para construir este avião Arduino RC, ainda posso dizer que é 100% DIY porque a máquina CNC também é uma construção DIY.

Além disso, o controle do avião também é 100% DIY, baseado no Arduino e no módulo NRF24L01 para comunicação via rádio.

Usando o joystick direito do transmissor, podemos controlar os ailerons e o profundor do avião, e usando o joystick esquerdo podemos controlar o leme e o acelerador.

Além disso, usando o potenciômetro direito podemos ajustar a capacidade de resposta dos controles, ou reduzir a quantidade de deslocamento do servo, e usando o joystick esquerdo podemos ajustar o leme ou ajustar a posição neutra do braço do servo.

Ah, e quase esqueci a menção, a principal característica deste avião Arduino RC é voar, então sim, ele pode voar.

Projetando o avião RC – Modelo 3D


Comecei projetando o avião usando um software de modelagem 3D, Fusion 360 neste caso. Eu fiz o projeto olhando para alguns aviões comerciais de RC e seguindo algumas diretrizes básicas ou regras práticas para os parâmetros de aeromodelismo.

O ponto de partida é a envergadura, e optei por 80cm. A partir daí obtemos o comprimento da fuselagem, que geralmente é 75% da envergadura. Quanto ao aerofólio, ou a seção transversal da asa, escolhi o CLARK Y Airfoil, que é uma escolha popular para aviões RC.

Baixei a forma do aerofólio de airfoiltools.com como arquivo .SVG e importei-o para o Fusion 360. Ajustei o tamanho adequadamente, de modo que a corda da asa ou o comprimento da asa na direção do fluxo seja de cerca de 1/5 da envergadura.

O estabilizador horizontal e vertical também são dimensionados de acordo com essas diretrizes básicas. Aqui estão alguns desses parâmetros básicos de design de avião modelo RC:

A fuselagem do avião será feita de dois lados de 10 mm e um núcleo de 50 mm que será oco para acomodar a eletrônica.

Você pode baixar o modelo 3D nos links acima. Existem duas versões do avião. A versão 1 é a mostrada aqui nas imagens, e a versão dois tem o nariz um pouco menor e o motor pode ser colocado mais para frente para melhorar o fluxo de ar.

Gerando códigos G para meu cortador de espuma CNC DIY


Agora, como a área de trabalho da minha máquina de corte de espuma CNC Arduino é limitada a 45 cm e a fuselagem tem 60 cm de comprimento, tive que fazer a fuselagem em duas partes.

Então, cortei a fuselagem a 34cm do ponto frontal, e fiz um novo esboço no qual projetei a forma e adicionei um ponto próximo a ela. Em seguida, na guia de fabricação do Fusion 360, posso gerar o código G para cortar as formas.

Aqui, primeiro fiz uma nova configuração onde selecionei o esboço como modelo, selecionei o ponto que adicionei anteriormente como origem para a configuração e ajustei os eixos X e Y adequadamente.

Então optei pela operação de contorno 2D e selecionei ou gerei uma nova ferramenta, com diâmetro de 3mm, pois esse é o tamanho aproximado dos cortes que o fio quente faz ao passar pelo isopor. Aqui também podemos definir o avanço de corte que depende do próprio fio quente e da dureza do isopor. Eu defini-lo para 150 mm/m.

Em seguida, na torneira de geometria, podemos selecionar o contorno ou a forma que precisa ser cortada. Quanto às alturas, defino todas para 1 mm, pois não há nenhum movimento do eixo Z na minha máquina de corte de espuma. Por fim, na torneira de Vinculação, selecionei a posição de entrada para ser a aresta localizada perto do ponto de origem.

Com isso o percurso é gerado e podemos dar uma olhada nele clicando no botão Simulação. O caminho da ferramenta deve ser uma passagem única de loop fechado e, se for esse o caso, podemos finalmente gerar o código G. Para isso podemos ir em Post Processes, selecionar o firmware GRBL, selecionar a pasta de saída, nomear o arquivo e clicar no botão post.

Então podemos salvar o arquivo e podemos ver o código G no editor do WordPad ou algo semelhante.

Então, agora que temos o arquivo de código G, podemos carregá-lo no remetente universal de código G e enviar o código G para a máquina CNC para fazer a forma.

Podemos notar que o processo que acabei de mostrar a você provavelmente não é o melhor ou nada profissional, mas ainda faz o trabalho de fazer os códigos G funcionarem com minha máquina de corte de espuma CNC DIY. Claro, para mais detalhes sobre esta máquina CNC DIY, você pode conferir meu tutorial específico para ela, o link está na descrição do vídeo.

Você pode baixar os arquivos de código G aqui:

Como eu disse, para os lados usei isopor carrapato de 1cm e para o meio usei isopor carrapato de 5cm.

Quanto à asa, usei isopor carrapato de 10cm que cortei com cerca de 30cm de largura porque é o vão máximo que minha máquina de fio quente pode cortar. Coloquei dois perfis de asa em um único arquivo de código G e cortei alguns deles.

Para obter a envergadura de 80cm vou colar 3 pedaços de 27cm, e para deixá-los retos, cortei manualmente as pontas dos pedaços para que fiquem perpendiculares.

Montagem do avião RC


Então aqui estão todas as peças de isopor que cortei com máquina CNC. Três peças para a frente, três peças para as costas e três peças para a asa. Agora posso começar a montá-los.

Vou começar pela parte da frente. Estou usando uma pistola de cola para colar as peças. A cola quente estava derretendo um pouco o isopor, mas ainda assim consegui colá-los usando esse método.

Outra boa maneira de colar isopor é com epóxi de 5 minutos. Antes de colar o outro lado, vou fazer o suporte para o motor. Para esse propósito, estou usando um perfil de alumínio de 30 mm de largura, que é bastante leve. Cortei o perfil em cerca de 18cm, marquei os furos para a montagem do motor e furei com broca de 3mm. Então eu dobrei o perfil em 90 graus. Eu prendi o motor ao suporte usando alguns parafusos M3.

Usando essa montagem, fiz um furo na parte frontal do isopor. Então, usando um estilete, ampliei o furo para 30mm de diâmetro, igual ao diâmetro do motor.

Em seguida, do outro lado do suporte do motor fiz 4 furos que servirão para fixar o suporte no lugar e também para prender o trem de pouso. Marquei a localização desses furos na fuselagem e usando uma broca de 4 mm fiz furos no isopor manualmente. Fiz outra peça de alumínio com cerca de 7cm de comprimento com os mesmos furos, e agora posso usá-la para prender o suporte do motor.

Usando parafusos M4, podemos fixar facilmente o suporte do motor sem danificar o isopor. No entanto, farei isso mais tarde, então os removi e continuei colando o outro lado. Usando o mesmo método, colei as peças de trás também.

O próximo passo é o casamento, ou seja, conectar a parte frontal e a parte traseira da fuselagem. Para tornar a conexão mais forte, adicionarei palitos de churrasco simples entre eles.

Eu sugeriria até mesmo usar alguns bastões maiores, porque quando o avião cair, ele pode facilmente quebrar aqui. Eu adicionei uma quantidade razoável de cola quente no local de conexão e os apertei. Então aqui está, a fuselagem está pronta e eu acho que ficou bem legal.

Em seguida, usando um estilete estou cortando dois pedaços de isopor de 10 mm que serão os estabilizadores horizontal e vertical. Eu chanfrado as bordas para que pareçam melhores e também sejam um pouco mais aerodinâmicas. Os estabilizadores serão colados diretamente na parte de trás da fuselagem, mas antes de fazer isso, primeiro farei as superfícies do controlador.

Para isso, cortei cerca de 1/3 de seu comprimento, e essa será sua superfície de controle ou o profundor para o estabilizador horizontal e o leme para o estabilizador vertical. Para poder dobrar as superfícies de controle nos estabilizadores, eu precisava chanfrar sua superfície de contato. Novamente, eu fiz isso usando um estilete, e nós realmente precisamos de um bem afiado para limpar esses cortes.

Continuei fazendo os estabilizadores um pouco mais aerodinâmicos. Para isso, usei uma lixa e arredondamos suas bordas de ataque. Também lixei um pouco as bordas de fuga.

Agora, como o isopor é bastante frágil, vou envolver toda a área dos estabilizadores e suas superfícies de controle com uma simples fita adesiva. Isso não só deixará as peças mais fortes como também aumentará a aerodinâmica, já que a fita é muito mais lisa que o próprio isopor.

Depois de embrulhar, cortei a parte inferior do leme em 45 graus, para dar espaço para o profundor poder se mover livremente.

Agora, finalmente, posso fazer a dobradiça para ela, e estou fazendo isso usando a fita de embalagem novamente. Então, acabei de conectar as duas partes com a fita, e isso faz uma dobradiça bastante forte.

Repeti esse processo também para o estabilizador horizontal. Para tornar a dobradiça ainda mais forte, também podemos adicionar fita adesiva do outro lado. Usando a mesma fita, enrolei as laterais e com isso os dois estabilizadores estão prontos.

Continuei colando o estabilizador horizontal na fuselagem usando cola quente. Para fixar o estabilizador vertical, primeiro inseri e colei 3 palitos de churrasco no estabilizador horizontal e na fuselagem. Então eu coloquei um pouco de cola quente neles e na superfície de contato e empurrei o estabilizador para baixo com firmeza.

Com isso terminamos os estabilizadores e podemos seguir em frente com a fabricação da asa.

Então, como eu já disse, a asa será feita de 3 peças por causa da área de trabalho limitada da minha máquina de corte de espuma CNC DIY. Novamente, estou usando palitos de churrasco para fornecer forças adicionais ao colar as peças. Para prendê-los precisamente em linha, estou usando uma tira reta de madeira na qual posso deslizar as peças.

Uma vez feito isso, a asa é realmente bastante frágil, pois é longa e estanhada. Portanto, vou reforçá-lo adicionando um bastão de madeira a ele. Cortei o bastão no tamanho certo e marquei a asa onde preciso fazer um bolso para que eu possa encaixar o bastão nela. Usando o canivete, fiz o bolso devagar e com cuidado. Eu adicionei um pouco de cola quente e prendi no lugar sem perturbar muito a forma do aerofólio.

Agora a asa é muito mais forte com a vara de madeira no lugar. Embora mais forte, ele ainda se quebraria facilmente se atingir o chão, portanto, vou embrulhar tudo com a fita de embalagem da mesma forma que fiz com os estabilizadores. Comecei a adicionar a fita da parte de trás ou da borda de fuga da asa, para a parte da frente ou na borda de ataque.

Desta forma, o ar que entra pela frente não tenderá a desprender a fita. Embora esse processo pareça bastante fácil, pode ser um pouco chato se você não tiver mãos firmes e paciência suficiente. Acho que a asa ficou perfeita. Agora é muito mais forte, mais aerodinâmico e parece muito bom.

Tudo bem, o próximo passo é fazer as superfícies de controle das asas ou dos ailerons. Vou fazê-los com 22 cm de largura e cerca de 1/4 da corda da asa de comprimento. Para poder me mover livremente, cortei meio centímetro dele.

E claro, envolvi todas as arestas expostas com o corte. Em seguida, eu chanfro a parte inferior do aileron em 45 graus e, da mesma forma que mostramos anteriormente, agora posso dobrá-lo na asa. Para encaixar na fuselagem e poder prender facilmente a asa à fuselagem, tive que fazer mais um recesso no meio da asa.

Em seguida, é hora de instalar os servomotores para controlar os ailerons. Estou usando os micro servos 9g. Marquei o local onde eles serão colocados e usando o estilete, cuidadosamente fiz uma abertura na asa para que o servo possa encaixar. Enquanto isso, removi os suportes de montagem dos servos para que sua forma seja mais simples. Coloquei um pouco de cola no servo e inseri na abertura.

Usando o estilete, fiz um pequeno sulco do servo até o centro da asa para que eu possa encaixar a fiação dos servos nela. Por fim, cobri tudo com um pedaço de fita adesiva. Eu repeti o mesmo processo para o outro lado também.

Continuei fazendo as buzinas de controle. Vou fazê-los com o perfil de alumínio que usei antes para fazer o suporte do motor. Eu desenho a forma à mão para coincidir aproximadamente com a altura da buzina do servo motor e para pendurar sobre o ponto de articulação. Eu cortei a forma usando uma serra.

Vou usar um fio de aço de 2 mm como haste de controle, então fiz uma abertura na buzina usando uma broca de 2,5 mm. Fiz um pequeno sulco no aileron e colei a buzina no lugar. Então medi o comprimento da haste de controle e fiz com um fio de aço de 2 mm com a ajuda de um alicate. Precisamos observar que ao medir e inserir as hastes de controle, os servomotores precisam estar na posição neutra.

Podemos fazer isso colocando-o manualmente no meio de sua faixa de movimento, ou conectando-o a um testador de servo ou fazendo isso com um Arduino. Repeti o processo para o outro lado, e com isso a asa agora está completamente pronta.

Em seguida, preciso instalar os servos para controlar o leme e o profundor. Estou usando os mesmos micro servos de 9g aqui também, e o processo de instalá-los é praticamente o mesmo que acabei de explicar. Primeiro marquei o local, fiz a abertura com um estilete e colei os dois motores no lugar. Aqui, eles estão um ao lado do outro, mas com seus eixos de saída no lado oposto.

Novamente, fiz um pequeno sulco na fuselagem para conduzir a fiação dos servos até o compartimento eletrônico. Cobri os servos com um pedaço de fita e fiz aberturas para os chifres dos servos. Da mesma forma mostrada anteriormente, fiz os chifres de controle e colei-os no lugar usando uma pistola de cola. Por fim, fiz a haste de controle apropriada e instalei-a de acordo.

Ok, a seguir vou instalar duas hastes de madeira de 8mm que servirão para prender a asa na fuselagem. Fiz os furos manualmente usando uma broca de 6 mm. As hastes devem ficar cerca de 1 cm em ambos os lados. Eu também os prendi à fuselagem com um pouco de cola quente e aqui está como eles realmente funcionam.

Usamos elásticos para prender a asa à fuselagem. Dessa forma, a asa pode ser facilmente removida e, em caso de esmagamento, os elásticos reduzirão significativamente o impacto na asa. Ao mesmo tempo, a assembléia é bastante forte.

Em seguida, vou fazer o trem de pouso. Para isso, novamente, usarei o perfil de alumínio e as rodas feitas de isopor. Eu os fiz usando a máquina CNC como mostrado anteriormente. Fiz pequenas ranhuras no perfil de alumínio para poder dobrá-lo facilmente. Veja como o trem de pouso deve realmente se parecer.

Para prender as rodas ao perfil, usarei parafusos M5 e um tubo de alumínio com 6mm de diâmetro interno. O tubo é preso ao suporte usando o parafuso e a porca M5 e, nas laterais, adicionei arruelas M5 para que a roda possa girar livremente ao redor do tubo. Com o mesmo método fiz o volante para a parte de trás do avião.

Ok, agora todos os componentes estão prontos e antes de montá-los vamos dar uma olhada na eletrônica deste projeto.

Arduino RC Airplane Electronics – Circuit Diagram


Então, como eu já disse, este avião RC é inteiramente baseado no Arduino, tanto o Transmissor quanto o Receptor são construções personalizadas baseadas na placa Arduino Pro Mini.

Já tenho tutoriais detalhados de como construir e como funcionam o transmissor e o receptor, então você pode conferir mais detalhes. Aqui vou explicar o diagrama de circuito e o princípio de funcionamento deste avião Arduino RC e como tudo precisa ser conectado.

Você pode obter os componentes necessários para este projeto nos links abaixo:
  • NRF24L01 + PA + LNA …………..…..…….
  • Arduino Pro Mini………………..……….…..
  • Servomotor ……………………………………
  • Motor sem escova …………………………………
  • ESC 30A ………………………………….…………
  • Bateria Li-Po ……………………………………

Assim, a comunicação via rádio é baseada nos módulos NRF24L01. Embora possa parecer um pouco complicado, este transmissor DIY Arduino é realmente muito simples. Possui vários controladores, os joysticks, os potenciômetros e alguns botões, e envia constantemente seus dados para o receptor. O receptor aceita esses dados sem fio através do módulo NRF24L01 e envia os comandos apropriados para os servos e o motor brushless para controlar o avião.

Controlar servos e motores brushless com Arduino também é bastante simples, portanto, todo esse conceito de avião Arduino RC eu acho que não é tão difícil de ser entendido. O motor brushless que estou usando neste projeto tem uma classificação de 1000KV e requer 30A ESC. O ESC aciona o motor e também fornece energia ao Arduino e aos servos através de seu recurso Battery Eliminator Circuit, que produz 5V. E a energia para o ESC e o motor sem escovas vem de uma bateria 3S Li-Po.

Adicionei mais um recurso a este avião, que é um LED simples que indicará se a bateria está vazia. Usando um divisor de tensão simples, baixamos os 12V provenientes da bateria Li-Po para cerca de 5V para que possamos lê-los com a entrada analógica do Arduino e assim saber quando a bateria cairá abaixo de 11V. O receptor ainda tem vários canais livres, então podemos adicionar mais recursos a este avião se quisermos, como luzes estroboscópicas, flaps, mecanismos de queda e assim por diante.

Finalizando a montagem


No entanto, vamos terminar a montagem agora. Então, conectei tudo conforme explicado no diagrama de circuito. No canal 1 está o leme, no canal 2 o profundor, nos canais 3 e 4 os ailerons e no canal 6 o LED. Colei o LED de um lado e o interruptor do outro lado.

Podemos notar aqui como o trem de pouso é fixado ao avião usando os dois parafusos no suporte do motor. Em poucas palavras, eu simplesmente inseri o motor com o suporte desta abertura superior, parafusado no lugar como mostrado anteriormente, e prendi o trem de pouso também. Ao inserir o suporte, também adicionei alguns elásticos para que eles possam segurar a bateria no lugar.

Assim, uma vez que conectei a bateria ao ESC, apertei tudo. Finalmente, usando os cabos de extensão, posso conectar facilmente os ailerons da asa ao receptor e depois prender a asa à fuselagem.

Na frente, prendi a hélice ao motor e o que resta agora é verificar o CG ou o centro de gravidade do avião.

O CG é provavelmente o fator mais importante se o avião voará bem ou voará.

O avião inicialmente era pesado na cauda, ​​então mudei a bateria para a frente e adicionei algum peso (alguns parafusos e porcas) e ficou equilibrado.

É isso, nosso avião RC baseado em Arduino está pronto e podemos sair para experimentá-lo.

Testando o avião Arduino RC


Bem, a primeira tentativa ou o vôo inaugural não foi tão legal. Principalmente depois de ver o resultado do crush.

Minha conclusão aqui foi que o avião ainda estava com a cauda pesada e parecia que o motor não tinha potência suficiente. Como não tinha outro motor ou hélice para testar, modifiquei o nariz do avião para ficar um pouco menor, movi o motor mais para a frente para ter melhor fluxo de ar e também arredondando as bordas na frente. Quanto à estrutura reforcei-a com alguns paus de madeira e perfis de alumínio que colei na zona interior da fuselagem.

Na parte inferior do compartimento da eletrônica fiz dois furos, um para sair o ar que vem da abertura frontal, e outro para tirar a antena NRF24L01 por ter alcance de batedor.

Ok, então aqui está a tentativa número dois. Mais uma vez, quase a mesma coisa, embora parecesse que agora tinha melhor fluxo de ar ou potência.

A fuselagem quebrou novamente, o que indica que esse isopor é bem fraco para esse fim. Fiz uma nova fuselagem, e dessa vez usei um pouco de fita adesiva para reforçá-la.

Tente o número três. Parecia promissor, mas o terreno que tenho para a decolagem não é nada bom. O avião começou a se mover para a direita, bateu na beira da estrada e quebrou novamente.

Eu consertei e desta vez embrulhei quase toda a fuselagem com fita adesiva e fita adesiva. Eu deveria ter feito isso muito antes, pois isso deu a força certa à fuselagem e não quebrou mesmo depois de vários outros esmagamentos.

O problema agora foi que depois de vários esmagamentos eu quebrei todas as 4 hélices que eu tinha então nesta tentativa estou usando uma hélice colada. Claro, a hélice rasgou na decolagem.

Tentei com outra hélice colada feita de duas hélices já quebradas e desta vez tive sorte e o avião finalmente decolou corretamente.

Bem, a sorte não durou muito, pois a hélice quebrou novamente no ar.

No entanto, como esta foi minha primeira experiência em pilotar um avião RC, acho que posso considerar este projeto bem-sucedido, pois consegui provar o conceito de fazer um sistema totalmente baseado em Arduino para controlar aviões RC.

Fora isso, podemos notar pelo voo que os controles vindos do Transmissor são realmente muito duros. Isso porque os joysticks não são nada bons para essa finalidade, eles possuem pequena amplitude de movimento e resposta ruim.

Para resolver isso, adicionei ao programa um recurso através do qual podemos controlar a capacidade de resposta dos controles usando o potenciômetro correto no transmissor. Além disso, adicionei uma função através da qual podemos ajustar o leme usando o potenciômetro esquerdo.

Código do avião RC do Arduino


Então, finalmente, vamos dar uma olhada no código Arduino deste avião RC baseado em Arduino e encerrar este projeto. O código é exatamente o mesmo explicado no tutorial anterior, para controlar servos e motores brushless usando os módulos transceptores NRF24L01.

Aqui está o código completo para este projeto de avião Arduino RC:
/*
   Arduino RC Airplane
   == Receiver Code =
  by Dejan, www.HowToMechatronics.com
  Library: TMRh20/RF24, https://github.com/tmrh20/RF24/
*/
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
#include <Servo.h>

#define led 9

RF24 radio(3, 2);   // nRF24L01 (CE, CSN)
const byte address[6] = "00001";
unsigned long lastReceiveTime = 0;
unsigned long currentTime = 0;

Servo throttle;  // create servo object to control the ESC
Servo rudderServo;
Servo elevatorServo;
Servo aileron1Servo;
Servo aileron2Servo;


int throttleValue, rudderValue, elevatorValue, aileron1Value, aileron2Value, travelAdjust;
// Max size of this struct is 32 bytes - NRF24L01 buffer limit
struct Data_Package {
  byte j1PotX;
  byte j1PotY;
  byte j1Button;
  byte j2PotX;
  byte j2PotY;
  byte j2Button;
  byte pot1;
  byte pot2;
  byte tSwitch1;
  byte tSwitch2;
  byte button1;
  byte button2;
  byte button3;
  byte button4;
};
Data_Package data; //Create a variable with the above structure
void setup() {
  Serial.begin(9600);
  radio.begin();
  radio.openReadingPipe(0, address);
  radio.setAutoAck(false);
  radio.setDataRate(RF24_250KBPS);
  radio.setPALevel(RF24_PA_MAX);
  radio.startListening(); //  Set the module as receiver
  resetData();
  throttle.attach(10);
  rudderServo.attach(4);   // CH1
  elevatorServo.attach(5); // CH2
  aileron1Servo.attach(6); // CH3
  aileron2Servo.attach(7); // CH4
  pinMode(led, OUTPUT);    // CH6
}
void loop() {
  // Check whether we keep receving data, or we have a connection between the two modules
  currentTime = millis();
  if ( currentTime - lastReceiveTime > 1000 ) { // If current time is more then 1 second since we have recived the last data, that means we have lost connection
    resetData(); // If connection is lost, reset the data. It prevents unwanted behavior, for example if a drone jas a throttle up, if we lose connection it can keep flying away if we dont reset the function
  }
  // Check whether there is data to be received
  if (radio.available()) {
    radio.read(&data, sizeof(Data_Package)); // Read the whole data and store it into the 'data' structure
    lastReceiveTime = millis(); // At this moment we have received the data
  }

  // Controlling throttle - brushless motor with ESC
  throttleValue = constrain(data.j1PotY, 80, 255); // Joysticks stays in middle. So we only need values the upper values from 130 to 255
  throttleValue = map(throttleValue, 80, 255, 1000, 2000);
  throttle.writeMicroseconds(throttleValue);

  // Adjusting the servos responsiveness
  travelAdjust = map(data.pot2, 0, 255, 0, 25);  
  
  // Elevator control
  elevatorValue = map(data.j2PotY, 0, 255, (85 - travelAdjust), (35 + travelAdjust));
  elevatorServo.write(elevatorValue);
  
  // Ailerons control
  aileron1Value = map(data.j2PotX, 0, 255, (10 + travelAdjust), (80 - travelAdjust));
  aileron1Servo.write(aileron1Value);
  aileron2Servo.write(aileron1Value);

  // Rudder trimming function
  if (data.j1PotX > 127) {
    rudderValue = data.pot1 + (data.j1PotX - 127);
  }
  if (data.j1PotX < 127) {
    rudderValue = data.pot1 - (127 - data.j1PotX);
  }
  // Rudder control
  rudderValue = map(rudderValue, 0, 255, (10 + travelAdjust), (90 - travelAdjust));
  rudderServo.write(rudderValue);

  // Monitor the battery voltage
  int sensorValue = analogRead(A3);
  float voltage = sensorValue * (5.00 / 1023.00) * 3; // Convert the reading values from 5v to suitable 12V i
  // If voltage is below 11V turn on the LED
  if (voltage < 11) {
    digitalWrite(led, HIGH);
  }
  else {
    digitalWrite(led, LOW);
  }
}
void resetData() {
  // Reset the values when there is no radio connection - Set initial default values
  data.j1PotX = 127;
  data.j1PotY = 80; // Motors stops // the central point of the joystick is not starting point for the throttle, its at value of 80 instead of 127
  data.j2PotX = 127;
  data.j2PotY = 127;
  data.j1Button = 1;
  data.j2Button = 1;
  data.pot1 = 1;
  data.pot2 = 1;
  data.tSwitch1 = 1;
  data.tSwitch2 = 1;
  data.button1 = 1;
  data.button2 = 1;
  data.button3 = 1;
  data.button4 = 1;
}Code language: Arduino (arduino)

Descrição: I will just quickly explain the main functions of the code and for all other details you can check the previous tutorial. So, after receiving the data coming from the transmitter, we use the Joystick1 Y axis value for controlling the throttle of the airplane. We convert the values from 80 to 255 coming from the transmitter into values from 1000 to 2000 which are used for controlling the brushless motor.

For controlling the elevator, we use the Joystick2 Y axis value which we convert to values from 85 to 35. These values directly set the position of the servo motor in degrees. Right next to them we can note that we have the travelAdjust variables, which value depends on the position of the right potentiometer. We actually use that value to decrease the position or the movement of the servos although the joysticks will go to their maximum position.

The same principle is applied for controlling the ailerons and the rudder.  Additionally, we use the data from the left potentiometer to adjust the neutral point of the rudder.

Lastly, using the analogRead() function and some math we control the battery voltage indicator LED.

So that’s it. I would like to hear your thoughts about this project in the comments section below, especially from you who have experience with building and flying RC airplanes. For those who are beginners and thinking of getting into this, I would suggest to check the FliteTest YouTube channel because it’s an amazing resource for learning about this RC world. I will put a link to it in the description.

I hope you enjoyed this project and learned something new. Feel free to ask any question in the comments section below and don’t forget to check my Arduino Projects Collection.

Processo de manufatura

  1. DIY LUMAZOID Arduino Music Visualiser
  2. Faça uma máquina de escrever trabalhos de casa DIY em casa
  3. Console de edição DIY Photoshop usando Arduino Nano RP 2040
  4. Faça você mesmo voltímetro usando Arduino e Smartphone
  5. Faça você mesmo skate de realidade virtual
  6. Osciloscópio DIY 10Hz-50kHz em tela LCD 128x64
  7. Faça você mesmo Arduino RADIONICS Tratamento MMachine
  8. Simulador de corrida de movimento 2D DIY
  9. Braço Robótico Programável Local e Remoto
  10. Ideia DIY com RFID