Tanque autônomo no Arduino. Como fazer um tanque controlado por rádio: um espião com controle remoto e câmera Como tudo começou

tanque arduino com controle bluetoothé um ótimo exemplo de como facilmente e sem conhecimento especial você pode transformar um tanque comum controlado por rádio em um brinquedo legal controlado por um dispositivo Android. Além disso, você nem precisa editar o código, tudo será feito por um software especializado. Você pode ter lido meu artigo anterior sobre como converter um modelo de carro controlado por rádio em controle. Com um tanque, tudo é quase igual, só que ele ainda pode girar a torre e mudar o ângulo de elevação do cano.

Para começar, apresento breve revisão as possibilidades do meu ofício:

Agora vamos colocar tudo em ordem.

Tanque Arduino com controle bluetooth - hardware.

A coisa mais importante no hardware é chassis, ou seja, corpo. Nada sairá disso sem o próprio tanque. Ao escolher um estojo, preste atenção ao espaço livre interno. Teremos que colocar um número impressionante de componentes lá. Encontrei essa opção e trabalharemos com ela.

Doador do nosso projeto.

Inicialmente estava com defeito. Queria restaurá-lo, porém, horrorizado com a qualidade de construção da placa de trabalho, decidi que a alteração seria mais confiável. Sim, e vou agradar as crianças com um velho gadget controlado de uma nova maneira.

Dimensões: 330x145x105 mm sem barril. O casco está equipado com quatro motores: dois para movimento, um para a torre e outro para o cano. Inicialmente, o tanque poderia disparar balas de borracha, mas o mecanismo estava quebrado, então simplesmente cortei o cano. Depois disso, havia espaço suficiente para colocar o recheio.

Baixe e instale o programa no site oficial e instale, a versão portátil pode ser simplesmente descompactada. Em seguida, abra meu arquivo de projeto nele e clique no botão de firmware na parte superior da interface (sétimo a partir da esquerda).

Interface FLProg

O ArduinoIDE vai abrir, mas você sabe trabalhar nele 😀 .

Tanque Arduino com controle bluetooth - diagrama de fiação

Conectamos elementos periféricos à placa, no nosso caso, bluetooth, bridges e leds de acordo com o projeto.

Lista de pinos usados

A lista mostra os números dos pinos do arduino e sua finalidade. Tudo é comentado. Os contatos de controle de movimento e torre são conectados diretamente das pontes, nenhum kit de carroceria adicional é necessário. A conexão de uma entrada analógica para medição de tensão deve ser feita através de um divisor resistivo, pois a tensão onboard do arduino é CINCO VOLTS!!! Isso é muito importante, quando a tensão limite do microcircuito é excedida, o controlador vai para outro mundo. Por isso tem cuidado. No meu caso, foram usadas duas baterias de íons de lítio no formato 18650, um divisor em resistores de 1 KΩ e 680 Ohm. Se a sua tensão operacional for diferente da minha, vá a qualquer calculadora online para calcular o divisor resistivo e calculá-lo você mesmo, com base no fato de que sua tensão de saída deve ser igual a cinco volts. Se você duvida de suas habilidades, não pode usar a medição de tensão na bateria, ela funcionará de qualquer maneira. Parei de dirigir assim - é hora de carregar.

Os LEDs, se houver, devem ser conectados através de resistores limitadores de corrente.

Tanque Arduino com controle bluetooth é um programa para tablet ou smartphone.

Como no modelo anterior, usaremos um programa para dispositivos Android chamado HmiKaskada. Espalhar versão gratuita este programa, que pode ser baixado do YandexDisk. Meu projeto é feito em versão paga e não é compatível com a versão gratuita do programa. Portanto, mais material é dedicado à criação de um projeto em uma versão gratuita.

Interface de controle

No projeto finalizado no tablet, também existe um indicador de nível de bateria, e este é o substrato do projeto. Então vamos começar...

