Olá garagistas, no tutorial de hoje irei mostrar como controlar o Zumo a distância utilizando o acelerômetro do seu celular Android via Bluetooth com o módulo HC-06 e o Garagino. Esse será um tutorial muito divertido.
Material Utilizado
1x Cabo USB Mini B - 1,80 Metros
1x Zumo Chassis Kit (No Motors)
1x Jumper Wires Premium 6 F/F - Pacote com 10 unidades
2x Micro motor com caixa de redução de metal 75:1
4x pilhas AA
1x Celular com Android
1. Módulo Bluetooth HC-06
Figura 1- Módulo Bluetooth HC-06
Com este módulo você pode inserir uma comunicação bluetooth no seu Arduino de uma maneira fácil e acessível. Nesta placa tem um regulador de tensão onde você poderá alimentar com 3.3 a 5v, bem como um LED que indica se o módulo está pareado com outro dispositivo.
Características
2. Conhecimentos Necessários
Para o total entendimento deste tutorial, é aconselhável anteriormente executar os tutoriais abaixo:
Como acender leds pelo Serial Monitor do Arduino
Como utilizar o Dual Motor Shield
Para entendimento sobre a montagem e funcionamento do carrinho Zumo acesse os tutoriais abaixo:
Tutorial: Seguidor de linha com plataforma Zumo e Garagino
Tutorial: Seguidor de linha com Dual Motor Garagino que remove obstáculos
Se você procura uma opção mais completa para o carrinho Zumo acesse o link abaixo:
3. Montagem
Nos links acima você pode se aprofundar mais em relação ao Zumo e o Dual Motor Garagino tirando todas as suas dúvidas, nesse tutorial iremos focar no Módulo Bluetooth. Abaixo temos o Dual Motor Garagino, é o controlador do motor nele controlamos dois motores, o alimentamos com 4 pilhas AA, essas pilhas ficam no compartimento interno do Zumo. Essa placa é fixada na parte superior do zumo e acima dela é inserida o Garagino.
Figura 2- Dual Motor Garagino
Nas imagens abaixo temos o Garagino e o HC-06, a ligação é bem simples lembrando que é necessário a utilização de dois resistores de 10K ohm configurados como divisor de tensão para que não ocorra a queima do módulo, pois o regulador de tensão apenas alimenta o módulo.
Figura 3 - Esquema de ligação entre o Garagino e o HC-06
4. Funcionamento
Após parear o seu dispositivo Android com o Módulo Bluetooth HC-06 que esta no Zumo, é criado um link serial via comunicação bluetooth entre ambos. O Módulo Bluetooth HC-06 vai trabalhar em modo slave, enquanto o seu dispositivo Android irá enviar comandos para o acionamento dos motores, fazendo o Zumo se mover para frente, trás, direita, esquerda ou verticalmente. Você deve baixar essa biblioteca DualMotor.h para que o Dual motor Garagino funcione corretamente.
4.1) Aplicativo
Figura 4 - Arduino Bluetooth RC Car (Aplicativo)
Utilizaremos o aplicativo Arduino Bluetooth RC Car para controlar o Zumo. Ele é um aplicativo desenvolvido para Android, e possui uma interface gráfica para o envio de diversos comandos via bluetooth. Cada botão do aplicativo envia um caractere (letra) para o Arduino, através do link serial bluetooth. Neste tutorial utilizaremos apenas os comandos/botões para movimentar o Zumo.
Figura 5 - Tabela de movimentos e tela do aplicativo
Ele pode ser controlado tanto por pressionamento dos botões no touch do seu celular, como pelo seu movimento através do acelerômetro conforme pode ser visto na imagem abaixo.
5. Comandos AT
A configuração padrão do HC-06 é essa abaixo, podendo variar, pois alguns vem de fábrica testados e a informação presente nos mesmos ser diferentes dessas.
Slave
9600, N, 8, 1
Name linvor
Pincode 1234
Se no visor do seu terminal serial não estiver aparecendo nenhum caráter ou caracteres bagunçados é sinal de que seu Baud rate é diferente do que você definiu, então mude até ele apresentar a informação correta. Segue os comandos mais importantes para seu uso:
Teste de comando
Envia: AT
Recebe: OK
Alterar taxa de transmissão
Envia: AT+BAUD#
Recebe: OKbaud
1: 1200
2: 2400
3: 4800
4: 9600
5: 19200
6: 38400
7: 57600
8: 115200
Veja o exemplo abaixo:
Envia: AT+BAUD1
Recebe: OK1200
Nome do dispositivo
Envia: AT+NAMEname
Recebe: OKname
Veja o Exemplo abaixo:
Envia: AT+NAMEblue
Recebe: OKblue
Alterar código pin de segurança
Enviar: AT+PINxxxx
Receber: OKsetpin
Veja o Exemplo abaixo:
Envia: AT+PIN9999
Recebe: OKsetpin
6. Sketch de configuração
Essa primeira sketch é apenas para parametrização, você deverá abrir o monitor serial e digitar os comandos conforme suas funções descritos acima.
#include <SoftwareSerial.h>
int bluetoothTx = 3; // TX- do HC-06
int bluetoothRx = 2; // RX- do HC-06
SoftwareSerial bluetooth(bluetoothTx, bluetoothRx);
void setup()
{
Serial.begin(9600);
bluetooth.begin(9600); //Se não funcionar tente esses outros 57600/38400/115200
}
void loop()
{
if(bluetooth.available()) // If the bluetooth sent any characters
{
// Send any characters the bluetooth prints to the serial monitor
Serial.print((char)bluetooth.read());
}
if(Serial.available()) // If stuff was typed in the serial monitor
{
// Send any characters the Serial monitor prints to the bluetooth
bluetooth.print((char)Serial.read());
}
// and loop forever and ever!
}
7. Sketch
#include <SoftwareSerial.h>//Inclui a biblioteca SoftwareSerial
#include span style="color: #cc6600;">DualMotor.h> //Inclui a biblioteca DualMotor.h
int bluetoothTx = 3; //
int bluetoothRx = 2; //
SoftwareSerial bluetooth(bluetoothTx, bluetoothRx); //Cria a instância, informando os pinos de controle
DualMotor dualmotor; //Instância a DualMotor.h
void setup()
{
bluetooth.begin(9600); // De acordo com o que foi setado
}
void loop()
{
if(bluetooth.available()) // Se o bluetooth recebeu algum caracter
{
char letra = bluetooth.read();//Recebe caracter via Bluetooth
if(letra == 'F') //Se o caractere recebido for a letra 'F'
{
//Move o carrinho para frente
dualmotor.M1move(255,0);
dualmotor.M2move(255,0);
//==================
}
else if (letra == 'B') //Se o caractere recebido for a letra 'B'
{
//Move o carrinho para trás
dualmotor.M1move(255,1);
dualmotor.M2move(255,1);
//==================
}
else if(letra == 'R') //Se o caractere recebido for a letra 'R'
{
//Move o carrinho para direita
dualmotor.M1move(255,1);
dualmotor.M2parar();
//==================
}
else if (letra == 'L') //Se o caractere recebido for a letra 'L'
{
//Move o carrinho para esquerda
dualmotor.M1parar();
dualmotor.M2move(255,1);
//==================
}
else if(letra == 'S') //Se o caractere recebido for a letra 'S'
{
//Para o carrinho
dualmotor.M1parar();
dualmotor.M2parar();
//==================
}
else if(letra == 'G') //Se o caractere recebido for a letra 'G'
{
//Diagonal esquerda para frente
dualmotor.M1move(255,0);
dualmotor.M2move(128,0);
//==================
}
else if(letra == 'I') //Se o caractere recebido for a letra 'G'
{
//Diagonal esquerda para frente
dualmotor.M2move(255,0);
dualmotor.M1move(128,0);
//==================
}
else if(letra == 'J') //Se o caractere recebido for a letra 'G'
{
//Diagonal direita para trás
dualmotor.M2move(255,1);
dualmotor.M1move(128,1);
//==================
}
else if(letra == 'H') //Se o caractere recebido for a letra 'G'
{
//Diagonal esquerda para trás
dualmotor.M1move(255,1);
dualmotor.M2move(128,1);
//==================
}
}
}
Referências
http://labdegaragem.com/profiles/blogs/tutorial-controlando-a-relay-board-via-bluetooth-mate-prata
http://labdegaragem.com/profiles/blogs/tutorial-seguidor-de-linha-com-plataforma-zumo
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por
Você precisa ser um membro de Laboratorio de Garagem (arduino, eletrônica, robotica, hacking) para adicionar comentários!
Entrar em Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)