Indice
Bluetooth
Esperimenti con lo shield di Futura Elettronica.
Riferimenti
- datasheet del modulo RN-42
- guida utente del modulo
- tutorial di Sparkfun per un prodotto simile
HW
- scheda futura e descrizione (no regolatore, usa pin 0 e 1, 3 LED, meglio il prodotto di sparkfun, esiste anche una soluzione modulo+breakout compatibile con i nostri shield xbee)
- dip-switch (auto-associazione, factory reset, master mode, 9600 baud)
Primi test
UPDATE: il primo modulo (Serial Number 00066666228F) è difettoso lato Bluetooth1).
Lo shield funziona: il modulo si associa al cellulare ma viene riconosciuto come tastiera e non permette l'utilizzo di un terminale bluetooth su Android e con un applicazione Android (un terminale Bluetooth si inviano caratteri alla scheda Arduino.
Applicazioni testate:
- BT Simple Terminal, un terminale seriale
- Bluetooth serial controller, un'applicazione con bottoni personalizzabili
sketch di prova
// carattere ricevuto via bluetooth char val; void setup(){ // LED della scheda Arduino sul pin 13 pinMode(13, OUTPUT); // connessione BT Serial.begin(9600); } void loop(){ // se ci sono dati in ingresso if(Serial.available() > 0){ // leggi l'ultimo byte val = Serial.read(); } // se il carattere ricevuto è una x if (val == 'x'){ // accendi il LED digitalWrite(13, HIGH); } else{ // altrimenti spegni il LED digitalWrite(13, LOW); } // ritardo (superfluo?) per non saturare la connessione delay(10); }
Configurazione del modulo (command mode)
Non è necessaria una configurazione del modulo, è sufficiente impostare correttamente gli switch sullo shield (io ho usato Auto ON, Default OFF, Master OFF, Baudrate ON).
Volendo configurare/interrogare il modulo bisogna connettersi via seriale e passare da data mode a command mode. Nella modalità di funzionamento normale data mode il modulo instrada i dati tra Arduino e BT via seriale.
Per entrare in command mode e digitare i comandi dal monitor seriale del software Arduino bisogna utilizzare la connessione seriale “classica” tra Arduino e PC (pin D0 e D1) e una connessione seriale software verso il modulo (pin D2 e D3 per esempio). Questo non è possibile montando lo shield sulla scheda Arduino (RX e TX del modulo sono mappati sui pin D0 e D1), ma si può fare collegando le due schede con quattro cavi volanti:
- alimentazione: 3.3V e GND nei rispettivi pin
- seriale software: pin D2 e D3 collegati ai pin D0 e D1 dello shield
A questo punto caricare lo sketch dal tutorial Sparkfun che usa Arduino e il Serial Monitor. Dal serial monitor - con l'opzione nessun fine riga - si passa al command mode digitando tre volte $ seguito da invio 2). Dopo aver impostato l'opzione a capo (NL) è possibile digitare i comandi (vedi user guide) per interrogare e configurare il modulo. Si esce dal command mode con la sequenza ---
.
Configurazione standard
***Settings*** BTA=00066666266C BTName=RNBT-266C Baudrt(SW4)=9600 Mode =Slav Authen=1 PinCod=1234 Bonded=0 Rem=NONE SET ***ADVANCED Settings*** SrvName= SPP SrvClass=0000 DevClass=1F00 InqWindw=0100 PagWindw=0100 CfgTimer=255 StatuStr=NULL HidFlags=200 DTRtimer=8 KeySwapr=0 ***OTHER Settings*** Profile= SPP CfgChar= $ SniffEna=0 LowPower=0 TX Power=0 IOPorts= 0 IOValues=0 Sleeptmr=0 DebugMod=0 RoleSwch=0