Material Utilizado:
1x Arduino
1x Dual Motor Driver
1x Caixa de Engrenagem com 2 Motores
1x Sensor de proximidade de curto alcance
1x Suporte para 4 pilhas AA com chave
1x Smartphone Android 2.3 ou superior (utilizamos um Galaxy GT-i5510)
1x Caixa do Laboratório de Garagem
1x Bateria 9V
Alguns parafusos M3 ou Fita dupla face esponjosa
1. Funcionamento
1.1) Aplicativo Android (Smartphone)O aplicativo utilizado neste tutorial pode ser encontrado neste link. Com este aplicativo teremos acesso em tempo real à câmera de seu smartphone, onde a mesma será acessada via rede através de seu navegador.
1.2) Hardware
Foi utilizado a caixa do laboratório de garagem para armazenar todos os componentes do carrinho, essa plataforma robótica montada em papelão, contém:
Arduino UNO: Recebe os dados do sensor de proximidade, trata os valores aferidos pelo sensor, e se algo estiver próximo ao robô, executa o desvio deste objeto, através do driver de motores do Dual Motor Shield. Enquanto não for detectado algum objeto próximo ao robô, o Arduino fará os acionamentos dos motores para que ambos faça, o robô movimentar-se para frente.
Sensor de Proximidade de Curto Alcance: Fica responsável por aferir através de seus LED a proximidade do robô para objetos, e e entrada os valores aferidos por ele ao Arduino.
Caixa de Engrenagem com 2 Motores: Esta caixa de engrenagens pode comandar dois eixos de forma independente para frente ou para trás. A caixa de redução também pode ser configurada para duas relações diferentes de redução (rápido ou lento). Em nossa demonstração foi utilizada a configuração lenta.
Dual Motor Shield: É um Shield para Arduino, onde possibilita definir através de um comando de sua biblioteca, o sentido e velocidade de até 2 motores DC.
Suporte para 4 pilhas AA: É responsável por alimentar todos os componentes ligado ao Arduino.
Smartphone (Galaxy GT-i5510): Em nosso tutorial foi utiliza o Galaxy GT-i5510, mas nada impede de você utilizado qualquer outro modelo de smartphone, basta que o mesmo seja compatível com o aplicativo OCX DroidDesktop 2
2. Montagem
Abra a caixa do Lab de Garagem, foram feitas marcações somente para auxiliar na montagem.Centralize a caixa de engrenagem no centro da parte 1 da caixa
Marque os furos ao lado da caixa de engrenagem para prendê-la.
Fure a nas marcações.
Após furar as marcações, marque a altura para as rodas na parte 2 da caixa.
Fure a marcação da altura das rodas
Faça também uma marcação de altura na parte 4.
Prenda a caixa de engrenagem, utilizando parafuso e porca M3
Verifique se os posicionamentos das rodas(ajuste caso necessário) e após isso retire as rodas para prosseguir com a montagem
Posicione o seu smartphone dentro da caixa.
Faça o rasgo para a câmera.
Marque um espaçamento do seu smartphone para ser colocado as esferas deslizantes
Faça as marcações, fure e prenda as esferas deslizantes.
Faça o corte para as esferas deslizantes na parte 5 da caixa.
Posicione o Arduino, faça suas marcações e prenda-o a caixa
Marque o conector USB do Arduino e corte a marcação.
Posicione o Sensor de Proximidade abaixo da marcação da câmera de seu smartphone.
Prenda o suporte para 4 pilhas para alimentar os motores a caixa.
Faça as conexões dos motores e também a conexão das baterias nos headers do Dual Motor Shield.
Altere a chave para ON do suporte de pilhas.
Retire o jumper Vin_Mot do Dual motor e conecte uma bateria 9V aos pinos VIN e GND, você terá 10 segundos para fechar a caixa e colocar as rodas no Boxbot.
3. Sketch
#include <DualMotor.h> //Inclui a biblioteca DualMotor.hDualMotor dualmotor; //Instância a DualMotor
int sensor; //Cria uma variável char para armazenamento dos caraceteres lidos
void setup()
{
Serial.begin(9600); //Inicia a Serial com um Baud Rate de 9600bps
dualmotor.M1parar(); //Para o motor1
dualmotor.M2parar(); //Para o motor2
}
void loop()
{
sensor = 0; //Zera a variável sensor para ser feita um nova leitura
for(int i=0;i<10;i++) sensor = sensor+ analogRead(A0); //Executa 10 leitura do sensor
sensor = sensor/10; //Tira a média dos 10 valores obtido pelo sensor
Serial.println(sensor); //Imprime o a média obtida na variável sensor
if(sensor<300) //Se o valor obtido pelo sensor for maior menor que 300
{
dualmotor.M1move(255,0); //Move o moto 1 em sentido anti-horário
dualmotor.M2move(255,0); //Move o moto 2 em sentido anti-horário
}
else //Senão, executa o desvio
{
//Para os motores
dualmotor.M1parar(); //Para o motor 1
dualmotor.M2parar(); //Para o motor 2
delay(250);
//===============
//Gira o robô para a direita
dualmotor.M1move(255,1); //Move o moto 1 em sentido horário
dualmotor.M2move(255,0); //Move o moto 2 em sentido anti-horário
delay(1500);
//================
}
}
Postar um comentário
0 comentários