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! 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!);
- Uma placa compatível Arduino Uno;
- 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 Compatível 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. Como estamos alimentando direto pelo Arduino, a partir de um conjunto de pilhas é necessário remover o jumper da ponte H.
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. No exemplo de hoje, o programa para o nosso carrinho foi desenvolvido pelo Vishal Soni e o código original pode ser baixado sem dificuldades. Dito isso, vamos à gravação! Abra a IDE do Arduino e conecte a placa colocando o código a seguir:
#include <AFMotor.h> AF_DCMotor motor1(1); AF_DCMotor motor2(2); char bt='S'; void setup() { Serial.begin(38400); motor1.setSpeed(255); motor2.setSpeed(255); Stop(); } void loop() { bt=Serial.read(); if(bt=='F') { forward(); } if(bt=='B') { backward(); } if(bt=='L') { left(); } if(bt=='R') { right(); } if(bt=='S') { Stop(); } } void forward() { motor1.run(FORWARD); motor2.run(FORWARD); } void backward() { motor1.run(BACKWARD); motor2.run(BACKWARD); } void left() { motor1.run(FORWARD); motor2.run(FORWARD); } void right() { motor1.run(BACKWARD); motor2.run(BACKWARD); } void Stop() { motor1.run(RELEASE); motor2.run(RELEASE); }
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 Filipe Flop!
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.filipeflop.com/blog/motor-dc-arduino-ponte-h-l298n/
Abraços!
Vinícius – Equipe FilipeFlop
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 FilipeFlop
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.filipeflop.com/blog/construa-seu-robo-que-desvia-de-obstaculos-com-arduino/
Abraços!
Vinícius – Equipe FilipeFlop
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 FilipeFlop
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 FilipeFlop
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 FilipeFlop
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 FilipeFlop
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 FilipeFlop
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 FilipeFlop
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 FilipeFlop
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 FilipeFlop
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 FilipeFlop
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 FilipeFlop