Indice

Bluetooth

Esperimenti con lo shield di Futura Elettronica.

Riferimenti

HW

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:

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:

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
1)
confrontando la configurazione dei due moduli testati non si rilevano differenze; l'ipotesi è che il primo modulo sia difettoso
2)
NB C'è un timeout di 60 secondi dal power-on per entrare in command mode (eliminabile)