Controle de um robô através de um celular (acelerômetro)

Bom dia galera, sou novo aqui no Laboratório de Garagem e preciso da ajuda de voces. Sou muito leigo em programação de Arduino ainda e preciso fazer uma programação para controlar um robô (carrinho) através das variações de inclinação de um celular (acelerômetro) por Bluetooth  para um projeto de TCC.

Já tenho o Arduino Uno e o Modulo Bluetooth  e para realizar a comunicação com o celular vou utilizar o aplicativo Amarino (próprio para leitura do acelerômetro e comunicação entre Android e Arduino), porem como disse anteriormente, sou leigo quando o assunto eh programação de Arduino, nunca fiz isso antes, e um amigo q iria me ajudar esta enrolado com o TCC dele e não terá tempo pra isso, mas disse q era uma programação bem simples.

o robô eh um carrinho 4x4 com 2 motores DC de 5v, por ser 4x4 as rodas dianteiras não esterçam, sendo q o motor 1 é responsável pelo conjunto de rodas da esquerda e o motor 2 do conjunto de rodas da direita. Sua movimentação funciona da seguinte forma:

andar p/ frente - motor 1 e motor 2 para frente (conjunto de rodas da esquerda e da direita para frente)

andar p/ traz - motor 1 e motor 2 para traz (conjunto de rodas da esquerda e da direita para traz)

curva p/ frente à direita - motor 1 para frente e motor 2 parado para curva aberta e motor 1 para frente e motor 2 para traz para curva fexada (gira no próprio eixo)

curva p/ frente à esquenta - motor 1 parado e motor 2 para frente para curva aberta e motor 1 para traz e motor 2 para frente para curva fexada (gira no próprio eixo)

curva p/ traz à direita - motor 1 para traz e motor 2 parado para curva aberta e motor 1 para traz e motor 2 para frente para curva fexada (gira no próprio eixo)

curva p/ traz à esquerda - motor 1 parado e motor 2 para traz para curva aberta e motor 1 para frente e motor 2 para traz para curva fechada (gira no próprio eixo)

não tem necessidade de fazer uma programação para ele executar as curvas aberta e as fexadas, só fazendo as curvas abertas ja esta de bom tamanho.

a programação q eu gostaria de fazer era:

inclinar o celular para frete - anda para frente

inclinar o celular para traz - anda para traz

inclinar o celular para frente e pra direita - curva a direita

inclinar o celular para frente e pra esquerda - curva a esquerda

inclinar o celular para traz e para direita - curva para direita (indo pra traz)

inclinar o celular para traz e para esquerda - curva para esquerda (indo pra traz)

Bom... é isso, sera que alguém poderia me ajudar?

Desde já agradeço,

Abraços.

OBS: segue em anexo o chassi do robo, para melhor entendimento.

Exibições: 2255

Anexos

Responder esta

Respostas a este tópico

Ola sou novo aqui, mais meu TCC e igualzinho o seu kkkk...

Estou conseguindo desenvolve-lo, ja cheguei no final, mais estou tendo dificuldades em configurar o eixo Y do acelerometro com o motor que vira pra direita e esquerda...

Nao e um projeto dificil, gastei pouco tempo para faze-lo , e ainda nao esta pronto :P

se quiser trocar uma ideia meu facebook:http://www.facebook.com/diogo.medeiros.359

abrç.

Bom Dia 

Diogo estou com a mesma dificuldade poderia me ajudar com o codigo para este mesmo tcc pois é o mesmo que estou fazendo.

Opá vamos desenvolver isso ai amigo, to precisando do mesmo projeto mais preciso acionar reles em vez de motores!

Seria:

Frente= rele1

Traz= rele2

Esquerda= rele3

Direita= rele4

iae galera oque vocês trem ai?

Bom dia 

poderia me dar uma ajuda com meu codigo pois estou com o mesmo problema no meu tcc.

isso e facil,se vc usar esse app no celular eu te passo o codigo pro arduino.

O app;https://play.google.com/store/apps/details?id=braulio.calle.bluetoo...

Muito obrigado.
fico muito grato se me enviar o codigo arduino.
poderia mandar em meu e-mail
rudney.rodrigues@redetv.com.br

