0

Arduino: Como controlar um Robot com o Telemóvel? [Video]

Como fazer um Carrinho Robot com Arduino? Como controlar um Robot com o telemóvel?

Surgem muitas vezes a dúvida como controlar um Carro Robot feito com Arduino mas controlado através do nosso Smartphone?

E é isso que hoje vamos ver com todos os detalhes. Neste caso ainda vamos mais longe, tendo em conta que o nosso carrinho irá ter:

  • Modo Automático: Onde ele autonomamente explora ao seu redor, desviando-se dos obstáculos;
  • Modo Comando: Onde através de uma aplicação para Android, é possível comandar os seus movimentos;
  • Modo Comando Giroscópio: Onde através da inclinação do seu telemóvel, poderá controlar os movimentos.

O controlo sem fios será realizado através de um modulo Bluetooth, e o Bluetooth do Smartphone.

 

 

Para ajudar a simplificar este processo, vamos dividir o circuito de montagem em 3 fases:

 

# Esquema de montagem Circuito Bluetooth:

# Esquema de montagem Circuito Motor:

 

# Esquema de montagem Sensor Distância:

 

 

# Código Utilizado no Arduino IDE:

Primeiro antes de programarmos podemos já carregar s biblioteca necessária para este projeto, a mesma pode ser descarregada no link: Ultrasonic

Agora vamos ao código, em que criamos 2 modos de funcionamento selecionaveis através de um interruptor ligado à porta 12 do nosso Arduino:

 

#include <Ultrasonic.h>

Ultrasonic ultrasonic(2,3); // (Trig PIN,Echo PIN)

const int motorPin1 = 9; // Pin 14 of L293
const int motorPin2 = 10; // Pin 10 of L293

const int motorPin3 = 6; // Pin 7 of L293
const int motorPin4 = 5;

int modo = 12;
int modoControlo;

void setup() {
pinMode(motorPin1, OUTPUT);
pinMode(motorPin2, OUTPUT);
pinMode(motorPin3, OUTPUT);
pinMode(motorPin4, OUTPUT);

Serial.begin(9600);

}

void loop() {
modoControlo = digitalRead(modo); //interruptor para selecionar o modo

if (modoControlo == HIGH){
controloAutomato();
}
else{
controloBluetooth();
}
}

void controloAutomato(){ // Funcao automatico quando selecionada, o robot desvia-se sozinho dos obstaculos

if( ultrasonic.Ranging(CM) >= 8){
analogWrite(motorPin1, 0 );
analogWrite(motorPin2, 150);
analogWrite(motorPin3, 160);
analogWrite(motorPin4, 0);
}
else{
//Recuar durante 900 ms
analogWrite(motorPin1, 155);
analogWrite(motorPin2, 0);
analogWrite(motorPin3, 0);
analogWrite(motorPin4, 160);
delay(900);

//Virar para a direita durante 700ms
analogWrite(motorPin1, 150);
analogWrite(motorPin2, 0);
analogWrite(motorPin3, 160);
analogWrite(motorPin4, 0);
Serial.println("Esquerda");
delay(500);

}
}

void controloBluetooth(){ // Funcao manual ativada, ele aguarda comandos enviados pelo smartphone para se movimentar
if(Serial.available() > 0)
{
char data;
data = Serial.read();
Serial.write(Serial.read());

analogWrite(motorPin1, 0);
analogWrite(motorPin2, 0);
analogWrite(motorPin3, 0);
analogWrite(motorPin4, 0);


switch (data)
{
case 'F': //FORWARD
analogWrite(motorPin1, 0);
analogWrite(motorPin2, 150);
analogWrite(motorPin3, 160);
analogWrite(motorPin4, 0);
break;
case 'B': //REVERSE
analogWrite(motorPin1, 150);
analogWrite(motorPin2, 0);
analogWrite(motorPin3, 0);
analogWrite(motorPin4, 160);
break;
case 'L': //FORWARD LEFT
analogWrite(motorPin1, 0);
analogWrite(motorPin2, 150);
analogWrite(motorPin3, 0);
analogWrite(motorPin4, 0);
break;
case 'R': //FORWARD RIGHT
analogWrite(motorPin1, 0);
analogWrite(motorPin2, 0);
analogWrite(motorPin3, 160);
analogWrite(motorPin4, 0);
break;

default: //se o bluetooth não receber informação, ele permanesse imovel por razoes de segurança.
analogWrite(motorPin1, 0);
analogWrite(motorPin2, 0);
analogWrite(motorPin3, 0);
analogWrite(motorPin4, 0);
}
}
}

 

# Lista de Material:

Arduino Uno (poderá ser outro como o Arduino Nano ou Arduino Mega)

Estrutura Robot Vermelha + Motores + Rodas + Roda Livre

Driver L298N para controlo de motores

Caixas e Pilhas AA e 9V

Modulo Bluetooth HC-05

Sensor de Distancia HC-SR04 

Cabos de ligação

Mini Breadboard

Mini Interruptor (para selecionar Modo Automático ou Manual)

 

Todos os produtos foram adquiridos na loja de eletrónica e robótica ElectroFun.

# Aplicação para Android:

Podem ver aqui as diversas opções do APP:

Para facilitar o trabalho podem fazer download aqui: BT_Robot_RSDP.apk

Nota: poderão ter quer ativar no vosso telemóvel a opção “aceitar instalar aplicações de origem desconhecida”, para conseguirem instalar esta app.

 

Quem pretender desenvolver de raíz a aplicação para este tipo de prtojetos, deixamos abaixo umas dicas, na programação por blocos:

# Dúvidas:

Poderão esclarecer as vossas dúvidas não só destes projeto, mas todas as outras no nosso forum ou Grupo Facebook dedicado aos nossos leitores:

http://www.arduinoportugal.pt/forums/

https://www.facebook.com/groups/arduinoportugal/

 

Subscreva o nosso canal Arduino Portugal do Youtube! E fique a saber qual é o próximo projeto!

Comments

Comentários

ArduinoPortugal.pt

Deixar uma resposta