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 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! Read the full article