Pronto mandei la

int motor1Pin1 = 3; // pin 2 on L293D IC
int motor1Pin2 = 4; // pin 7 on L293D IC
int enable1Pin = 6; // pin 1 on L293D IC
int motor2Pin1 = 8; // pin 10 on L293D IC
int motor2Pin2 = 9; // pin 15 on L293D IC
int enable2Pin = 11; // pin 9 on L293D IC
int state;
int flag=0;       
int stateStop=0;
void setup() {
    // sets the pins as outputs:
    pinMode(motor1Pin1, OUTPUT);
    pinMode(motor1Pin2, OUTPUT);
    pinMode(enable1Pin, OUTPUT);
    pinMode(motor2Pin1, OUTPUT);
    pinMode(motor2Pin2, OUTPUT);
    pinMode(enable2Pin, OUTPUT);
    // sets enable1Pin and enable2Pin high so that motor can turn on:
    digitalWrite(enable1Pin, HIGH);
    digitalWrite(enable2Pin, HIGH);
    // initialize serial communication at 9600 bits per second:
    Serial.begin(9600);
}
void loop() {
    //if some date is sent, reads it and saves in state
    if(Serial.available() > 0){     
      state = Serial.read();   
      flag=0;
    }   
    // if the state is 'F' the DC motor will go forward
    if (state == 'F') {
        digitalWrite(motor1Pin1, HIGH);
        digitalWrite(motor1Pin2, LOW); 
        digitalWrite(motor2Pin1, LOW);
        digitalWrite(motor2Pin2, HIGH);
        if(flag == 0){
          Serial.println("Frente!");
          flag=1;
        }
    }
    
    // if the state is 'L' the motor will turn left
    else if (state == 'L') {
        digitalWrite(motor1Pin1, HIGH); 
        digitalWrite(motor1Pin2, LOW); 
        digitalWrite(motor2Pin1, HIGH);
        digitalWrite(motor2Pin2, LOW);
        if(flag == 0){
          Serial.println("Esquerda");
          flag=1;
        }
        delay(1500);
        state=3;
        stateStop=1;
    }
    // if the state is 'P' the motor will Stop
    else if (state == 'P' || stateStop == 1) {
        digitalWrite(motor1Pin1, LOW); 
        digitalWrite(motor1Pin2, LOW); 
        digitalWrite(motor2Pin1, LOW);
        digitalWrite(motor2Pin2, LOW);
        if(flag == 0){
          Serial.println("Pare!");
          flag=1;
        }
        stateStop=0;
    }
    // if the state is 'R' the motor will turn right
    else if (state == 'R') {
        digitalWrite(motor1Pin1, LOW); 
        digitalWrite(motor1Pin2, HIGH); 
        digitalWrite(motor2Pin1, LOW);
        digitalWrite(motor2Pin2, HIGH);
        if(flag == 0){
          Serial.println("Direita");
          flag=1;
        }
        delay(1500);
        state=3;
        stateStop=1;
    }
    // if the state is 'B' the motor will Reverse
    else if (state == 'B') {
        digitalWrite(motor1Pin1, LOW); 
        digitalWrite(motor1Pin2, HIGH);
        digitalWrite(motor2Pin1, HIGH);
        digitalWrite(motor2Pin2, LOW);
        if(flag == 0){
          Serial.println("Atras!");
          flag=1;
        }
    }
    //For debugging purpose
    //Serial.println(state);
}

Boa Tarde,

Você tem o esquema de montagem do prototipo?

Boa tarde, 

olha um projeto pronto, controla leds pelo acelerômetro, basta adaptar no que precisa.

Incluindo aplicativo para o celular com Android.

Abcs

Carlos Hernani – Negócios Imobiliários

Rua Sorocaba, 146 – Centro - Itu /SP

Fone 011 9 9848 1829 ou 011 2429 1829

CRECI: 138956

Site: www.carloshernani.com.br

Anexos

Boa tarde não consigo abrir este arquivo.

poderia enviar outro.

Att;

Baixa o Winrar amigão. 

http://www.baixaki.com.br/download/winrar.htm

baixe ele, é sempre bom ter no computador.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço