Índice:

O guia que eu gostaria de ter sobre a construção de um drone Arduino: 9 etapas
O guia que eu gostaria de ter sobre a construção de um drone Arduino: 9 etapas

Vídeo: O guia que eu gostaria de ter sobre a construção de um drone Arduino: 9 etapas

Vídeo: O guia que eu gostaria de ter sobre a construção de um drone Arduino: 9 etapas
Vídeo: Conheça os sensores do Arduino #ManualMaker Aula 6, Vídeo 1 2024, Dezembro
Anonim
O guia que eu gostaria de ter sobre a construção de um drone Arduino
O guia que eu gostaria de ter sobre a construção de um drone Arduino

Este documento é um tipo de documentação de barra “Como guiar” que passa pelo processo que me levou a entender os conceitos para atingir meu objetivo de construir um quadricóptero simples que eu pudesse controlar a partir do meu telefone celular.

Para fazer este projeto, eu queria ter uma ideia do que realmente é um drone, no meu caso um quadricóptero, então comecei a fazer algumas pesquisas. Assisti muitos vídeos no YouTube, li um monte de artigos e páginas insrutíveis e foi isso que consegui.

Basicamente, você pode dividir um drone em duas partes. Eu o chamei de “Físico” e “Controlador”. O Físico é essencialmente tudo o que tem a ver com a mecânica que faz o drone voar. São coisas como o motor, a estrutura, a bateria, as hélices e todas as outras coisas que fisicamente dão ao drone a capacidade de voar.

O controlador é essencialmente o controlador de vôo. O que controla o físico para que o drone possa voar como uma unidade inteira sem cair. Essencialmente, o microcontrolador, o software nele e os sensores que o ajudam a triangular seus rolamentos. Então, para ter um drone, eu precisava de um controlador e um monte de peças físicas para o controlador "controlar".

Suprimentos

Orçamento do projeto: $ 250

Prazo: 2 semanas

Coisas para comprar:

  • Quadro Físico $ 20
  • Lâminas $ 0 (vem com moldura)
  • Bateria $ 25
  • ESC (controladores eletrônicos de velocidade) $ 0 (vem com motores)
  • Motores $ 70

Controlador de vôo

  • Arduino nano $ 20
  • Cabo USB Arduino $ 2
  • Módulo Bluetooth (HC-05) $ 8
  • LED de 3 mm e resistores e fios de 330 Ohm $ 13
  • GY-87 (acelerômetro, giroscópio) $ 5
  • Placa de protótipo $ 10
  • Cabeçalhos masculinos e femininos $ 5

De outros

  • Kit de solda $ 10
  • Multímetro $ 20

Eu queria aproveitar a construção deste projeto como um engenheiro, então comprei algumas outras coisas que não precisei.

Total: $ 208

Etapa 1: Minha experiência inicial

Depois de comprar todos os meus componentes, juntei tudo e tentei lançar o drone, usando o Multiwii (o software de acesso que grande parte da comunidade de drones DIY usa), mas rapidamente percebi que não entendi direito o que eu estava fazendo porque havia muitos erros e eu não tinha ideia de como corrigi-los.

Depois disso, decidi desmontar o drone e entender cada componente peça por peça e reconstruí-lo de forma que pudesse entender completamente tudo o que estava acontecendo.

Nas seções a seguir, examinarei o processo de montagem do quebra-cabeça. Antes disso, vamos obter uma visão geral rápida.

Fisica

Para o físico, devemos ter: o quadro, as hélices, a bateria e os escs. Isso seria bastante fácil de juntar. Para entender essas partes e quais você deve obter, visite este link. Ele explica o que você precisa saber sobre a compra de cada uma das peças que listei. Veja também este vídeo no Youtube. Isso o ajudará se você não conseguir juntar as peças.

Etapa 2: dicas para remendar e depurar as peças físicas

Dicas para remendar e depurar as peças físicas
Dicas para remendar e depurar as peças físicas

