Como fazer um carrinho de controle remoto simples com Bluetooth

Como fazer um carrinho de controle remoto simples com Bluetooth 69

O controle de dispositivos usando a tecnologia Bluetooth é sem dúvida uma das habilidades mais legais que todo o maker deseja dominar! Hoje nós daremos um passo além e ainda voltando a ser criança criando um incrível carrinho por controle remoto fazendo uso do módulo Bluetooth RS232 HC-05 com Arduino! Vamos lá?

Passo a passo para criar um carrinho de controle remoto

Você vai precisar de:

Como fazer um carrinho de controle remoto simples com Bluetooth

Comecemos então montando a parte mecânica. Encaixe primeiro os motores e, em seguida, as rodas no chassi. Finalmente, o conector para as pilhas. Certifique-se de que tudo ficou bem preso para evitar que algo acabe se soltando durante a utilização do carrinho, provocando danos aos componentes sem necessidade. Feito isso, efetue a solda dos fios a chave liga/desliga, assim podemos desligar facilmente o carrinho.

Com o último ponto feito, posicione os componentes eletrônicos no chassi, passando a fiação dos motores por dentro dos furos existentes no mesmo para evitar que os fios acabem, eventualmente, se enroscando nas rodas – tornando a operação muito mais segura e a montagem mais limpa!

Como fazer um carrinho de controle remoto simples com Bluetooth

Antes de colocar os parafusos ou prendedores adequados ao chassi, vamos ligar para ver se está tudo certo!

Mas, antes, vamos passar o programa do carrinho para a nossa placa Arduino Uno. Estando tudo em seu lugar, a placa e o módulo irão piscar mostrando que estão prontos para uso.

Como fazer um carrinho de controle remoto simples com Bluetooth

Circuito: Carrinho de controle remoto simples

Para facilitar a montagem, abaixo temos o esquema para ligação da fiação do nosso carrinho. Veja que a ponte H é fundamental para alimentar corretamente os motores sem precisarmos recorrer a protoboard.

Ao ligar os motores, atente-se para não deixar os bornes com folga, pois os fios podem acabar saindo ou gerando mal contato. Atenção também com o posicionamento na hora de jumpear a nossa plaquinha, garantindo que os mesmos entrem até o final.

Código: Carrinho de controle remoto simples

Para que o nosso conjunto possa funcionar, vamos passar o programa do nosso carrinho para a placa compatível Arduino Uno. Para o código vamos precisar instalar a biblioteca Dabble.

Dito isso, vamos à gravação! Abra a IDE do Arduino e conecte a placa colocando o código a seguir:

#define CUSTOM_SETTINGS
#define INCLUDE_GAMEPAD_MODULE
#include <Dabble.h>
  
#define INT1 2
#define INT2 3
#define INT3 4
#define INT4 5
  
void setup()
{
  Serial.begin(250000);
  Dabble.begin(9600,7,6);  
  pinMode(INT1,OUTPUT);
  pinMode(INT2,OUTPUT);
  pinMode(INT3,OUTPUT);                                                                    
  pinMode(INT4,OUTPUT);
  Stop();
}
  
  
void loop() {
  
  
Dabble.processInput();          
  
if(GamePad.isUpPressed())
{
 forward(); 
}
else if(GamePad.isDownPressed())
{
 backward(); 
}
else if(GamePad.isLeftPressed())
{
 left(); 
}
else if(GamePad.isRightPressed())
{
 right(); 
}
else
{
 Stop(); 
}
  
}
void forward() {
  digitalWrite(INT1,LOW);
  digitalWrite(INT2,HIGH);
  digitalWrite(INT3,HIGH);
  digitalWrite(INT4,LOW);
}
     
void backward() {
  digitalWrite(INT1,HIGH);
  digitalWrite(INT2,LOW);
  digitalWrite(INT3,LOW);
  digitalWrite(INT4,HIGH);
}
     
void left() {
  digitalWrite(INT1,HIGH);
  digitalWrite(INT2,LOW);
  digitalWrite(INT3,HIGH);
  digitalWrite(INT4,LOW);    
}
     
