- Componentes necessários para o barco Arduino RC
- Módulos transmissores e receptores RF 433 MHz
- 433MHZ Transmissor RF
- Diagrama de blocos do transmissor de barco Arduino RC
- Diagrama de circuito do Arduino RC remoto (transmissor)
- Construindo o Circuito Transmissor RC BOAT
- Construindo o gabinete do transmissor do barco Arduino RC
- Módulo receptor 433Mhz
- Diagrama de blocos do receptor do barco Arduino RC
- Diagrama de circuito do receptor de barco Arduino RC
- Construindo o circuito receptor do barco Arduino RC
- Construindo o RC-BOAT
- Motores e hélices para o Arduino Air Boat
- Trabalho do Barco Arduino RC
- Programação Arduino do Barco RC
Neste projeto, construiremos um Arduino Air-Boat controlado remotamente que pode ser controlado sem fio usando os módulos de rádio RF de 433 MHz. Iremos controlar este barco usando um controle remoto caseiro, construindo nosso próprio transmissor de 433 MHz e um módulo receptor. No caso de dispositivos controlados remotamente ou comunicação entre dois dispositivos, temos várias opções como IR, Bluetooth, internet, RF, etc. Quando comparada à comunicação IR, as comunicações de rádio têm algumas vantagens como maior alcance e não requerem uma conexão de linha de visão entre o transmissor e o receptor. Além disso, esses módulos podem fazer duas formas de comunicação, o que significa que podem transmitir e receber ao mesmo tempo. Então, usando este módulo RF de 433 MHz, vamos construir um barco Arduino RC neste tutorial.
Já construímos muitos projetos controlados remotamente usando esses módulos RF de 433Mhz para controlar um robô como este robô controlado por RF ou para aplicações de automação residencial para controlar eletrodomésticos usando RF. Além de usar módulos RF, também construímos um carro Raspberry Pi controlado por Bluetooth e um robô Arduino controlado por telefone móvel DTMF anteriormente. Você também pode conferir esses projetos se estiver interessado.
Componentes necessários para o barco Arduino RC
- Transmissor e receptor de 433 MHz
- Arduino (qualquer Arduino, para reduzir o tamanho, estou usando promini)
- HT12E e HT12D
- Botões de pressão - 4Nos
- Resistores - 1 mega ohm, 47k ohm
- Motorista L293d
- Bateria de 9 V (estou usando uma bateria de 7,4 volts) - 2Nos
- Regulador 7805- 2Nos
- Motores DC- 2Nos
- Folha de motor ou hélices (estou usando hélices caseiras) - 2Nos
- .1uf capacitor- 2Nos
- PCB comum
Módulos transmissores e receptores RF 433 MHz
Esses tipos de módulos RF são muito populares entre os fabricantes. Devido ao seu baixo custo e simplicidade nas conexões. Esses módulos são os melhores para todas as formas de projetos de comunicação de curto alcance. Esses módulos são módulos RF do tipo ASK (Amplitude Shift Keying), Amplitude-shift keying (ASK) é uma forma de modulação de amplitude que representa dados digitais como variações na amplitude de uma onda portadora. Em um sistema ASK, o símbolo binário 1 é representado pela transmissão de uma onda portadora de amplitude fixa e frequência fixa por um bit de duração de T segundos. Se o valor do sinal for 1, o sinal da portadora será transmitido; caso contrário, um valor de sinal de 0 será transmitido. Isso significa que geralmente não consomem energia ao transmitir o “zero” lógico. Este baixo consumo de energia os torna muito úteis em projetos operados por bateria.
433MHZ Transmissor RF
Este tipo de módulo é super pequeno e vem com 3 pinos VCC, aterramento e dados. Alguns outros módulos vêm com um pino de antena extra. A tensão de trabalho do módulo transmissor é 3V-12V e este módulo não possui componentes ajustáveis. Uma das grandes vantagens deste módulo é o baixo consumo de corrente, pois requer corrente quase nula para enviar o bit zero.
Diagrama de blocos do transmissor de barco Arduino RC
No diagrama de blocos acima, existem quatro botões (botões de controle), esses botões são para controlar a direção do barco. Temos quatro deles para frente, para trás, esquerda e direita. Pelos botões, obtemos a lógica para controlar o barco, mas não podemos conectar diretamente ao codificador, por isso usamos o Arduino. Você pode pensar porque usei o Arduino aqui, é simplesmente porque precisamos puxar duas entradas de dados paralelas do codificador ao mesmo tempo para um movimento para trás e para a frente que não pode ser alcançado apenas com botões. Em seguida, o codificador codifica os dados paralelos que chegam para saídas seriais. Então, podemos transmitir esses dados seriais com a ajuda de um transmissor RF.
Diagrama de circuito do Arduino RC remoto (transmissor)
No circuito acima, você pode ver um lado de todos os quatro botões conectados aos quatro pinos digitais do Arduino (D6-D9) e todos os outros quatro lados conectados ao solo. Quando pressionamos o botão, os pinos digitais correspondentes obtêm um nível lógico baixo. As quatro entradas paralelas do codificador HT12E conectadas a outros quatro pinos digitais do Arduino (D2-D5). Assim, com a ajuda do Arduino, podemos decidir a entrada do codificador.
E por falar em codificador, HT12E é um codificador de 12 bits e um codificador de entrada serial de saída paralelo. Dos 12 bits, 8 bits são bits de endereço que podem ser utilizados para controlar vários receptores. Os pinos A0-A7 são os pinos de entrada de endereço. Neste projeto, estamos controlando apenas um receptor, então não queremos alterar seu endereço, então conectei todos os pinos de endereço ao solo. Se você deseja controlar diferentes receptores com um transmissor, você pode usar interruptores dip aqui. AD8-AD11 são as entradas de bits de controle. Essas entradas controlarão as saídas D0-D3 do decodificador HT12D. Precisamos conectar um oscilador para a comunicação e a frequência do oscilador deve ser de 3KHzpara operação 5V. Então, o valor do resistor será 1,1MΩ para 5V. Então conectei a saída do HT12E ao módulo transmissor. Já mencionamos, o Arduino e o módulo transmissor rf, ambos os dispositivos trabalham em 5V de alta tensão vão matá-lo, então para evitar isso, adicionei o 7805, regulador de tensão. Agora podemos conectar (Vcc) 6-12 volts de qualquer tipo de bateria à entrada.
Construindo o Circuito Transmissor RC BOAT
Soldei todos os componentes em um PCB comum. Lembre-se de que estamos trabalhando em um projeto de RF, então há muitas chances de diferentes tipos de interferências, então conecte todos os componentes o mais próximo possível. É melhor usar cabeçalhos de pinos fêmeas para o Arduino e o módulo transmissor. Além disso, tente soldar tudo nas almofadas de cobre em vez de usar fios extras. Finalmente, conecte um pequeno fio ao módulo transmissor que ajudará a aumentar o alcance total. Antes de conectar o Arduino e o módulo do transmissor, verifique novamente a tensão da saída do lm7805.
A imagem acima mostra a vista superior do circuito do transmissor RC do barco concluído e a vista inferior do circuito do transmissor do barco RC concluído é mostrada abaixo.
Construindo o gabinete do transmissor do barco Arduino RC
Um corpo decente é necessário para o controle remoto. Esta etapa é toda sobre suas idéias, você pode criar um corpo remoto com suas idéias. Estou explicando como fiz isso. Para fazer um corpo remoto, escolho chapas de MDF de 4mm, você também pode escolher compensado, folha de espuma ou papelão, então corto duas peças desse com comprimento de 10cm e largura de 5cm. Em seguida, marquei as posições dos botões. Coloquei os botões de direção do lado esquerdo e os botões de avançar e voltar à direita. No outro lado da folha, conectei os botões de pressão ao circuito de transmissão principal. Lembre-se de que um botão de pressão normal tem 4 pinos que são dois pinos para cada lado. Conecte um pino ao Arduino e o outro pino ao solo. Se você está confuso com isso, verifique com um multímetro ou verifique a folha de dados.
Depois de conectar tudo isso, coloquei o circuito de controle entre as duas placas de MDF e apertei com um parafuso longo (consulte as imagens abaixo se quiser). Mais uma vez, criar um bom corpo tem tudo a ver com suas idéias.
Módulo receptor 433Mhz
Este receptor também é muito pequeno e vem com 4 pinos VCC, terra, e os dois pinos do meio são dados de saída. A tensão de trabalho deste módulo é 5v. Como o módulo transmissor, este também é um módulo de baixa potência. Alguns módulos vêm com um pino de antena extra, mas no meu caso, não está presente.
Diagrama de blocos do receptor do barco Arduino RC
O diagrama de blocos acima descreve o funcionamento do circuito receptor de RF. Primeiro, podemos receber os sinais transmitidos usando o módulo receptor de RF. A saída deste receptor são dados seriais. Mas não podemos controlar nada com esses dados seriais, por isso conectamos a saída ao decodificador. O decodificador decodifica os dados seriais em nossos dados paralelos originais. Nesta seção, não exigimos nenhum microcontrolador, podemos conectar diretamente as saídas ao driver do motor.
Diagrama de circuito do receptor de barco Arduino RC
O HT12D é um decodificador de 12 bits que é um decodificador serial de entrada-saída paralela. O pino de entrada do HT12D será conectado a um receptor que possui uma saída serial. Entre os 12 bits, 8 bits (A0-A7) são bits de endereço e o HT12D decodificará a entrada se ela corresponder ao seu endereço atual. D8-D11 são os bits de saída. Para combinar este circuito com o circuito do transmissor, conectei todos os pinos de endereço ao terra. Os dados que saem do módulo são do tipo serial e o decodificador decodifica esses dados seriais para dados paralelos originais e saímos por meio de D8-D11. Para corresponder à frequência de oscilação, deve-se conectar o resistor de 33-56k aos pinos do oscilador. Led no 17º pino indica a transmissão válida, só acende após quando o receptor estiver conectado a um transmissor. A entrada de tensão do receptor também é de 6-12 volts.
Para controlar motores, usei o IC L293D, escolhi este IC porque para diminuir o tamanho e o peso e este IC é melhor para controlar dois motores em duas direções. L293D tem 16 pinos, o diagrama abaixo mostra a pinagem.
1, 9 pinos são o pino de habilitação, nós o conectamos a 5 V para habilitar os motores 1A, 2A, 3A e 4A são os pinos de controle. O motor girará para a direita se o pino 1A for baixo e 2A for alto, e o motor girará para a esquerda se 1A for baixo e 2A alto. Portanto, conectamos esses pinos à saída ps do decodificador. 1Y, 2Y, 3Y e 4Y são os pinos de conexão do motor. Vcc2 é o pino de voltagem de acionamento do motor, se você estiver usando um motor de alta voltagem, conecte este pino à fonte de voltagem correspondente.
Construindo o circuito receptor do barco Arduino RC
Antes de construir o circuito receptor, você deve se lembrar de algumas coisas importantes. O importante é o tamanho e o peso porque depois de construir o circuito, precisamos consertá-lo no barco. Portanto, se o peso aumentar, isso afetará a flutuabilidade e o movimento.
Assim como no circuito do transmissor, solde cada componente em um pequeno PCB comum e tente usar fios mínimos. Eu conectei o pino 8 do driver do motor a 5v porque estou usando motores de 5V.
Construindo o RC-BOAT
Experimentei diferentes materiais para construir o corpo do barco. E consegui um resultado melhor com a folha de termocol. Decidi então construir o corpo com termocol. Primeiro peguei um pedaço de termocol de 3cm de espessura e coloquei o circuito receptor em cima, depois marquei o formato do barco em termocol e cortei. Portanto, esta é minha maneira de construir o barco, você pode construir de acordo com suas idéias.
Motores e hélices para o Arduino Air Boat
Mais uma vez, o peso é importante. Portanto, escolher o motor correto é importante, eu escolho motores CC normais do tipo 5 volts e n20, que são pequenos e leves. Para evitar as interferências de RF, deve-se conectar o capacitor de 0.1uf paralelamente às entradas do motor.
No caso das hélices, fiz hélices com folhas de plástico. Você pode comprar hélices na loja ou construir o seu próprio. Ambos funcionarão bem. Para construir as hélices, primeiro peguei uma pequena folha de plástico e cortei dela dois pequenos pedaços e dobrei os pedaços com a ajuda do calor de uma vela. Finalmente, coloquei um pequeno orifício no centro para o motor e fixei no motor que é isso.
Trabalho do Barco Arduino RC
Este barco tem dois motores, vamos chamá-lo de esquerda e direita. Se o motor também se mover no sentido horário (a posição da hélice também depende), a hélice suga o ar pela frente e expele pela parte de trás. Isso gera um arrasto para a frente.
Movimento para a frente: Se os motores esquerdo e direito girarem no sentido horário, haverá movimento para frente
Movimento para trás: Se os motores esquerdo e direito girarem no sentido anti-horário (ou seja, a hélice suga o ar da parte traseira e expelem para a frente), isso fará um movimento para trás
Movimento para a esquerda: se apenas o motor direito girar, o barco será arrastado do lado direito para que o barco se mova para o lado esquerdo
Movimento para a direita: se apenas o motor esquerdo girar, o barco só terá arrasto do lado esquerdo que fará com que o barco se mova para o lado direito.
Conectamos a entrada do driver do motor a quatro bits de saída do decodificador (D8-D11). podemos controlar essas 4 saídas conectando o AD8-AD11 ao solo que são os botões do controle remoto. Por exemplo, se conectarmos AD8 ao solo, isso ativará o D8. Assim, podemos controlar os dois motores em duas direções usando essas 4 saídas. Mas não podemos controlar dois motores com apenas um botão (precisamos disso para o movimento para frente e para trás), por isso usamos o Arduino. Com a ajuda do Arduino, podemos selecionar os pinos de dados de entrada conforme desejarmos.
Programação Arduino do Barco RC
A programação deste barco é muito simples porque queremos apenas alguma comutação lógica. E podemos conseguir tudo com funções básicas do Arduino. O programa completo para este projeto pode ser encontrado no final desta página. A explicação do seu programa é a seguinte
Iniciamos o programa definindo os inteiros para quatro botões de entrada e pinos de entrada do decodificador.
int f_button = 9; int b_button = 8; int l_button = 7; int r_button = 6; int m1 = 2; int m2 = 3; int m3 = 4; int m4 = 5;
Na seção de configuração, defini os modos de pino. Ou seja, os botões são conectados a pinos digitais, então esses pinos devem ser definidos como entrada e precisamos obter a saída para a entrada do decodificador, então devemos definir esses pinos como saída.
pinMode (f_button, INPUT_PULLUP); pinMode (b_button, INPUT_PULLUP); pinMode (l_button, INPUT_PULLUP); pinMode (r_button, INPUT_PULLUP); pinMode (m1, OUTPUT); pinMode (m2, OUTPUT); pinMode (m3, OUTPUT); pinMode (m4, OUTPUT);
Em seguida, na função de loop principal, leremos o status do botão usando a função digitalread do Arduino. Se o status do pino ficar baixo, isso significa que o pino correspondente foi pressionado, então executaremos as condições como segue
if (digitalRead (f_button) == LOW)
Isso significa que o botão Avançar está pressionado
{ digitalWrite (m1, LOW); digitalWrite (m3, LOW); digitalWrite (m2, ALTO); digitalWrite (m4, HIGH); }
Isso irá puxar para baixo m1 e m2 do codificador, isso ativará os dois motores no lado do receptor. Da mesma forma, para movimento para trás
{ digitalWrite (m1, HIGH); digitalWrite (m3, HIGH); digitalWrite (m2, LOW); digitalWrite (m4, LOW); }
Para movimento à esquerda
{ digitalWrite (m1, LOW); digitalWrite (m3, HIGH); digitalWrite (m2, ALTO); digitalWrite (m4, HIGH); }
Para movimento correto
{ digitalWrite (m1, HIGH); digitalWrite (m3, LOW); digitalWrite (m2, ALTO); digitalWrite (m4, HIGH); }
Depois de compilar o código, carregue-o na placa Arduino.
Solução de problemas: Coloque o barco na superfície da água e verifique se ele está se movendo corretamente, caso não tente alterar a polaridade dos motores e hélices. Além disso, tente equilibrar o peso.
O funcionamento completo do projeto pode ser encontrado no vídeo com link no final desta página. Se você tiver alguma dúvida, deixe-a na seção de comentários.