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

Hovercraft RC baseado em Arduino DIY


Neste tutorial vamos aprender como construir um Hovercraft RC baseado em Arduino. Mostrarei todo o processo de construção, desde o design e impressão 3D das peças do hovercraft, incluindo as hélices, até a conexão dos componentes eletrônicos e a programação do Arduino.

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

Visão geral


Para controlar o hovercraft, usei meu transmissor RC baseado em Arduino DIY que fiz em um dos meus vídeos anteriores. Eu ajustei o joystick direito para controlar o servo motor para posicionar os lemes na parte traseira do motor de empuxo, ajustei um dos potenciômetros para controlar a hélice de elevação que está realmente conectada em um motor DC sem escovas e ajustei o joystick esquerdo para controlar a propulsão. Então, vamos dar uma olhada no que é preciso para construir este hovercraft RC.

Modelo 3D de hovercraft


Para começar, projetei o hovercraft usando um software de modelagem 3D.

Você pode encontrar e baixar este modelo 3D, bem como explorá-lo em seu navegador no Thangs.

Baixe o modelo 3D de montagem em Thangs.

Arquivos STL para impressão 3D:

Princípio de funcionamento do hovercraft


O princípio básico de funcionamento de um hovercraft é que a embarcação é levantada por uma almofada de ar. A hélice central sopra ar por baixo da embarcação, que infla uma saia feita de material macio.

Quando a pressão do ar na saia é alta o suficiente, a embarcação é levantada. O ar constantemente fornecido escapa do meio da embarcação, entre a saia e o solo, o que cria sustentação adicional e também reduz o atrito entre o hovercraft e o solo.

Uma vez levantado, usando a segunda hélice é gerado um impulso que move o hovercraft para a frente.

Na parte de trás da hélice de empuxo há um conjunto simples de lemes que são utilizados para dirigir o hovercraft.

Impressão 3D


No entanto, assim que terminei o design, comecei com a impressão 3D das peças.

O casco do hovercraft é a maior parte para imprimir e eu projetei especificamente para caber na minha impressora 3D Creality CR-10, que tem uma cama de impressão de 30x30cm.

Aqui está um link para esta impressora 3D, caso você queira conferir.

Após a impressão, é hora de fazer uma limpeza. O corpo principal do hovercraft ou o cockpit foi a impressão mais longa, que levou cerca de 18 horas para ser impressa. Por causa do design curvo, e porque eu queria ser uma única estampa, havia muito material de suporte usado para essa estampa.

No entanto, foi muito fácil removê-lo e a peça final ficou perfeita. O casco do hovercraft foi impresso de cabeça para baixo e havia apenas uma pequena quantidade de material de suporte a ser removido. Na verdade, tive que fazer alguns ajustes nesta impressão e cortar um pouco de material do alojamento central do soprador para que o suporte da saia encaixasse corretamente.

Já atualizei o modelo 3D para não ter esse problema.

Algumas das áreas redondas das peças estavam um pouco ásperas, então usei um simples papel de envio para alisá-las.

As hélices não precisaram de limpeza e funcionaram muito bem saindo direto da impressora 3D.

Pintando o hovercraft


Ok, o próximo passo é pintar as peças impressas em 3D. Eu não usei nenhum primer antes, mas apliquei diretamente uma tinta acrílica em forma de tinta spray.

Eu usei uma cor de sobrancelha chocolate para a primeira camada. Para algumas das peças menores, que na verdade são apenas peças de decoração, usei uma cor marrom mais clara.

Para deixar o hovercraft um pouco mais legal, depois que a primeira demão secou, ​​continuei adicionando mais duas cores às peças. Para isso, fiz alguns padrões aleatórios em uma simples folha de papel e usei-os para fazer listras e manchas em cores diferentes. Eu usei marrom mais claro e preto para esse fim.

Montagem do hovercraft Arduino RC


Eu realmente gosto de como as peças ficaram, então, uma vez que elas secaram, continuei a montá-las.

