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:
- 2 Motores DC 3-6 V para mover o nosso carrinho;
- Chassi e duas rodas (você pode optar também por imprimir seu próprio chassi e até mesmo rodas em 3D!);
- Arduino Uno R3 Compatível;
- Uma Shield Ponte H L298 n;
- Módulo bluetooth Rs232 Hc05;
- Chave Liga-Desliga 10A;
- Suporte 4 Pilhas AA;
- Ferro de solda;
- Estanho;
- Jumpers;
- 4 pilhas médias;
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!
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.
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!
Gostou de aprender a construir esse incrível carrinho por controle remoto? Então continue acompanhando o blog da MakerHero!
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?
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.
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
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.
Boa tarde. Por favor, sou iniciante nesta área, este mesmo código também funciona para esp32? Ou é preciso alguma modificação? Muito grato.
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
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?
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
Ok, muito grato.
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
Tem outro lugar que podíamos conversar melhor?
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?
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
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
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
Qual o programador?
A porta COM não está aparecendo, não consigo nem selecionar nenhum qual o problema?
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
O fio que ta ligado pilhas e no arduíno, e depois vai pro negócio vermelho, está ligado os dois juntos soldados?
Olá Pedro,
Corrigimos a imagem para incluir a chave.
Abraços!
Vinícius – Equipe MakerHero
Olá Pedro,
Pode ser encaixado no mesmo terminal e apertado junto, não precisa soldar.
Abraços!
Vinícius – Equipe MakerHero
No caso o botão liga e desliga está ligado no que?
Ola. No caso da chave liga-desliga é conectada ao que?
Olá Vitor,
Corrigimos a imagem para incluir a chave.
Abraços!
Vinícius – Equipe MakerHero
Olá, o código funciona para 4 motores também?
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
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?
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
Quando ligo o Arduino e a ponte h o motor fica ligado indefinidamente. Seria um erro de código ou de jumper ?
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
Boa tarde. Não consegui entender qual humor devo tirar da ponte
Jumper*
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?
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
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 ?
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
Boa noite, por favor ao de consigo todos os itens do carrinho de controle para comprar? Menos o arduino Uno que já tenho.
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
gostaria de saber qual simulador de Arduino e utilizado nessa apresentação?????
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
Bom dia.
Não tá faltando a biblioteca pro módulo bluetooth?
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
Você pode me ajudar a corrigir esse erro?
“Stop” was not declared in this scope
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
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?
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 ?
Olá Evandro,
Estou verificando a situação do HC-05 conforme conversamos via telefone.
Abraços!
Vinícius – Equipe MakerHero
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.
Olá Evandro,
Estamos seguindo a avaliação por e-mail.
Abraços!
Vinícius – Equipe MakerHero
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.
Bom dia Lucas.
Favor entre em contato conosco no Whatsapp (48) 3307-3495 para tratarmos sobre isso.
Att.
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
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 ?
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
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
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
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);
}
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
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
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?
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