Published using Google Docs
Moduli Bluetooth 01 - connessione HW
Updated automatically every 5 minutes

Moduli Bluetooth 01 - connessione HW

v 0.1 - Author: Mirco Piccin aka pitusso

I moduli BT si presentano così:

HC05 e HC06

HC07

L’integrato cuore del modulo è il CSR BC417.

Esistono varie versioni di questi moduli, anche se in alcuni casi sono identici per aspetto (HC05 e HC06).

La differenza risiede nel firmware e quindi nelle loro funzionalità e modalità di programmazione (maggiori informazioni nella sezione relativa alla programmazione AT).

Come si possono distinguere?

Firmware

I moduli HC05 sono  “universali”, configurabili sotto molti aspetti, tra cui anche la modalità (principalmente Master o Slave).

I moduli HC06 sono invece più limitati, e vengono distribuiti in modalità Master o Slave, senza la possibilità di passare da una all’altra. Il firmware è noto come “linvor”, e questo è il nome di default assegnato.

E’ solitamente il venditore che specifica le funzionalità o in taluni casi anche la versione del fw.

Il firmware è comunque aggiornabile [1], e ne esistono anche versioni opensource [2] che ne incrementano le funzionalità (maggiori informazioni nella sezione relativa all’aggiornamento FW).

Hardware e connessione

(Image by robocraft.ru)

Lo schema di applicazione tipica è il seguete:

Per la connessione di base ho utilizzato lo schema qui sotto riportato (il componente HC_05 per Eagle si può trovare qui [3]).

Tra il TX dell’ATMega e il RX (2) del modulo BT, c’è una resistenza da 2k2, come riportato nello schema di Arduino BT.

Lo stesso vale per il pin AT (34).

Inizialmente ho utilizzato due partitori di tensione, ma il risultato è il medesimo (lo schema è comunque disponibile).

Qui sotto lo sch, ancora non definitivo ma funzionale:

PIN destinati alla comunicazione:

- pin TX (1): connesso al pin RX di Arduino;

- pin RX (2): connesso al pin TX di Arduino mediante resistenza (o partitore di tensione), per abbassare il voltaggio dai 5v a 3.3v;

E’ possibile utilizzare invece dei pin RX e TX di Arduino, la libreria NewSoftwareSerial (nell’IDE 1.0 la SoftwareSerial) e un’altra coppia di pin, lasciando i questo modo disponibile la seriale hw per debug o altri scopi.

PIN destinati all’alimentazione:

- pin VCC (12): connesso al pin 3.3 di Arduino, nel caso il modulo consumi meno di 50mA,  viceversa si dovrà utilizzare un regolatore di tensione;

- pin GND (13): connesso al pin  GND di Arduino;

PIN destinati alla configurazione / monitoraggio:

- pin PIO11 (34): connesso ad un pin Arduino mediante resistenza (o partitore di tensione), per abbassare il voltaggio dai 5v a 3.3v. Questo pin, se messo in HIGH, permette la configurazione AT.

- pin PIO9 (32): connesso tramite resistenza ad un led, per monitorare lo stato del modulo; nel modulo HC05 è lampeggiante, e a connessione attiva effettua due lampeggi seguiti da una pausa più lunga;[DA VERIFICARE in caso di configurazione, il lampeggio è più lento]

- pin PIO8 (31): connesso tramite resistenza ad un led, per monitorare il pairing del modulo; nel modulo HC06 è lampeggiante, e luce fissa a connessione attiva; nel modulo HC05 è spento, e acceso a connessione attiva.

Note e varianti

Nei moduli HC06, con firmware linvor 1.5:

- il LED pairing è nel pin PIO1 (24);

- il LED status non è noto;

- non è necessario l’utilizzo del pin PIO11 (34) per la configurazione; infatti il modulo può essere configurato in ogni momento, a patto che non sia collegato a nessun device (led pairing in lampeggio);

E’ possibile utilizzare per la programmazione / gestione del modulo un adattatore USB2UART, al posto di Arduino.

Con alcuni adattatori USB2UART (es [4]), non è necessario utilizzare alcun paritore di tensione/resistenza, in quanto il segnale TX è già a 3.3v.

In caso di utilizzo con device sprovvisti di alimentazione 3.3v, è necessario provvedere tramite regolatore di tensione, a fornire il corretto voltaggio al modulo BT.

Relativamente ai led di controllo, il valore delle resistenze è recuperato da datasheet distribuito dal produttore del modulo.

Chiaramente in base al tipo di led il valore di tale resistenza potrà variare.

Ongoing

- breakout board per connessione su breadboard;

- shield per Arduino;

- breakout compatibile  xbee;

Webography

[1] http://byron76.blogspot.it/2011/09/upgrade-your-bluetooth-module.html

[2] http://pfalcon-oe.blogspot.it/2012/04/opensource-sensor-node-firmware-for.html

[3] http://iteadstudio.com/store/images/produce/Wireless/Bluetooth_HC05/SerialPortBluetooth_Eagle.rar

[4] http://www.ebay.com/itm/USB-2-0-UART-TTL-6PIN-Module-Serial-Converter-CP2102-/370532286388#ht_2817wt_1165

[5] http://txapuzas.blogspot.it/2009/12/paperbluetooth-bluetooth-shield-para.html

[6] http://byron76.blogspot.it/2011/09/one-board-several-firmwares.html

[7] http://arduino.cc/forum/index.php/topic,99292.msg750183.html#msg750183

Mirco Piccin aka pitusso, pictux@gmail.com