Hélices e motores

  • Para verificar se suas hélices estão na orientação correta (invertidas ou não), ao girá-las na direção indicada pelos motores (a maioria dos motores tem setas mostrando como devem girar), você deve sentir uma brisa sob as hélices e não acima.
  • Os parafusos nas hélices opostas devem ser da mesma cor.
  • A cor das hélices adjacentes deve ser a mesma.
  • Certifique-se também de que organizou os motores de forma que eles girem exatamente como na imagem acima.
  • Se você está tentando inverter a direção de um motor, apenas troque os fios nas extremidades opostas. Isso inverterá a direção do motor.

Bateria e energia

  • Se por algum motivo as coisas estão disparando e você não consegue descobrir o porquê, é mais provável que você tenha trocados positivos e negativos.
  • Se você não tiver certeza de quando carregar as baterias, pode usar um voltímetro para verificar a tensão. Se estiver abaixo das especificações da bateria, digamos, então ela precisa ser carregada. Confira este link sobre como carregar suas baterias.
  • A maioria das baterias LIPO não vem com carregadores de bateria. Você os compra separadamente.

Etapa 3: o controlador Arduino

O controlador Arduino
O controlador Arduino

Esta é sem dúvida a parte mais difícil de todo o projeto. É muito fácil explodir componentes e a depuração pode ser extremamente frustrante se você não souber o que está fazendo. Também neste projeto controlei meu drone usando bluetooth e um app que vou mostrar a vocês como construir. Isso tornou o projeto particularmente mais difícil porque 99% dos tutoriais por aí usam controladores de rádio (isso não é um fato rs), mas não se preocupe, já passei pela frustração por você.

Dicas antes de embarcar nesta jornada

  • Use uma placa de ensaio antes de finalizar seu dispositivo em um PCB. Isso permite que você faça alterações facilmente.
  • Se você testou um componente extensivamente e ele não está funcionando, provavelmente não está funcionando!
  • Observe as tensões que um dispositivo pode suportar antes de conectá-lo!

    • O Arduino pode suportar de 6 a 20 V, mas tente limitá-lo a 12 V para não explodi-lo. Você pode ler mais sobre suas especificações aqui.
    • O HC-05 pode suportar até 5 V, mas alguns pinos funcionam a 3,3 V, portanto, fique atento a isso. Falaremos sobre isso mais tarde.
    • O IMU (GY-521, MPU-6050) também funciona a 5V.
  • Estaremos usando o RemoteXY para construir nosso aplicativo. Se você deseja construí-lo em um dispositivo iOS, você precisa usar um módulo bluetooth diferente (o HM-10). Você pode aprender mais sobre isso no site do RemoteXY.

Espero que você tenha lido as dicas. Agora vamos testar cada componente que fará parte do controlador separadamente.

Etapa 4: O MPU-6050

O MPU-6050
O MPU-6050

Este dispositivo tem um giroscópio e um acelerômetro, portanto, basicamente, ele informa a aceleração em uma direção (X, Y, Z) e a aceleração angular ao longo dessas direções.

Para testar isso, podemos usar o tutorial sobre isso, podemos usar este tutorial no site do Arduino. Se funcionar, você deve obter um fluxo de valores do acelerômetro e do giroscópio que mudam conforme você inclina, gira e acelera a configuração. Além disso, tente ajustar e manipular o código para saber o que está acontecendo.

Etapa 5: O Módulo Bluetooth HC-05

O Módulo Bluetooth HC-05
O Módulo Bluetooth HC-05
O Módulo Bluetooth HC-05
O Módulo Bluetooth HC-05
O Módulo Bluetooth HC-05
O Módulo Bluetooth HC-05

Você não precisa fazer esta parte, mas é importante poder ir para o modo AT (modo de configurações), pois provavelmente você terá que alterar uma das configurações do módulo. Esta foi uma das partes mais frustrantes deste projeto. Pesquisei muito para descobrir como colocar meu módulo no modo AT, porque meu dispositivo não estava respondendo aos meus comandos. Levei 2 dias para concluir que meu módulo estava quebrado. Pedi outro e funcionou. Confira este tutorial sobre como entrar no modo AT.

O HC-05 vem em diferentes tipos, alguns com botões e outros sem e todos os tipos de variáveis de design. Um que é constante, porém, é que todos eles têm um "pino 34". Confira este tutorial.