Primeiro, vamos criar um projeto com uma tela funcional, não precisaremos mais dela. Em seguida, conecte nosso módulo bluetooth ao tablet. Para fazer isso, vá para editar a lista de servidores e clique no sinal de mais no canto superior direito. Selecionamos nosso bluetooth na lista e damos um nome a ele. Agora está configurado e pronto para ir. O próximo passo é definir o underlay para a área de trabalho. Para fazer isso, vá para o menu "outros - plano de fundo" da área de trabalho principal e carregue a imagem da interface. Você pode usar o meu ou criar sua própria imagem. Na verdade, vai funcionar sem definir o fundo, é só pela beleza.

Agora vamos colocar os controles. Vamos ao menu "configuradores" e arrastamos o botão para a área de trabalho. No menu de botões, clique no endereço e digite por exemplo 1#0.12. Onde 1 é o endereço da placa arduino e 12 é o endereço da variável do projeto. As variáveis ​​utilizadas no projeto podem ser visualizadas na árvore do projeto.

Marcar lista de endereços

Com a configuração do indicador de bateria da mesma maneira. Criamos um registrador de armazenamento no formato Integer no projeto Arduino e atribuímos ao indicador seu endereço. Por exemplo 1#10, ajuste o indicador ao seu gosto.

Quando todos os controles forem criados, configurados e colocados em seus lugares, clique no lançamento do projeto. O Android se conectará ao tanque e você poderá aproveitar o trabalho realizado.

Tanque Arduino com controle bluetooth - montagem.

A montagem da embarcação levou duas horas do meu tempo, mas o resultado superou todas as expectativas. O tanque revelou-se bastante ágil, respondendo aos comandos instantaneamente. Tive que mexer na caixa de câmbio que aciona os trilhos do tanque. Ele desmoronou, mas para minha felicidade as engrenagens não foram danificadas e um pouco de cola, graxa e mãos retas o devolveram ao serviço. A bateria padrão teve que ser substituída por duas baterias de íon de lítio 18650 conectadas em série no suporte. A tensão de alimentação final acabou sendo de 6 a 8,4 volts, dependendo do nível de carga das baterias. Também tive que trocar o motor que aciona a torre, estava em curto.

Substituiu os diodos nos faróis do meu brinquedo. Os amarelos de baixa corrente não agradaram absolutamente e foram soldados aos brancos brilhantes de isqueiros com lanternas 🙂 . Agora, este milagre da lagarta é confortável de dirigir, mesmo na escuridão total. Fotos antes e depois:

Maravilhoso)

O resultado da montagem final não parece muito bom, decidi não gastar muito tempo projetando blindagens e colocando fios. E então tudo funciona muito bem.

Assim ficou o "recheio"

Tanque Arduino com controle bluetooth - conclusão.

Como pode ser visto no material acima, não há cheiro de escavação no código ao criar um tanque controlado por bluetooth. Também não precisamos de nenhum conhecimento profundo em eletrônica. Todas as operações são intuitivas e amigáveis ​​para iniciantes. Inicialmente, o programa HMIKaskada foi desenvolvido como uma alternativa aos caros painéis industriais HMI, mas também foi útil na criação de um brinquedo. Espero que tenha ajudado a dissipar o mito sobre a complexidade de criar projetos multitarefa no arduino.

Terei todo o prazer em receber qualquer tipo de comentário sobre o artigo, bem como comentários. Afinal, eu também estou aprendendo com você...

Vamos construir um tanque RC em primeira pessoa que pode ser controlado a até 2 quilômetros de distância! Meu projeto foi baseado em um rover de controle remoto, fácil de montar, fácil de programar e um ótimo projeto para amadores!




O bot é muito rápido e ágil, sem falar que carrega dois motores potentes! Certamente ultrapassará um humano, não importa em que superfície as raças estejam!

O bot ainda é um protótipo mesmo após meses de desenvolvimento.

Então, o que é FPV?
FPV, ou visão em primeira pessoa, é uma visão em primeira pessoa. Normalmente vemos FPV enquanto jogamos em consoles e computadores, por exemplo em jogos de corrida. O FPV também é usado pelos militares para vigilância, proteção ou controle de áreas protegidas. Hobbyists usam FPV em quadcopters para filmagem aérea e apenas por diversão. Tudo isso soa tão legal quanto custa construir um quadcopter, então decidimos construir algo menor que anda no chão.

