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