Comecei instalando o servo motor que controla os lemes na carcaça do soprador de empuxo. Eu prendi o servo usando dois parafusos e porcas M2.

Em seguida é o motor sem escova. O modelo específico que tenho é o D2830 que tem um diâmetro de 28mm e 30mm de comprimento e, claro, a carcaça é projetada especificamente para encaixar neste motor.

Aqui ao inserir o motor, primeiro tive que passar os fios pelas aberturas. É um pouco apertado, mas ainda dá para passar por eles. Então, na parte de trás, usando parafusos M3, prendi o motor na carcaça.

Em seguida, posso mesclar a carcaça de propulsão com o corpo principal do hovercraft. Esta parte possui uma abertura para a passagem dos fios do servo e do motor BLDC.

Usando quatro parafusos M3, prendi-os firmemente juntos.

Assim que terminei, continuei instalando o segundo motor sem escovas no casco do hovercraft. Aqui novamente eu usei o mesmo método. Primeiro, passei os fios pelas aberturas e, na parte de trás, prendi o motor usando quatro parafusos M3.

Diagrama de circuito


Em seguida vem a eletrônica. Os componentes eletrônicos serão colocados entre o casco e o corpo principal do hovercraft. Mas antes de fazermos isso, vamos dar uma olhada no diagrama do circuito e ver como tudo precisa ser conectado.

Então, o cérebro deste hovercraft é uma placa Arduino. Com o Arduino podemos controlar facilmente o servo assim como os dois motores brushless usando os dois controladores eletrônicos de velocidade ou ESCs. Para alimentar os motores BLDC, usarei a bateria 3S Li-Po que fornece cerca de 11V, e para alimentar o Arduino, podemos usar os 5V regulados que os ESCs fornecem através do recurso Battery Eliminator Circuit.

Para a comunicação sem fio usarei o módulo transceptor NRF24L01 que se usado com uma antena amplificada pode ter um alcance estável de até 700 metros em espaço aberto. O transmissor RC que vou usar para controlar o hovercraft, é aquele que eu construi em um dos meus tutoriais anteriores, para que você possa conferir se precisar de mais detalhes sobre ele. Há também tutoriais detalhados sobre o módulo NRF24l01, e como usar motores brushless usando Arduino. No entanto, o princípio básico de funcionamento é que o transmissor envie os dados dos Joysticks ou potenciômetros ao receptor que controla a velocidade dos motores brushless e a posição do servo.

Há mais um pequeno detalhe neste diagrama de circuito, e esse é o monitor da bateria. Adicionei um divisor de tensão simples feito de dois resistores, que é conectado diretamente à bateria, e sua saída vai para a entrada analógica do Arduino. O divisor de tensão reduz os 11 volts para cerca de 4 volts, o que é aceitável pelos pinos de 5V do Arduino. Com isso, podemos monitorar a tensão da bateria e configurar um LED para acender quando, por exemplo, a tensão da bateria cair abaixo de 11 volts.

Você pode obter os componentes necessários para este tutorial do Arduino nos links abaixo:
  • NRF24L01 Módulo Transceptor….
  • NRF24L01 + PA + LNA ………….….
  • Motor sem escova …………………….……
  • ESC 30A ………………………………….…..
  • Bateria Li-Po …………………………………..
  • XT60 2 Feminino para 1 Masculino ………….
  • Conector XT60 ……………………………
  • Servomotor …………………………………..
  • Placa Arduino ……………………………

Então, comecei a conectar os componentes conforme explicado. Para conectar os dois ESCs a uma única bateria usei um divisor de conector de bateria paralelo, tipo XT60.

Para adicionar um interruptor ao projeto, usei outro conector XT60, no qual cortei um fio e soldei um interruptor lá. Então, um lado vai para o cabo divisor Y e o outro lado para a bateria.

Em seguida, coloquei os ESCs no corpo principal e os prendi entre ele e o casco do hovercraft. Em seguida, usando quatro parafusos M3, prendi as duas partes juntas. A partir da abertura superior do corpo, inseri a bateria na área do cockpit.

