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ásA 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