Como administrá-lo?
O bot é baseado na placa Arduino. Como o Arduino suporta uma ampla variedade de complementos e módulos (RC / WiFi / Bluetooth), você pode escolher qualquer um dos tipos de comunicação. Para esta montagem, usaremos componentes especiais que permitirão o controle a longas distâncias usando um transmissor e receptor de 2,4Ghz que controla o bot.

Há um vídeo de demonstração na última etapa.

Passo 1: Ferramentas e Materiais






A maioria das peças eu compro em lojas de hobby locais, o restante encontro online - basta procurar ofertas com melhor preço. Eu uso muitas soluções da Tamiya e minhas instruções são escritas com esse recurso em mente.

Comprei peças de reposição e materiais na Gearbest - naquela época eles estavam em liquidação.

Nós vamos precisar:

  • Clone do Arduino UNO R3
  • Protetor de Motor Pololu Dual VNH5019 (2x30A)
  • Pin pais
  • 4 espaçadores
  • Parafusos e porcas
  • Módulo de transmissão de sinal (transmissor) 2,4 Ghz - leia mais na etapa 13
  • Receptor 2.4 Ghz para pelo menos dois canais
  • 2 motores Tamiya Plasma Dash / Hyper dash 3
  • Tamiya Twin Motor Gearbox Kit (motores de estoque incluídos)
  • 2 placas Tamiya universais
  • Conjunto de trilhos e rodas Tamiya
  • 3 baterias de polímero de lítio 1500mAh
  • Câmera POV com suporte para controle remoto de direção e zoom
  • transmissor e receptor para FPV 5.8Ghz 200mW
  • garrafa de supercola
  • Cola quente

Ferramenta:

  • Multi-ferramentas
  • Jogo de chaves de fenda
  • Dremel

Etapa 2: Montagem de uma caixa de engrenagens emparelhada


Hora de desempacotar a caixa de câmbio. Basta seguir as instruções e você ficará bem.

Nota importante: Use uma relação de transmissão de 58:1!!!

  • lubrifique as engrenagens antes de montar a caixa, e não depois
  • não se esqueça dos espaçadores de metal, senão a caixa vai ranger
  • use o formato de engrenagem 58:1, é mais rápido que 204:1

Etapa 3: melhorar os motores

A caixa de câmbio vem com motores, mas eles são muito lentos na minha opinião. Por isso, decidi usar motores Hyper dash no projeto, ao invés dos motores Plasma Dash, que consomem mais energia.

No entanto, os motores Plasma Dash são os mais rápidos da série de motores 4WD da Tamiya. Motores são caros, mas você ganha melhor produto por este dinheiro. Esses motores revestidos de carbono giram a 29.000 rpm a 3V e 36.000 rpm a 7V.

Os motores são projetados para funcionar com fontes de alimentação de 3V e aumentar a tensão, embora aumente o desempenho, mas reduza sua vida útil. Com o Motor Driver Pololu 2x30 e duas baterias Lithium Polymer, o software Arduino deve ser configurado para velocidade máxima 320/400, logo na etapa do código você descobrirá o que isso significa.

Passo 4: Motoristas


Eu gosto de robótica há muito tempo e posso dizer. que o melhor driver de motor é o Pololu Dual VNH5019. Quando se trata de potência e eficiência, é A melhor opção, mas quando falamos de preço, ele claramente não é nosso amigo.

Outra opção seria construir o driver L298. 1 L298 é projetado para um motor, que é a melhor solução para motores para força elevada atual. Mostrarei como criar sua própria versão desse driver.

Passo 5: Montagem da Pista




Use sua imaginação e configure as pistas ao seu gosto.

Etapa 6: Aparafuse os espaçadores e conecte o FPV



Mais uma vez, use sua imaginação e descubra como posicionar os suportes e a câmera para uma visão em primeira pessoa. Prenda tudo com cola quente. Prenda o deck superior e faça furos para montar a antena FPV e sob os espaçadores instalados e, em seguida, parafuse tudo no lugar.

