
En esta entrada mostramos como conectar un robot Sanduino A01 (basado en Arduino UNO) con módulo bluetooth a un teléfono Android, utilizando una aplicación creada por nosotros mismos.
Para esto necesitaremos el programa MIT App Inventor 2
Descarga o Aplicación en Linea
Y la libreria SoftwareSerial para Arduino
Conexión del módulo Bluetooth a la placa Arduino
#include <SoftwareSerial.h> int estado=0; int multi=0; #define RxD 10 #define TxD 11 SoftwareSerial BTSerial(RxD, TxD); void setup(){ Serial.begin(9600); BTSerial.flush(); delay(500); BTSerial.begin(9600); //Insertar aquí } void loop(){ if(BTSerial.available()>0){ estado = BTSerial.read(); Serial.write(estado); Serial.print("\r\n"); //Insertar aquí } }
Para controlar el robot Sanduino
#include <SoftwareSerial.h> int tRetrocede = 500; int tAvanza = 50; int tAlto = 40; int tGiro = 70; int estado=0; int multi=0; #define RxD 10 #define TxD 11 SoftwareSerial BTSerial(RxD, TxD); void setup(){ Serial.begin(9600); BTSerial.flush(); delay(500); BTSerial.begin(9600); pinMode(6,OUTPUT); pinMode(7,OUTPUT); pinMode(8,OUTPUT); pinMode(9,OUTPUT); } void loop(){ if(BTSerial.available()>0){ estado = BTSerial.read(); Serial.write(estado); Serial.print("\r\n"); digitalWrite(9,HIGH); } if (estado == '1') { avanza(100); Serial.print("Avanza"); } if (estado == '2') { derecha(100); Serial.print("Derecha"); } if(estado == '3') { retrocede(100); Serial.print("Retrocede"); } if(estado == '4') { izquierda(100); Serial.print("Izquierda"); } if(estado == '5') { alto(0); Serial.print("Alto"); } } void alto(int ms) { digitalWrite(6,LOW); digitalWrite(7,LOW); digitalWrite(8,LOW); digitalWrite(9,LOW); delay(ms); } void derecha (int ms) { digitalWrite(6,HIGH); digitalWrite(7,LOW); digitalWrite(8,LOW); digitalWrite(9,HIGH); delay(ms); } void izquierda (int ms) { digitalWrite (6, LOW); digitalWrite (7, HIGH); digitalWrite (8, HIGH); digitalWrite (9, LOW); delay (ms); } void avanza (int ms) { digitalWrite (6, HIGH); digitalWrite (7, LOW); digitalWrite (8, HIGH); digitalWrite (9, LOW); delay (ms); } void retrocede (int ms) { digitalWrite(6,LOW); digitalWrite(7,HIGH); digitalWrite(8,LOW); digitalWrite(9,HIGH); delay(ms); }
Las funciones para mover el robot son las mismas funciones básicas describas en la entrada Robot Sanduino Control con funciones.