Coisas que você deveria saber

  • Para entrar no modo AT, basta segurar 5 V no pino 34 do módulo bluetooth antes de conectar a alimentação a ele.
  • Conecte um divisor de potencial ao pino RX do módulo, pois ele funciona em 3,3V. Você ainda pode usá-lo em 5 V, mas ele pode fritar o pino se algo der errado.
  • Se você usar o Pin 34 (em vez do botão ou de alguma outra forma que você encontrou online), o módulo definirá a taxa de transmissão do bluetooth para 38400. É por isso que no link do tutorial acima há uma linha no código que diz:

BTSerial.begin (38400); // Velocidade padrão do HC-05 no comando AT mais

Se o módulo ainda não está respondendo com "OK", tente trocar os pinos tx e rx. Deveria ser:

Bluetooth => Arduino

RXD => TX1

TDX => RX0

Se isso ainda não funcionar, escolha alterar os pinos no código para outros pinos do Arduino. Teste, se não funcionar, troque os pinos tx e rx e teste novamente

SoftwareSerial BTSerial (10, 11); // RX | TX

Mude a linha acima. Você pode tentar RX = 2, TX = 3 ou qualquer outra combinação válida. Você pode ver os números dos pinos do Arduino na imagem acima.

Etapa 6: Conectando as peças

Conectando as peças
Conectando as peças

Agora que temos certeza de que tudo funciona, é hora de começar a colocá-los juntos. Você pode conectar as peças exatamente como mostrado no circuito. Peguei isso do Electronoobs. Ele realmente me ajudou com este projeto. Confira sua versão do projeto aqui. Se você está seguindo este tutorial, não precisa se preocupar com as conexões do receptor: input_Yaw, input_Pitch, etc. Tudo isso será tratado com bluetooth. Além disso, conecte o bluetooth da mesma forma que fizemos na seção anterior. Meus pinos tx e rx estavam me dando um pouco de dificuldade, então usei o Arduino:

RX como 2 e TX como 3, em vez dos pinos normais. A seguir, iremos escrever um aplicativo simples que continuaremos a melhorar até termos o produto final.

Etapa 7: A beleza do RemoteXY

A beleza do RemoteXY
A beleza do RemoteXY

Por muito tempo, pensei em uma maneira fácil de construir um aplicativo remoto utilizável que me permitisse controlar o drone. A maioria das pessoas usa o MIT App Inventor, mas a IU não é tão bonita quanto eu gostaria e também não sou um fã de programação pictórica. Eu poderia ter projetado usando o Android Studio, mas seria muito trabalhoso. Fiquei extremamente emocionado quando encontrei um tutorial usando RemoteXY. Aqui está o link para o site. É extremamente fácil de usar e a documentação é muito boa. Vamos criar uma IU simples para nosso drone. Você pode personalizar o seu da maneira que quiser. Apenas certifique-se de saber o que está fazendo. Siga as instruções aqui.

Depois de fazer isso, editaremos o código para que possamos alterar o acelerador em nosso helicóptero. Adicione as linhas que contêm / **** Coisas que você deve fazer e por quê *** / ao seu código.

Se não estiver compilando, certifique-se de fazer o download da biblioteca. Abra também um esboço de exemplo e compare o que ele tem e o que o seu não tem.

//////////////////////////////////////////////////// RemoteXY inclui biblioteca // /////////////////////////////////////////////

// RemoteXY seleciona o modo de conexão e inclui a biblioteca

#define REMOTEXY_MODE_HC05_SOFTSERIAL

#include #include #include

// Configurações de conexão RemoteXY

#define REMOTEXY_SERIAL_RX 2 #define REMOTEXY_SERIAL_TX 3 #define REMOTEXY_SERIAL_SPEED 9600

// Hélices

Servo L_F_prop; Servo L_B_prop; Servo R_F_prop; Servo R_B_prop;

// RemoteXY configurate

#pragma pack (push, 1) uint8_t RemoteXY_CONF = {255, 3, 0, 0, 0, 61, 0, 8, 13, 0, 5, 0, 49, 15, 43, 43, 2, 26, 31, 4, 0, 12, 11, 8, 47, 2, 26, 129, 0, 11, 8, 11, 3, 17, 84, 104, 114, 111, 116, 116, 108, 101, 0, 129, 0, 66, 10, 7, 3, 17, 80, 105, 116, 99, 104, 0, 129, 0, 41, 34, 6, 3, 17, 82, 111, 108, 108, 0}; // esta estrutura define todas as variáveis de sua interface de controle struct {