Passo 7: Deck Superior


O objetivo da criação do convés superior era aumentar espaço livre pois os componentes FPV ocupam muito espaço na parte inferior do drone, não deixando espaço para o Arduino e o driver do motor.

Etapa 8: instalar o Arduino e o driver do motor

Basta parafusar ou colar o Arduino no deck superior e, em seguida, encaixar o driver do motor em cima dele.

Etapa 9: Instalando o Módulo Receptor



É hora de conectar o módulo Rx ao Arduino. Usando os canais 1 e 2, conecte o canal 1 a A0 e o canal 2 a A1. Conecte o receptor aos pinos 5V e GND do Arduino.

Passo 10: Conecte Motores e Baterias



Solde os fios ao motor e conecte-os ao driver de acordo com os canais. Para a bateria, você precisará criar seu próprio conector usando plugues macho JST e macho Dyna. Veja as fotos para entender melhor o que é exigido de você.

Passo 11: Bateria

Pegue a bateria e determine o local onde irá instalá-la.

Depois de encontrar um lugar para ele, crie um adaptador macho para conectar à bateria. A bateria 3S 12V Li-po alimentará a câmera FPV, o motor e o Arduino, portanto, você precisará criar um conector para a linha de alimentação do motor e a linha FPV.

Passo 12: Código do Arduino (C++)

O código é muito simples, basta carregá-lo e ele deve funcionar com o driver do motor VNH (certifique-se de baixar a biblioteca do driver e colocá-la na pasta de bibliotecas do Arduino).

O código é semelhante ao do Zumobot RC, apenas alterei a biblioteca do driver do motor e ajustei algumas coisas.

Para o driver L298, use o programa padrão do Zumobot, basta conectar tudo conforme está escrito na biblioteca.

#define PWM_L 10 ///motor esquerdo
#define PWM_R 9
#define DIR_L 8 ///motor esquerdo
#define DIR_R 7

Basta fazer o upload do código e seguir para a próxima etapa.

arquivos

Passo 13: Controlador


o mercado tem tipos diferentes controladores para brinquedos controlados por rádio: para água, terra, ar. Eles também operam em diferentes frequências: AM, FM, 2,4 GHz, mas no final todos permanecem controladores comuns. Não sei o nome exato do controlador, mas sei que é usado para drones aéreos e tem mais canais do que os terrestres ou aquáticos.

Sobre este momento Estou usando um Turnigy 9XR Transmitter Mode 2 (No Module). Como você pode ver, o nome diz que é sem módulo, o que significa que você escolhe qual módulo de comunicação de 2,4 GHz construir nele. Existem dezenas de marcas no mercado que possuem características próprias de uso, controle, distância e outras funcionalidades diversas. No momento estou usando o FrSky DJT 2.4Ghz Combo Pack para JR com Módulo de Telemetria e V8FR-II RX que é um pouco caro, mas basta olhar para as especificações e os extras, o preço não parece muito para todos aquela bondade. Além disso, o módulo vem imediatamente com o receptor!

E lembre-se de que mesmo que você tenha um controlador e módulos, não poderá ligá-lo até obter baterias compatíveis com o controlador. De qualquer forma, encontre o controlador que mais lhe convém e então você decidirá sobre as baterias certas.

Dica: Se você é um iniciante, procure ajuda em lojas de hobby locais ou encontre grupos de entusiastas de rádio amador, porque esta etapa não é apenas uma brincadeira e você precisará desembolsar uma quantia significativa de dinheiro.

Passo 14: Verifique




Primeiro ligue o bot, depois ligue o módulo transmissor, depois disso o módulo receptor deve indicar ligação bem-sucedida piscando o LED.

Guia do iniciante para FPV

A parte instalada no bot é chamada de transmissor e câmera FPV, e a que está em suas mãos é chamada de receptor FPV. O receptor se conecta a qualquer tela - seja LCD, TV, TFT, etc. Tudo o que você precisa fazer é inserir baterias nele ou conectá-lo a uma fonte de energia. Ligue-o e, se necessário, mude o canal no receptor. Depois disso, você deve ver o que seu bot vê na tela.