Em seguida, precisamos conectar os componentes ao Arduino e para isso adicionei dois conectores de pinos ao Arduino que servirão como pinos GND e 5V.

Assim, uma vez que conectei tudo ao Arduino, passei a antena NRF24L01, o LED indicador e a chave liga/desliga, pela tampa superior do cockpit.

Então eu só precisava espremer tudo no cockpit. Foi um pouco apertado aqui porque eu usei o Arduino UNO, e provavelmente eu deveria ter usado o Arduino Nano.

No entanto, consegui encaixar tudo, também prendi uma pequena parte de decoração na tampa e depois apenas prendi no corpo do cockpit.

Continuei com a instalação do sistema de direção. Primeiro, conectei um pequeno link ao chifre do servo usando um parafuso M2 e uma porca. Em seguida, inseri o primeiro leme no lugar e o prendi à caixa de empuxo usando um fio de metal de 2 mm que passa pelo corpo e para que o leme possa girar em torno dele. Da mesma forma, prendi o segundo leme.

Este leme possui um slot adicional para que possamos conectá-lo ao link inserido anteriormente no servo. Novamente, usei parafuso e porca M2 para prendê-los. E, finalmente, conectei os dois lemes entre si usando outro link e com isso o sistema de direção está completo.

Em seguida, vou anexar esta pequena peça de decoração na lateral do hovercraft. Usando uma furadeira, fiz um furo e depois prendi a peça no casco usando um único parafuso. Coloquei essas peças em ambos os lados e acho que elas se encaixam muito bem na aparência geral do hovercraft.

Ok, em seguida continuei fazendo a saia para este hovercraft. Você pode notar aqui que o suporte da saia tem furos ao redor e é para prendê-lo ao casco.

Existem também ranhuras para a colocação de porcas e, dessa forma, poderemos fixar facilmente o suporte da saia ao casco usando parafusos M3. Depois de prender todas as nozes no lugar, continuei fazendo a saia para a qual usei um simples saco plástico de lata de lixo.

Então, primeiro apliquei uma cola AC na área central do suporte e colei no saco plástico. Então eu desloquei o perímetro do suporte em cerca de 6cm. Marquei-o em vários pontos e, em seguida, conectei-os.

Usando um estilete, cortei o saco plástico no tamanho adequado. Então eu virei a saia e adicionei algum suporte adicional à bolsa onde a colamos anteriormente usando a cola AC.

Em seguida, a parte externa da bolsa precisa ser colada na parte superior do suporte. Mais uma vez, usei cola AC para esse fim e prendi cuidadosamente o saco plástico nele.

Uma vez feito isso, veja como a saia deve ficar.

Em seguida, fiz furos no saco plástico por onde os parafusos deveriam passar. O suporte da saia é apenas 1 mm menor que o casco do hovercraft, então em combinação com o saco plástico ele se encaixa perfeitamente no casco. Para prender a saia ao casco, simplesmente prendi os parafusos M3 em todo o perímetro.

Há mais uma coisa a ser feita na saia e é cortar a área central do saco plástico.

Então, com esta metade do ar vai inflar diretamente a saia e então ela vai sair por essa abertura, criando uma bolha de ar adicional no meio.

Por fim, o que falta fazer é prender as hélices aos motores brushless. Para isso, estou usando a pinça que vem com o motor brushless. É uma maneira muito simples e eficaz de prender a hélice ao eixo do motor.

No entanto, perdi a pinça do meu outro motor, então tive que imprimir uma versão diferente da hélice para encaixar diretamente no eixo do motor, que é de 3,15 mm. A impressão realmente ficou muito boa, encaixou e prendeu perfeitamente ao motor sem usar cola.

E é isso, nosso hovercraft controlado por rádio está finalmente pronto.

No entanto, o que resta neste vídeo é dar uma olhada no código do Arduino e como o programa funciona.

Código de hovercraft do Arduino RC


