0

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.h

DualMotor 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