
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.