Aqui está o código para este projeto DIY RC Hovercraft baseado em Arduino:
/*
         Arduino based RC Hovercraft
   == Receiver Code - ESC and Servo Control =
  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 10

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

Servo esc1;  // create servo object to control the ESC
Servo esc2;
Servo servo1;

int esc1Value, esc2Value, servo1Value;
// 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_LOW);
  radio.startListening(); //  Set the module as receiver
  resetData();
  esc1.attach(7);
  esc2.attach(6);
  servo1.attach(5);
  pinMode(led, OUTPUT);
}
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 servos
  servo1Value = map(data.j2PotX, 0, 255, 0, 50);
  servo1.write(servo1Value);

  // Controlling brushless motor with ESC
  // Lift propeller
  esc1Value = map(data.pot1, 0, 255, 1000, 2000); // Map the receiving value form 0 to 255 to 0 1000 to 2000, values used for controlling ESCs
  esc1.writeMicroseconds(esc1Value); // Send the PWM control singal to the ESC
  
  // Thrust propeller
  esc2Value = constrain(data.j1PotY, 130, 255); // Joysticks stays in middle. So we only need values the upper values from 130 to 255
  esc2Value = map(esc2Value, 130, 255, 1000, 2000);
  esc2.writeMicroseconds(esc2Value);

  // Monitor the battery voltage
  int sensorValue = analogRead(A0);
  float voltage = sensorValue * (5.00 / 1023.00) * 3; // Convert the reading values from 5v to suitable 12V i
  Serial.println(voltage);
  // 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 = 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: Então, primeiro precisamos incluir a biblioteca RF24 para comunicação de rádio, bem como a biblioteca servo para controlar os motores servo e sem escova. Em seguida, precisamos definir o rádio e os objetos servo, algumas variáveis ​​necessárias para o programa abaixo, bem como a estrutura de variáveis ​​que são usadas para armazenar os dados de entrada do meu DIY RC Transmitter. Para mais detalhes de como essa comunicação funciona, sugiro que verifique meu tutorial específico para isso.

Na seção de configuração, precisamos inicializar a comunicação de rádio, bem como definir os pinos aos quais o servo e os ESCs estão conectados.

Na seção de loop, lemos os dados de entrada do transmissor e usamos esses valores para controlar o servo e os motores brushless. Assim, os dados de entrada do joystick que variam de 0 a 255 são convertidos em valores de 0 a 50 e usamos esses valores para controlar a posição do servo.

Com o mesmo método controlamos os motores brushless usando os ESCs. Os dados de entrada que vão de 0 a 255 são convertidos em valores de 1000 a 2000 e usando a função wirteMicroseconds() enviamos esses dados para o ESC como um sinal de controle.

Para monitorar a tensão da bateria, lemos a entrada analógica proveniente do divisor de tensão e com algumas matemáticas simples convertemos os valores de entrada em valor real da tensão da bateria. Se a tensão da bateria cair abaixo de 11V, simplesmente acendemos o LED indicador.

E é isso. Caso você precise de mais alguns detalhes, você pode conferir os outros tutoriais sugeridos e assim você poderá entender completamente como tudo funciona.

Espero que tenham gostado deste tutorial e aprendido algo novo. Sinta-se à vontade para fazer qualquer pergunta na seção de comentários abaixo e confira minha Coleção de projetos do Arduino.

Processo de manufatura

  1. DIY LUMAZOID Arduino Music Visualiser
  2. Faça você mesmo voltímetro usando Arduino e Smartphone
  3. Pixie:Um relógio de pulso NeoPixel baseado em Arduino
  4. Faça você mesmo skate de realidade virtual
  5. Arduino e autômatos celulares baseados em OLED
  6. Faça você mesmo Arduino RADIONICS Tratamento MMachine
  7. Sistema de atendimento baseado em Arduino e planilha do Google
  8. Simulador de corrida de movimento 2D DIY
  9. Monitor de energia inteligente baseado em Arduino
  10. Sistema de segurança baseado em Arduino