void right() {
  digitalWrite(INT1,LOW);
  digitalWrite(INT2,HIGH);
  digitalWrite(INT3,LOW);
  digitalWrite(INT4,HIGH);  
}
     
void Stop() {
  digitalWrite(INT1,LOW);
  digitalWrite(INT2,LOW);
  digitalWrite(INT3,LOW);
  digitalWrite(INT4,LOW);  
}

Uma vez compilado e gravado o programa na nossa placa, basta agora baixar um aplicativo para controlarmos o nosso carrinho direto pelo celular. Eu, particularmente, gosto bastante do Dabble que serve para as plataformas mais populares!

Como fazer um carrinho de controle remoto simples com Bluetooth

Gostou de aprender a construir esse incrível carrinho por controle remoto? Então continue acompanhando o blog da MakerHero!

Faça seu comentário

Acesse sua conta e participe

69 Comentários

  1. Boa tarde,

    O Carrinho funciona com o módulo bluetooth HC-06 também ou somente com o HC-05?

    Obrigado!!

    1. Olá.

      Teoricamente a diferença entre HC-05 e HC-06 é que o HC-06 só pode ser configurado como slave, enquanto o HC-05 pode ser slave, master e loopback.

      Além disso, alguns comandos AT são diferentes.

      Nessa aplicação ele apenas recebe informação, então há chances de funcionar, porém, somente testando para ter certeza.

      Att.
      Vitor Mattos.
      Suporte Técnico MakerHero.

  2. Bom dia, eu tentei montar esse projeto para um trabalho da escola, e o carrinho não recebe os comandos do aplicativo. Já verificamos todo o circuito, desligamos e ligamos. Utilizamos as pilhas padrão mostradas no projeto, mas nada do carrinho responder a algum comando ou dar sinal disso. Não é algo relacionado ao código? O professor que estava com a gente disse que poderia ser algo do tipo, que em tese o gamepad envia uma letra e a placa lê essa letra pra executar o comando.

    1. Olá.

      Dependendo do modelo do celular o dabble deixou de ser compatível, sendo assim, creio que será necessário utilizar outro app.

      Caso queira conversar mais a respeito disso, ficamos a disposição no e-mail [email protected]

      Att.
      Vitor Mattos.
      Suporte Técnico MakerHero.

  3. Olá, bom dia.

    Em relação aos pinos TX e RX do módulo Bluetooth HC-05, eles suportam 3.3V (entrada) mas as saídas do Arduino são 5V, porém não encontrei no esquema eletrônico nenhum resistor para baixar a tensão, poderia me explicar por que não tem no esquema da ligação?

    Outra dúvida é, qual a fonte e tensão usada no esquema para a alimentação do Arduíno? Pois o Vin (Arduino) esta indo direto para a Ponte H? Neste projeto, ele ta projetado para aguenta a carga total dos motor + Ponte H + Bluetooth?

    Desde já, obrigado!
    Abraço

    1. Olá Alexandre.

      A comunicação do HC-05 com o Arduino é essa mesma, não se preocupe com os níveis de tensão.

      Quanto a fonte de tensão, o conjunto de pilhas está alimentando separadamente (em paralelo) o arduino e a shield ponte H. Veja que no esquema de ligação um fio vermelho vai do borne de alimentação da ponte H até a entrada de tensão do arduino. E sim, esse conjunto de pilhas suporta alimentar ponte H + arduino + periféricos.

      Att.
      Vitor Mattos.
      Suporte Técnico MakerHero.

  4. Bom dia,montei o carrinho conforme o projeto coloquei o código certinho,baixei a biblioteca,mais o carrinho não anda dou o comando de ir e ele não vai,o que pode ser?

    1. Olá.

      Diversos fatores podem fazer o carrinho não andar. Mas segue algumas sugestões:

      – Conecte a placa no pc/notebook e veja o monitor serial para testar se a conexão do bluetooth está Ok.
      – Veja se o circuito da pilha está alimentando o circuito corretamente.
      – Verifique todas as conexões detalhadamente

      Att.
      Vitor Mattos.
      Suporte Técnico MakerHero.

      1. Mais pq a placa bluetooth não é ligada no 0 (RX) e no 1 (tx) que são os pinos de ligamento de transmissão e recepção

        1. Olá.

          É que o Arduino possui diversas portas para tal funcionalidade. Não se preocupe pois não é esse o problema.

          Att.
          Vitor Mattos.
          Suporte Técnico MakerHero.

  5. Olá, montei todo o carrinho conforme o esquema, passei a programação para o arduino, o celular conectar no bluetooth mas o carro não anda.
    Troquei os fio jumpper, ponte h e arduino e o mesmo não anda, o que pode está acontecendo?
    Ao invés de pilha estou usando 2 baterias de 3,7v

    1. Olá Clemil.

      Você precisa ir pedindo tensão e continuidade em cada comando para verificar onde que há a falha.

      Exemplo: dê o comando de andar pelo celular e veja se o comando está chegando na ponte H. Além de ver qual tensão está sendo aplicada ao motor.

      Sobre as pilhas, cuidado pois pilhas AA tem a tensão entre 1.2 e 1.5 V, e a bateria que você está usando é 3,7 V.

      Fico a disposição no nosso WhatsApp (48) 3307-3495.

      Att.
      Vitor Mattos.
      Suporte Técnico MakerHero.

  6. Boa tarde. Por favor, sou iniciante nesta área, este mesmo código também funciona para esp32? Ou é preciso alguma modificação? Muito grato.

    1. Olá,

      O código não funciona com o ESP32, ele usa uma biblioteca diferente para comunicação com o Dabble, a DabbleESP32.
      E assim o código vai ser diferente também.

      Abraços!
      Vinícius – Equipe MakerHero

  7. B dia,
    Fiz esse carrinho usando tds os componentes, compilei a Steck para o arduíno n deu erro nenhum, porém o Dabble não consegue se conectar ao bluetooth, aparece na lista para select device com i nome no bluetooth, mas n conecta aparece a mensagem de(Selected device no suporte).
    O que posso fazer?

    1. Olá,

      Essa mensagem aparece no menu de configuração do bluetooth?
      Se sim, ele não irá conectar por esse menu, é preciso ir até a conexão dentro do Dabble, selecionar o dispositivo e fazer a conexão por lá.

      Abraços!
      Vinícius – Equipe MakerHero

    2. Olá,

      Essa mensagem aparece na configuração de bluetooth no celular, ou na hora de conectar no Dabble?

      A conexão precisa ser feita dentro do Dabble.

      Abraços!
      Vinícius – Equipe MakerHero

  8. Tem outro lugar que podíamos conversar melhor?

  9. Sketch uses 2322 bytes (7%) of program storage space. Maximum is 32256 bytes.
    Global variables use 126 bytes (6%) of dynamic memory, leaving 1922 bytes for local variables. Maximum is 2048 bytes.
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x64
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x64
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x64
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x64
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x64
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x64
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x64
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x64
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x64
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x64
    Failed uploading: uploading error: exit status 1

    está aparecendo esse erro qual o problema?

    1. Olá Pedro,

      Esse erro é que o gravador não está conseguindo se comunicar à placa, não tem a ver com o código do carrinho.

      Qual placa você está utilizando?

      Você pode conferir aqui os primeiros passos e verificar se está tudo configurado: https://www.makerhero.com/blog/primeiros-passos-com-arduino/

      Abraços!
      Vinícius – Equipe MakerHero

      1. Estou usando a placa arduino uno, eu já selecionei a placa arduino uno
        Mas tem diferença Arduino Uno para ARDUINO genuíno/uno?
        No meu só aparece arduino Uno apenas não tem esse genuíno

        1. Pedro, possivelmente você está utilizando uma versão mais antiga da IDE>

          Tente utilizar a 1.8.19 ou a versão 2.0.0, ambas devem ter a placa Arduino Uno, mas não era para ter diferença para Arduino genuíno/uno

          Veja se você consegue carregar um exemplo simples como o Blink. Caso não consiga, é algum problema de configuração da IDE ou com a placa.

          Abraços!
          Vinícius – Equipe MakerHero

  10. Qual o programador?

  11. A porta COM não está aparecendo, não consigo nem selecionar nenhum qual o problema?

    1. Olá Pedro,

      Confira se o Arduino está sendo detectado pelo sistema operacional adequadamente, pode ser que esteja faltando o driver e por isso a porta COM não esteja aparecendo.

      Abraços!
      Vinícius – Equipe MakerHero

  12. O fio que ta ligado pilhas e no arduíno, e depois vai pro negócio vermelho, está ligado os dois juntos soldados?

    1. Olá Pedro,

      Corrigimos a imagem para incluir a chave.

      Abraços!
      Vinícius – Equipe MakerHero

    2. Olá Pedro,

      Pode ser encaixado no mesmo terminal e apertado junto, não precisa soldar.

      Abraços!
      Vinícius – Equipe MakerHero

  13. No caso o botão liga e desliga está ligado no que?

  14. Ola. No caso da chave liga-desliga é conectada ao que?

    1. Olá Vitor,

      Corrigimos a imagem para incluir a chave.

      Abraços!
      Vinícius – Equipe MakerHero

  15. Olá, o código funciona para 4 motores também?

    1. Olá Eri,

      Funciona se você ligar os motores aos pares e comandar os dois motores do mesmo lado com o mesmo par de pinos do Arduino.

      Abraços!
      Vinícius – Equipe MakerHero

  16. Quando vou colocar a sua programação no arduino aparece este erro: Platform ‘arduino:avr’ not found: platform not installed Compilation error: Platform ‘arduino:avr’ not found: platform not installed, oq faço?

    1. Olá,

      Pelo erro parece algum problema da IDE com o compilador, você consegue carregar algum outro código de exemplo como o Blink?

      Abraços!
      Vinícius – Equipe MakerHero

  17. Quando ligo o Arduino e a ponte h o motor fica ligado indefinidamente. Seria um erro de código ou de jumper ?

    1. Olá João,

      Provavelmente é algum erro de código. Tente este tutorial mais simples e veja se funciona normal: https://www.makerhero.com/blog/motor-dc-arduino-ponte-h-l298n/

      Abraços!
      Vinícius – Equipe MakerHero

  18. Boa tarde. Não consegui entender qual humor devo tirar da ponte

  19. Guilherme, me tira uma dúvida, por favor!
    Sempre que tento conectar ao APP da erro, aí fiquei me perguntando se é pq não tem uma divisão de tensão pra tx e rx. Vi em vários lugares que precisa fazer.

    Realmente conseguimos montar sem a divisão de tensão?

    1. Olá Amanda,

      As tensões máxima de entrada do HC-05 e mínima de saída do arduino são próximas, por isso as vezes é usado sem divisor e não causa problemas, mas o mais indicado é que se utilize o divisor no RX do HC-05. Agora no TX do HC-05 não deve ter divisor, pois a saída dele mínima de nível alto é 3,1 V, e a mínima para detecção de nível alto no arduino é 3V. Caso coloque o divisor resistivo irá ficar menor a tensão e terá erro de comunicação.

      Abraços!
      Vinícius – Equipe MakerHero

  20. Ola, sobre o carrinho de controle remoto eu consigo deixa-lo Robô autônomo , ou seja ele para nos obstaculos, teria que ter sensor isso? Vcs possuem para vender ?

    1. Olá,

      Temos este post aqui que mostra como fazer um robô que desvia de obstáculos, mas que poderia ser configurado também para parar em frete à obstáculos:
      https://www.makerhero.com/blog/construa-seu-robo-que-desvia-de-obstaculos-com-arduino/

      Abraços!
      Vinícius – Equipe MakerHero

  21. Boa noite, por favor ao de consigo todos os itens do carrinho de controle para comprar? Menos o arduino Uno que já tenho.

    1. Olá,

      Estamos em falta de alguns itens no momento, mas você pode ver a lista de materiais necessários a direita no topo do post.

      Abraços!
      Vinícius – Equipe MakerHero

  22. gostaria de saber qual simulador de Arduino e utilizado nessa apresentação?????

    1. Olá Jefferson,

      A ilustração vem do software Fritzing, mas ele não realiza simulação, apenas o esquemático.

      Abraços!
      Vinícius – Equipe MakerHero

  23. Bom dia.
    Não tá faltando a biblioteca pro módulo bluetooth?

    1. Olá Natan!

      Não é preciso nesse caso pois esse módulo realiza comunicação serial, ele está conectado nos pinos Tx e Rx do Arduino e o Serial faz a leitura ou escrita nesses pinos.

      Abraços!
      Vinícius – Equipe MakerHero

  24. Você pode me ajudar a corrigir esse erro?

    “Stop” was not declared in this scope

    1. Olá!

      Verifique se você copiou todas as linhas do código.

      Stop é declarado nas últimas linhas, da 71 em diante.

      Abraços!
      Vinícius – Equipe MakerHero

  25. Não consigo desconectar o arduino do computador, quando eu desconecto tudo desliga e só a ponte fica ligada. Também, não estou conseguindo controlar pelo aplicativo, mesmo tudo estando conectado certo.

    O que faço?

  26. Boa noite , nao estou conseguindo controlar pelo dabble, copiei o codigo acima e mandei pelo controlador uno deu ok mas na hora de controlar no controle dabble nao vai . pode me ajudar ?

    1. Olá Evandro,

      Estou verificando a situação do HC-05 conforme conversamos via telefone.

      Abraços!
      Vinícius – Equipe MakerHero

      1. boa tarde , conseguiu verificar a comunicacao com dabble ? ate agora nao conseguir funcionar nada. no monitor serial aparece monte caractere quando clico no comando dabble.

        1. Olá Evandro,

          Estamos seguindo a avaliação por e-mail.

          Abraços!
          Vinícius – Equipe MakerHero

        2. Ola poderia me dizer qual foi o diagnostico do seu problema ? é bem parecido com o meu onde realizei a montagem do circuito, conectei bluetooth mas ao apertar os comandos o carrinho não se mexe e quando vou verificar o monitor serial sai um monte de caractere.

          1. Bom dia Lucas.

            Favor entre em contato conosco no Whatsapp (48) 3307-3495 para tratarmos sobre isso.

            Att.

      2. Boa tarde, acho que tive um problema parecido, mandei também um e-mail. O meu carrinho está conectado no aplicativo mas não se mexe

  27. boa noite guilherme ganhei de um cliente um carrinho de controle remoto só que o carrinho não tem mais o controle remoto como eu posso fazer um controle remoto para o meu carrinho vc me ajudaria ?

    1. Olá Alexandre,

      É difícil saber que tipo de comunicação e frequência que o carrinho utiliza para fazer um novo controle.

      Acredito que seria mais fácil fazer um novo controlador e adaptá-lo no carrinho, baseado nesse post aqui, por exemplo.

      Abraços!
      Vinícius – Equipe MakerHero

  28. ola amigao, fiz tudo direitinho, arduino, fonte, ponte h, bluetooth tudo funcionando, quando passo o codigo, infelizente não funciona, testei outros codigo pra testar e funciona normal os motores e tudo. revise seu codigo, um abraço

    1. Olá Altemar,

      O que ocorre com o código do post?

      O problema é no funcionamento do carrinho, ou não consegue carregar o código?

      Abraços!
      Vinícius – Equipe MakerHero

  29. Os códigos dos comandos left e right estão errados. o código correto provável é:
    void left()
    {
    motor1.run(BACKWARD);
    motor2.run(FORWARD);
    }
    void right()
    {
    motor1.run(FORWARD);
    motor2.run(BACKWARD);
    }

    1. Bom dia , tudo bom ? vc pode me ajudar a corrigir o erro que aparece

      :1:10: fatal error: AFMotor.h: No such file or directory

      #include

      1. Olá Evandro,

        Você precisa instalar a biblioteca Adafruit Motor Shield Library pelo gerenciador de bibliotecas na IDE do Arduino.

        Isso irá resolver o erro.

        Abraços!
        Vinícius – Equipe MakerHero

  30. como estou tentando montar esse seu projeto, so quer nos pneus da frente gostaria de implantar um servo motor para controlar direçao, e codigo direcional,poderia mim ajudar?

    1. Olá Carlos,

      Você pode lançar a sua ideia e dúvidas na nossa comunidade do Facebook, por lá o pessoal Maker está compartilhando conhecimento e projetos. Veja só: https://www.facebook.com/groups/272908123918982

      Abraços!
      Vinícius – Equipe MakerHero