Faixa de sinal FPV

O projeto usou um módulo barato que pode funcionar a uma distância de 1,5 a 2 km, mas isso se aplica ao uso do dispositivo em um espaço aberto se você deseja receber um sinal maior força então compre um transmissor mais poder, por exemplo 1000mW. Observe que meu transmissor tem apenas 200mW e foi o mais barato que pude encontrar.

O último passo é se divertir dirigindo seu novo tanque espião com uma câmera!

Este post será o primeiro teste para entender se isso é interessante para alguém além de mim. Nele vou descrever estrutura geral tecnologias e dispositivos utilizados.

UPD: vídeo adicionado.


Primeiro, um pequeno vídeo para chamar a atenção. O som vem do alto-falante do tanque.

Como tudo começou

Há muito tempo, tive o sonho de fazer um robô em um chassi de lagarta que pudesse ser dirigido remotamente. O principal problema era a falta de um chassi rastreado diretamente. Finalmente decidi comprar tanque rc para desmontagem, mas tive sorte, na loja entre o lixo havia um tanque Snow Leopard (Pershing) - EUA M26 com eletrônica queimada, mas uma parte mecânica totalmente funcional. Era exatamente o que era necessário.

Além do chassi, foram adquiridos dois reguladores de tensão para motores coletores, um tripé para uma câmera de dois servos, uma webcam com suporte a hardware mjpeg e uma placa WiFi externa TP-LINK TL-WN7200ND. Um pouco mais tarde, um alto-falante portátil, uma caixa de som Creative SoundBlaster Play USB e um microfone simples, além de alguns hubs USB, foram adicionados à lista de dispositivos para conectar tudo isso ao módulo de controle, que se tornou o Raspberry Pi. A torre foi desmontada do tanque, era muito inconveniente dirigi-la, pois toda a mecânica regular era construída em motores convencionais sem opinião.

Devo dizer desde já que as fotos foram tiradas quando o tanque estava quase pronto, e não durante o processo de fabricação.

Energia e fiação


Enfiei a maior bateria Li-Po que cabia no compartimento da bateria. Acabou sendo uma bateria de duas células de 3300 mAh em uma caixa sólida, que geralmente é usada em modelos de carros. Eu estava com preguiça de soldar, então uma placa de ensaio padrão com pitch de 2,54 foi usada para todas as comutações. Mais tarde, um segundo apareceu na capa superior e um trem que os conectava. Para cada um dos dois motores, eu tinha meu próprio regulador de tensão, que, como bônus, fornece uma fonte de alimentação estabilizada de cerca de 5,6 volts. A placa Raspberry e WiFi foi alimentada por um regulador, a energia do segundo foi para servos e hub USB com periféricos.

Tenho que fazer isso se mover

Tinha que ser feito de alguma forma. A framboesa não foi escolhida por acaso. Em primeiro lugar, permite instalar um Linux normal completo e, em segundo lugar, possui um monte de pernas GPIO, que, entre outras coisas, podem gerar um sinal de pulso para servos e controladores de viagem. Você pode gerar esse sinal usando o utilitário ServoBlaster. Quando executado, ele cria um arquivo /dev/servoblaster onde você pode escrever algo como 0=150, onde 0 é o número do canal e 150 é a duração do pulso em dezenas de microssegundos, então 150 é 1,5 milissegundos (a maioria dos servos tem uma faixa de valores 700-2300ms).
Então, conectamos os reguladores aos pinos 7 e 11 GPIO e iniciamos o servoblaster com o comando:

# servod --min=70 --max=230 --p1pins=7,11
Agora, se você escrever as linhas 0=230 e 1=230 em /dev/servoblaster, o tanque avançará.

Provavelmente o suficiente pela primeira vez. Se você gosta do artigo, vou escrever lentamente os detalhes em próximos posts. E mais algumas fotos no final, bem como um vídeo recém-filmado. É verdade que a qualidade não era muito boa, por isso peço desculpas antecipadamente aos estetas.

