Appunti su come configurare un HC-06

Più volte mi sono trovato a dover configurare un modulo HC-06 (economico ed efficiente dispositivo per comunicazioni seriali via Bluetooth) per le mie schede PicGoto ...
e tutte le volte non ricordavo uno o più passaggi della procedura per configurarlo correttamente. Allora mi sono detto che forse sarebbe stato meglio scrivermi qualche appunto, nel caso dovessi configurare l'ennesimo moduletto. Ho pensato al tempo stesso che magari potesse essere di aiuto a qualcuno ... e quindi ecco questa pagina di appunti web.

Per prima cosa diamo una occhiata alla 'lista della spesa'.

Hardware
  • un modulo HC-06 con relativa backboard (tipo questo), ovviamente
  • un modulo di conversione trasmissione dati USB-TTL (tipo questo, basato su chip PL2303HX)
  • 4 cavetti-jumper, possibilmente di colore diverso
Software
Una nota riguardo il PL2303. Se ne trovano a bizzeffe sulla baia ma, per lo meno per ciò che è capitato a me, sono quasi tutti dotati di un chip siglato HXA. Questa è una versione datata e non supportata su Windows7/8, a meno di utilizzare un workaround che trovai a suo tempo sul web, che consiste sostanzialmente nell'utilizzare un driver altrettanto datato. Dovreste trovare il topic facilmente su Internet. Se siete in possesso di un PL2303-HXD allora siete a cavallo ... anche con W7/8. Una valida, e più recente alternativa è il modulo USB-TTL CP2102, altrettanto economico ma che funziona bene anche sulle ultime versioni di Windows. Quest'ultimo si utilizza allo stesso modo del PL2303.

Il modulo USB-TTL, una volta installato con il relativo driver sul vostro PC, servirà da ponte di comunicazione tra computer (Teraterm) e modulo HC-06.
A questo punto procediamo a collegare tra loro i due moduli tramite i 4 cavetti colorati. 
Dei connettori che troviamo sul modulo USB-TTL ci interessano quelli siglati 5.0V, TXD, RXD e GND, mentre quelli dell'HC-06 sono quelli siglati  VCC, GND, TXD e RXD. L'accoppiamento dei connettori è piuttosto logico: VCC-5V, GND-GND, RXD-TXD (per entrambi i moduli).

Una volta inserito il modulo USB-TTL in una porta USB del nostro PC andiamo a curiosare nella finestra 'Gestione periferiche' di Windows (io ho un vecchio ma sempre valido laptop con WindowsXP ... a cui sono particolarmente affezionato).


Alla voce Porte COM dovremmo trovare il nostro modulo USB-TTL, apriamo la finestra delle proprietà e verifichiamo che il valore di Bit per second sia 9600, che è il valore di default settato sui nostri HC-06. Verifichiamo anche il numero della porta COM assegnata al nostro modulo. Nel mio caso la COM9 (qui a sinistra).

WARNING: il valore di 9600 baud è corretto se operiamo su di modulo HC-06 nuovo, che avrà di default questo valore assegnato di fabbrica. Se invece vogliamo comunicare con un modulo che è già stato modificato nei suoi parametri occorre sapere qual'è il valore di baud attualmente settato su questo modulo. Potremo metterlo infatti in comunicazione con il PC solo a quel determinato valore (!)


Ora lanciamo Teraterm (la mia è la versione 4.79, se avete una versione differente l'interfaccia potrebbe essere leggermente diversa).
Apparirà una finestra di dialogo con la quale Teratern richiede l'apertura di una nuova connessione, di default di tipo TCP/IP ma a noi interessa una connessione di tipo seriale. Selezioniamo quindi l'opzione 'Serial' ed impostiamo la porta COM appena aperta con il nostro modulo USB-TTL.
A questo punto andiamo a controllare i parametri della porta seriale nel menu 'Setup' della finestra Teraterm VT. Il valore di Baud rate deve essere 9600, così come per la porta COM9.








A questo punto possiamo comunicare con il nostro HC-06, grazie alla finestra di dialogo disponibile con il comando 'Broadcast command', sotto il menù 'Control'.
Da questa finestra possiamo lanciare i comandi per la configurazione dell'HC-06. I comandi vanno scritti in maiuscolo e devono assumere la forma indicata nella tabella in fondo a questa pagina. La finestra 'Broadcast command' si apre,di default, con l'opzione 'Realtime mode' attivata ma occorre disattivarla per accedere alle opzioni che servono a noi, 'Send to this process only' e 'Enter key' disattivata. Cliccate su 'Submit' per spedire il comando all'HC-06.

















Provate prima di tutto con il comando AT o AT+VERSION, giusto per verificare la correttezza della comunicazione seriale. Sul terminale seriale di Teraterm apparirà la risposta relativa al comando appena lanciato.


I parametri da configurare principalmente sono:
  • il nome da assegnare al nostro dispositivo Bluetooth (nel mio caso è PGT4), scrivendolo sulla riga di comando di seguito al comando AT+NAME (senza spazi!). La risposta del dispositivo sarà OKsetname.


  • un codice PIN di accesso al dispositivo, per evitare accessi indesiderati ed eventuali conflitti con altri dispositivi Bluetooth nelle vicinanze, digitando il codice subito dopo il comando AT+PIN, sempre senza spazi


  • e, non meno importante, il valore di Baud rate previsto dall'applicazione che comunicherà con il nostro dispositivo. Nel mio caso 19200 per comunicare con il server del PicGoto, quindi AT+BAUD5, come risulta dalla tabella a fondo pagina

A questo punto il nostro dispositivo è configurato correttamente, almeno rispetto ai suoi parametri essenziali di comunicazione seriale.

Ora possiamo verificarne il corretto funzionamento. Colleghiamo l'HC-06 alla scheda per cui era previsto ed alimentiamo il tutto. Inseriamo un semplice dongle Bluetooth in una delle porte USB del nostro PC (ovviamente solo se il PC non sia già predisposto con una periferica Bluetooth interna) ed accediamo alla finestra di dialogo di Windows per le periferiche Bluetooth, alla voce 'Aggiungi dispositivo'. Comparirà, nell'elenco dei dispositivi BT già configurati per la connessione, anche il nostro nuovo dispositivo (nel mio caso il PGT4). Selezioniamolo e proseguiamo.


Selezionate 'Scelta passkey da parte dell'utente', digitando, nel campo apposito, il codice PIN scelto per il nostro dispositivo in fase di configurazione.


Apparirà la finestra di avvenuta connessione del dispositivo e le porte COM assegnate ad esso, una in ingresso ed una in uscita.


Nel caso del server PicGoto che sto utilizzando, la porta di comunicazione sarà quella contrassegnata come 'Dev B' (in uscita)


Ora andiamo a controllare ed eventualmente modificare il valore di Baud rate con il 'Gestione dispositivi' di Windows della porta dedicata al dispositivo BT, nel mio caso 19200.



E finalmente, lanciamo l'applicazione che metterà in comunicazione l'hardware di periferica collegata con l'HC-06 ed il PC! Ovviamente alla prima connessione verrà richiesto il codice PIN di accesso ...


Eureka!
Forse sono stato eccessivamente prolisso ma, mi sono fatto prendere la mano dalla tutorial-mania ...

Saluti
pierluigi.giorgi@gmail.com


Comandi AT per il modulo Bluetooth HC-06