En este tuto se busca establecer una comunicación bidireccional entre un arduino y una pc usando bluetooth.
Se requiere:
* Dongle usb:
* Arduino + modulo bluetooth (Aqui uso el HC-05)
* Debe tener instalado
bluez y
moserial. Si usa fedora puede instalarlo con:
yum install -y blue* moserial*
Vamos a hacer que el Arduino prenda y apague un led según se le indique.
La conexión debe queda así:
Led ----> Pin 13 Arduino
Bluetootx Tx ----> Arduino Tx
Bluetootx Rx ----> Arduino Rx
Bluetootx Vcc----> Arduino 5v
Paso 1. Cargar el sketch al arduino:
Nota: Desconecta el Rx del bluetooth antes de cargar el sketch o te dará problemas en la carga
/** Por Hector Oliveros **/
char inByte;
int LED = 13; // LED on pin 13
void setup() {
// El baud rate debe ser el mismo que en el monitor serial y
// que el mobulo bluetooth.
// para cambiar el baud rate debe entrar en modo AT
Serial.begin(9600);
}
void loop() {}
// Se activa cuando se detecta escritura en el puerto serial
void serialEvent() {
while (Serial.available()) {
inByte = Serial.read();
// Si detecta el caracter '0' entonces apaga el led
if( inByte == '0' ){
digitalWrite(LED, LOW);
Serial.println("LOW");
}
// Si detecta el caracter '1' entonces enciende el led
if( inByte == '1' ){
digitalWrite(LED, HIGH);
Serial.println("HIGH");
}
}
}
Puedes descargar el sketch desde aqui:
Luego de realizada la carga debes volver a conectar el Rx del bluetooth al arduino.
Paso 2: Configurar la PC.
Conecta el dongle usb al equipo.
- Para saber la mac del modulo bluetooth ejecuta:
hcitool scan
- Luego para asociarse al modulo sustituye y ejecuta:
rfcomm connect 0 MAC_DEL_MODULO
donde MAC_DEL_MODULO es la mac del modulo que obtuviste con hcitool.
- Le va a pedir el pin: En el hc-05 es
1234
- Si todo va bien debería mostrar lo siguiente:
Paso 3: Comunicarse con el Arduino:
- Abre moserial y ve a configuración de puerto
- Allí coloca esta configuración: Desmarca imprimir datos recibidos
- Luego se conecta:
- Y prueba intentando prender el led:
Listo
Notas: Cuando quieras cargar un sketch al arduino desconecta el rx del módulo bluetooth, Puesto que te va a dar fallas.
Probado en Fedora x86_64
Links de interés :
http://letsmakerobots.com/node/11178
http://www.flickr.com/photos/ricardo_ferreira/4225911933/