A parte principal do robô é o chassi do tanque controlado por rádio e outros componentes, sua lista será escrita abaixo. Este tanque é o primeiro projeto do autor na plataforma Arduino, e ele ficou satisfeito por tê-lo usado. O autor utilizou materiais e livros da Internet.

Materiais e ferramentas:
- Chassis do tanque
-Arduino Uno
- Jumpers e breadboard
- Driver de motor integrado SN754410NE
- servo convencional
- Localizador de alcance ultrassônico
- Bateria de 9V com conector para ela
- baterias tipo D
- Cabo USB para Arduino
- Base do chassi
- Chaves de fenda
- Pistola térmica e cola para ela
- Ferro de solda e solda

Passo um. Chassi do tanque.
O autor pegou o chassi do antigo Tanque Abrams comprado em um mercado de pulgas. O tanque resultante foi desmontado para que o chassi pudesse ser removido dele. Não é necessário usar o mesmo tanque, qualquer um controlado por rádio serve. Além disso, o motor original deixou muito a desejar, então tive que montar o meu, sua montagem será na próxima etapa. Depois de preparar o chassi, o autor prendeu a base neles com cola quente. Não importa onde será fixado, mas optou-se por colá-lo no centro.

Passo dois. Maquinista.
O driver SN754410NE é usado para controlar o motor, o autor o usou, desde que disponível, você pode pegar qualquer um semelhante.
A conexão do driver ao Arduino é a seguinte:

Todos os pinos GND são conectados aos pinos GND da breadboard.
- Driver dos pinos 1 e 16 para Arduino 9 e 10.
- Os pinos 2 e 7 do driver são conectados aos pinos 3 e 4 do Arduino (são responsáveis ​​por controlar o motor esquerdo).
- Os pinos 5 e 6 do Arduino são conectados aos pinos 10 e 15 do driver (são os responsáveis ​​por controlar o motor correto).
- Os pinos 3 e 6 são conectados ao motor esquerdo e 14 e 11 ao motor direito.
- Os pinos 8 e 16 devem estar conectados para alimentar o Bredboard, alimentado por uma bateria de 9V.

Passo três. Instalação do telêmetro.
O sensor ultrassônico permite que o robô evite obstáculos em seu caminho enquanto se move. O sensor está localizado em um servo padrão e será montado na frente do robô. No momento em que o robô perceber um obstáculo a 10 cm, o servo começará a girar nas duas direções, procurando uma passagem. O Arduino lê as informações do sensor e decide qual lado é mais favorável para o movimento posterior.
Em primeiro lugar, um servo é conectado ao sensor. O autor corrige o servo para que ele gire apenas 90 graus em cada direção, ou seja, uma volta completa do servo será de 180 graus.

O sensor tem três pinos GND, sinal e 5V. A fonte de 5V é conectada à fonte de 5V do Arduino, GND a GND e o sinal ao pino 7 do Arduino.

Etapa quatro. Nutrição.
Arduino recebe energia através de uma bateria de 9V, é conectado ao conector apropriado. Os motores são alimentados por quatro baterias tipo D instaladas no porta-baterias. Para alimentar os motores, os fios do suporte são conectados à placa na qual já está instalado o driver do motor SN754410NE.

Quinto passo. Montagem do robô.
Depois de concluir todas as etapas anteriores, é hora de juntar todos os detalhes. Em primeiro lugar, o Arduino é fixado na base do tanque. Depois disso, um telêmetro ultrassônico é fixado na frente do robô com cola quente. Em seguida, o autor fixa as baterias ao lado do Arduino. As baterias podem ser instaladas em qualquer parte do tanque. Depois de instalar todos os componentes, todos os fios foram levantados e a energia foi aplicada à placa para garantir que a montagem estivesse correta.

Etapa seis. Código do programa.
Após a conclusão da montagem do tanque, é hora de escrever um programa para ele. O programa deve mostrar ao robô quando se mover e quando parar de se mover para evitar um obstáculo. Ao escrever o código do autor