Bluetooth
Configuració
Connexió Bluetooth i Snap4Arduino
En aquest apartat veurem com:
- Canviar el nom del mòdul per poder-lo identificar amb facilitat.
- Canviar el codi d'aparellament
- Establir la velocitat de comunicació del mòdul bluetooth a 57600 bps.
Configuració
Per poder establir comunicació entre Snap4Arduino i la placa a través d'una connexió bluetooth cal configurar el mòdul de comunicació per tal que treballi a la velocitat que requereix Firmata. La configuració del mòdul bluetooth es fa amb comandes AT.
Mòdul bluetooth HC-06
El mòdul bluetooth HC-06 ve configurat de fàbrica com a esclau i no es pot cambiar. Hi ha altres paràmetres que sí es poden modificar amb comandes AT. Els valors predeterminats de fàbrica són:
- Codi d'aparellament: 1234
- Velocitat de comunicació: 9600 bps
- Nom del dispositiu: linvor o HC-06 (n'hi poden haver d'altres segons el fabricant)
Aquest mòdul té dos estats de treball:
- Connectat.
Adopta aquest mode de funcionament quan estableix connexió amb un altre dispositiu bluetooth:- El led vermell deixa de fer intermitència i queda encés permanentment.
- Totes les dades que rep pel pin marcat com a RXD les envia a l'altre dispositiu bluetooth connectat. Les dades rebudes per bluetooth es dirigeixen al pin serigrafiat amb TXD.
- Ignora les comandes AT.
- Mode AT o Desconnectat.
Adopta aquest estat quan se l'alimenta i no està connectat per bluetooth amb cap altre dispositiu:- El led del mòdul parpelleja.
- Interpreta les comandes AT.
Esquema de connexions per a l'HC-06
Per poder-los fer servir amb Snap4Arduino cal establir la velocitat de comunicació del mòdul a 57600 bps.
Aquest és el programa que cal carregar a la placa Arduino per configurar el mòdul bluetooth:
- Executeu l'IDE d'Arduino i seleccioneu el tipus de la placa i el port on està connectada des del menú "Eines", opcions "Tarja" i "Port".
- Creeu un nou sketch ("Fitxer→Nou"), si cal, i enganxeu el text del programa o obriu-lo des del fitxer .ino.
- Envieu el programa al microcontrolador de l'Arduino (menú "Sketch→Puja") o feu clic al botó puja.
#include <SoftwareSerial.h> // Llibreria SoftwareSerial SoftwareSerial bluetooth(10,11); // pins RX i TX (invertir el connexionat) void setup() { bluetooth.begin(9600); // Inicialitzem el port bluetooth creat Serial.begin(9600); // Inicialitzem el port sèrie Serial.println("A punt per enviar/rebre comandes AT"); } void loop() { if(bluetooth.available()) // Si arriba una dada pel port bluetooth s'envia al monitor sèrie { Serial.write(bluetooth.read()); } if(Serial.available()) // Si arriba una dada pel monitor sèrie s'envia al port bluetooth { bluetooth.write(Serial.read()); } }
Bàsicament el que fa és llegir l'entrada del monitor sèrie de l'IDE d'Arduino, on s'escriuran les comandes AT, i enviar-ho al port RXD del mòdul bluetooth. També escriu al monitor sèrie la resposta generada per l'execució de la comanda AT. S'ha considerat una velocitat de comunicació del mòdul 9600 bps (un valor de fàbrica usual):
bluetooth.begin(9600);
Si es volgués reconfigurar un mòdul que ja estava preparat per comunicar-se amb Firmata caldria canviar el valor de 9600 per 57600. Si es desconeix el paràmetre caldrà provar amb diferents valors fins a trobar el correcte.
Enviant comandes AT
Un cop carregat el programa a la placa Arduino obriu el monitor sèrie per enviar les comandes AT de configuració.
Per establir en nom del mòdul escriviu a l'àrea de text "AT+NAME" seguit del nom que vulgueu donar al vostre mòdul. Premeu "Intro" per enviar la comanda:
Si tot ha anat correctament, a l'àrea de missatges del monitor sèrie es mostrarà el text "OKsetname":
Per establir la velocitat de comunicació del mòdul escriviu a l'àrea de text "AT+BAUD7" per a 57600 bps i premeu "Intro" per enviar la comanda.
Si tot ha anat bé es mostrarà el missatge "OK57600".
Per canviar la contrasenya d'aparellament la comanda és: AT+PINxxxx on xxxx és qualsevol combinació de 4 dígits (per defecte aquest valor és 1234).
El següent vídeo mostra el procés de configuració:
Algunes comandes AT | |||
---|---|---|---|
Comanda | Descripció | Opcions | Resposta |
AT | Provar la comunicació UART | · | Ok |
AT+VERSION | Retorna la versió del firmware del mòdul | · | OklinvorV1.x |
AT+NAMEnnnn | Estableix el nom del mòdul | Qualsevol combinació alfanumèrica (p.e. AT+NAMEBT01; màx.20 caràcters) | OKsetname |
AT+BAUDx | Configura la velocitat de comunicació del mòdul. La comanda AT+BAUD7 l'estableix a 57600 bps | x=1 → 1200 x=2 → 2400 x=3 → 4800 x=4 → 9600 (per defecte) x=5 → 19200 x=6 → 38400 x=7 → 57600 x=8 → 115200 x=9 → 230400 | OK57600 |
AT+PINxxxx | Estableix la contrasenya d'emparellament del mòdul | Qualsevol nombre de 4 dígits (1234 per defecte) | OksetPIN |
Connexió Bluetooth i Snap4Arduino
La manera de connectar amb bluetooth varia en funció del sistema operatiu que feu servir. Tots els sistemes tenen uns passos en comú:
- Cercar- Heu de trobar el dispositiu amb el que es vulgui connectar. La cerca pot mostrar inicialment l'adreça MAC dels mòduls però també el nom que se li hagi assignat a l’hora de configurar-lo (per defecte és HC-06).
- Aparellar- Segurament us caldrà introduir la contrasenya 1234 (en cas de no haver-la canviat).
- Connetar- En sistemes basats en Windows® es crearan un parell de ports COM. Podeu saber quin s'associa al mòdul bluetooth aparellat a través de l'administrador de dispositius. Quan executeu l'Snap4Arduino us caldrà seleccionar el port COM adient per establir la connexió. En sistemes Linux cal crear un port sèrie abans d'obrir l'Snap4Arduino. Una vegada realitzada la connexió el LED del mòdul deixa de parpellejar.
Si treballeu amb Linux us recomanem el programa blueman per a gestionar les connexions.

sudo systemctl disable ModemManager.service