// variável de entrada

int8_t Joystick_x; // -100..100 posição do joystick da coordenada x int8_t Joystick_y; // -100..100 posição do joystick da coordenada y int8_t ThrottleSlider; // 0..100 posição do controle deslizante

// outra variável

uint8_t connect_flag; // = 1 se o fio estiver conectado, senão = 0

} RemoteXY;

#pragma pack (pop)

/////////////////////////////////////////////

// END RemoteXY include // ///////////////////////////////////////////// /

/ ********** Adicione esta linha para manter o valor do acelerador ************** /

int input_THROTTLE;

void setup () {

RemoteXY_Init ();

/ ********** Anexe os motores aos pinos Altere os valores para se adequar ao seu ************** /

L_F_prop.attach (4); // motor dianteiro esquerdo

L_B_prop.attach (5); // motor traseiro esquerdo R_F_prop.attach (7); // motor dianteiro direito R_B_prop.attach (6); // motor traseiro direito

/ ************* Impedir que esc entre no modo de programação ********************* /

L_F_prop.writeMicroseconds (1000); L_B_prop.writeMicroseconds (1000); R_F_prop.writeMicroseconds (1000); R_B_prop.writeMicroseconds (1000); atraso (1000);

}

void loop () {

RemoteXY_Handler ();

/ ****** Mapeie o valor do acelerador que você obtém do aplicativo para 1000 e 2000, que são os valores que a maioria dos ESCs opera em ********* /

input_THROTTLE = map (RemoteXY. ThrottleSlider, 0, 100, 1000, 2000);

L_F_prop.writeMicroseconds (input_THROTTLE);

L_B_prop.writeMicroseconds (input_THROTTLE); R_F_prop.writeMicroseconds (input_THROTTLE); R_B_prop.writeMicroseconds (input_THROTTLE); }

Etapa 8: Teste

Se você fez tudo certo, poderá testar seu helicóptero deslizando o acelerador para cima e para baixo. Certifique-se de fazer isso do lado de fora. Também não mantenha as hélices ligadas porque isso fará com que o helicóptero salte. Ainda não escrevemos o código para equilibrá-lo, então seria uma MAL IDEIA TESTAR ISSO COM AS HÉLICAS LIGADAS! Eu só fiz isso porque lmao.

A demonstração é apenas para mostrar que devemos ser capazes de controlar o acelerador a partir do aplicativo. Você notará que os motores estão gaguejando. Isso ocorre porque os ESCs não foram calibrados. Para fazer isso, dê uma olhada nas instruções nesta página do Github. Leia as instruções, abra o arquivo ESC-Calibration.ino e siga essas instruções. Se você quiser entender o que está acontecendo, confira este tutorial da Electronoobs.

Enquanto estiver executando o programa, certifique-se de amarrar o drone com cordas, pois ele irá a toda velocidade. Certifique-se também de que as hélices não estão ligadas. Só deixei o meu ligado porque estou meio maluco. NÃO DEIXE AS HÉLICAS LIGADAS !!! Esta demonstração é mostrada no segundo vídeo.

Etapa 9: Estou trabalhando no Código. Terminará o instrutível em alguns dias

Só queria acrescentar que, se você está usando este tutorial e esperando por mim, ainda estou trabalhando nisso. São apenas outras coisas na minha vida nas quais estou trabalhando, mas não se preocupe, irei postar em breve. Digamos que o mais tardar até 10 de agosto de 2019.

Atualização de 10 de agosto: Não queria deixá-lo esperando. Infelizmente, não tive tempo para trabalhar no projeto na semana passada. Tenho estado muito ocupado com outras coisas. Eu não quero enganar você. Esperançosamente, concluirei o instrutível em um futuro próximo. Se você tiver alguma dúvida ou precisar de ajuda, pode adicionar um comentário abaixo e eu entrarei em contato com você.

Recomendado: