Shield Bluetooth con RN-42

Esaurito

Shield per Arduino basata sul modulo RN-42 della Roving Networks indicata in tutte le applicazioni in cui serva instaurare una connessione su Bluetooth

SKU: 7100-FT1032M Categoria: Tag:

Shield per Arduino basata sul modulo RN-42 della Roving Networks indicata in tutte le applicazioni in cui serva instaurare una connessione su Bluetooth. Tutti i pin del moduloRN-42 sono disponibili su 6 connettori che servono ad interfacciarlo con il mondo esterno. Il primo, siglato RS232 è l’interfaccia seriale grazie alla quale avviene la comunicazione di dati e comandi, il secondo è quello siglato IO e raggruppa tre degli I/O disponibili nel modulo RN-42, il terzo connettore è siglato AD, i cui contatti sono solo ingressi analogici e possono essere utilizzati dal modulo Bluetooth per acquisire alcune informazioni, come ad esempio il livello di tensione sulla batteria. Il quarto è il connettore siglato SPI e tramite esso si può scrivere nella Flash interna al modulo RN-42 in modo da aggiornare o sostituire il firmware; tale connessione non è comunque indispensabile, ilquinto è il connettore siglato PCM e offre la possibilità di inviare via radio, ad un altro dispositivo Bluetooth, uno stream audio ad una velocità di trasferimento di 64 kbps. L'ultimo connettore è quello siglato USB e che veicola una connessione USB. La shield è inoltre dotata di un dip switch che permette di impostare, al momento dell’avvio, alcune modalità di funzionamento del modulo RN-42. Le modalità si possono anche configurare tramite software.

N.B. La scheda viene fornita con tutti i componenti SMD già montati, mentre gli altri componenti (strip, pulsante, ecc) devono essere montati dal cliente.
Modalità di funzionamento
Il dip-switch a 4 vie (SW1) presente sulla scheda permette di impostare alcune modalità di funzionamento del modulo RN-42. Spostando un dip su “ON” viene collegato il rispettivo pin del modulo a Vcc abilitando la relativa funzionalità. I 4 pin di confi gurazione vengono interpretati al momento dell’avvio, quindi cambiando lo
stato dei dip durante il funzionamento dello shield non si otterranno gli effetti desiderati.
Le modalità si possono anche configurare tramite software, entrando nella fase comando tramite la sequenza di escape “$$$”. Di seguito sono descritti i pin del modulo che fanno capo al dip-switch e i LED di segnalazione montati sulla scheda
  • AUTO – È collegato al pin GPIO3 del modulo Bluetooth. Se abilitato, permette l’accoppiamento automatico con un altro dispositivo remoto Bluetooth, senza pertanto dover digitare il codice segreto (detto “Passkey”). Se però il dispositivo remoto è settato per richiedere l’autenticazione, verrà comunque richiesto l’inserimento della Passkey per instaurare un collegamento sicuro. La Passkey predefinita è 1234, ma può essere modificata, entrando in modalità comando, tramite sequenza di escape “$$$”.
  • DEFAULT – È collegato al pin GPIO4 del modulo Bluetooth. Permette di ripristinare tutti i settaggi interni al modulo ai valori iniziali di “fabbrica”. Può essere utile quando vengono impartiti comandi che portano il modulo in conflitto. Per effettuare questo reset, occorre portare verso ON il relativo dip, prima di alimentare lo shield; una volta alimentato occorre riportarlo allo stato “0”, poi allo stato “1”, di nuovo allo stato “0” e ancora ad “1”. Ad ogni cambiamento di stato deve trascorrere un secondo circa.
  • MASTER – È collegato al pin GPIO6 del modulo Bluetooth. Per impostazione predefinita, il modulo Bluetooth si comporta come un dispositivo slave e quindi può venire rilevato da altri dispositivi Bluetooth e connettersi ad essi, ma non è in grado di iniziare per primo una connessione.
    Portando a ON il rispettivo dip, il modulo lavorerà in modalità Master. In questa fase non potrà essere rilevato da altri dispositivi, ma sarà esso ad effettuare una connessione verso un particolare dispositivo remoto precedentemente memorizzato nella Flash del modulo RN-42, tramite il comando SR,<address>
    (in cui <address> è l’indirizzo MAC del dispositivo remoto scelto). Nel caso in cui non ci fosse alcun indirizzo memorizzato, l’RN-42 effettuerà una scansione e si connetterà al primo dispositivo remoto trovato. Sono inoltre possibili altre modalità Master che variano dal modo più o meno particolare di comportarsi; queste si possono settare solo da software tramite il comando SM,<x>, in cui x rappresenta la modalità e varia da 0 a 5. In particolare SM,0 farà ritornare il modulo in modalità slave.
  • BAUDRATE – Questo dip è collegato al pin GPIO7 del modulo Bluetooth. Abilitandolo, viene forzata la velocità di comunicazione per dati e comandi a 9.600 bps. Altrimenti verrà utilizzata la velocità desiderata che avremo precedentemente scritto in Flash tramite il comando SU, <rate>
    (esempio: SU,57.6 per selezionare 57.600 baud). Per impostazione predefinita, questo valore è pari a 115.200 baud. Tramite software è possibile impostare anche velocità di trasferimento non standard. Notare che disponendo di due shield è possibile metterli in comunicazione punto-punto tra di loro per permettere comunicazione tra due PC (o altri dispositivi) evitando l’uso di un cavo seriale. In questo caso uno dei due dovrà comportarsi come master (spostando il relativo dip-switch) e l’altro rimarrà slave. Su entrambi dovrà essere settato il dip-switch AUTO in modo da non richiedere codice di autenticazione.
I Connettori
Di seguito viene fornita una breve descrizione dei connettori presenti sulla scheda che permettono di interfacciare il modulo con il mondo esterno; sono esclusi quelli di connessione con Arduino. 

• 1 = CTS;
• 2 = RTS;
• 3 = TX;
• 4 = RX;
• 5 = GND.
Tale connettore è l’interfaccia seriale grazie alla quale avviene la comunicazione di dati e comandi. Si accede alla fase di comando inviando la sequenza di escape “$$$<cr>” sul pin RX del modulo Bluetooth, tramite la seriale locale del PC o direttamente da Arduino. Per uscire da questa fase ed entrare nella fase dati occorre inviare la sequenza “—”. Durante la fase dati ed una volta instaurata una connessione Bluetooth, ciò che viene inviato sul pin RX verrà diretto, via radio, al dispositivo remoto, mentre sul pin TX ritroveremo ciò che viene ricevuto dal dispositivo remoto. Solitamente si usano solo questi tre pin (TX, RX e GND), mentre CTS ed RTS vengono impiegati per il controllo di flusso, ma rimangono comunque disponibili. Nel caso si voglia utilizzare anche CTS ed RTS occorre scollegare il jumper PROG. Il pin CTS può essere anche usato per “svegliare” il modulo Bluetooth dalla fase di sleep (in cui consuma meno di 2 mA) mediante il passaggio da stato logico “0” a stato logico “1”. Il secondo connettore dello shield è quello siglato IO e raggruppa tre degli I/O disponibili nel modulo RN-42; la sua piedinatura è la seguente:
• 1 = GPIO9;
• 2 = GPIO10;
• 3 = GPIO11;
• 4 = GND.
Per leggere o pilotare questi I/O è necessario entrare nella modalità comandi (da seriale locale o direttamente da Arduino). Per controllare tali linee di I/O bisogna fare riferimento al comando S*,<word> in cui word è una stringa esadecimale di 16 bit i cui 8 bit più significativi rappresentano la maschera per determinare i pin di output e di input, mentre gli 8 bit meno significativi corrispondono al valore (1 per portare il pin a livello alto e zero per portarlo a livello basso). La struttura è quella mostrata nella Fig. 4. Per esempio: S*,0202 abilità GPIO9 come output e lo mette al valore “1” – S*,0E00 abilità mette tutti i GPIO dello strip a “0” – Il comando GK restituisce una stringa esadecimale col valore dei pin allo stato attuale; tali pin sono collegati anche ai pin di Arduino.
In particolare:
• GPIO9 è collegato ad A4;
• GPIO10 è collegato ad A3;
• GPIO11 è collegato ad A2.
E adesso passiamo al connettore AD, i cui contatti sono solo ingressi analogici e possono essere utilizzati dal modulo Bluetooth per acquisire alcune informazioni, come ad esempio il livello di tensione sulla batteria. La piedinatura di questo connettore è:
• AIO0;
• AIO1;
• GND.
In questa puntata del corso il connettore IO non viene usato. Passiamo adesso al connettore SPI, la cui piedinatura è:
• 1 = S-MOSI;
• 2 = S- SCLK;
• 3 = S-MISO;
• 4 = S-CS;
• 5 = GND.
Il connettore veicola un bus SPI e tramite esso si può scrivere nella Flash interna al modulo RN-42 in modo da aggiornare o sostituire il firmware; tale connessione non è comunque indispensabile. Nello shield abbiamo anche un connettore siglato PCM, la cui piedinatura è la seguente:
• 1 = GND;
• 2 = P-OUT;
• 3 = P-IN;
• 4 = P-CLK;
• 5 = P-CS.
L’interfaccia PCM offre la possibilità di inviare via radio, ad un altro dispositivo Bluetooth, uno stream audio ad una velocità di trasferimento di 64 kbps. Per i nostri scopi questa possibilità non viene sfruttata. L’ultimo connettore che vediamo è quello USB, che evidentemente veicola una connessione USB; la sua piedinatura è:
• 1 = GND;
• 2 = DP;
• 3 = DM;
• 4 = Vcc.
Collegando questo connettore al PC tramite un cavo USB è possibile utilizzare la modalità “HCI over USB” del modulo Bluetooth ed ottenere velocità maggiori (fino a 3 Mbps). Tuttavia, questo è possibile utilizzando solo la versione USB del modulo RN-42 (chiamata appunto RN-42-USB) o aggiornando opportunamente il firmware tramite il bus SPI.

Caratteristiche tecniche del modulo RN-42
  • Protocollo Bluetooth: specifiche Bluetooth v2.0 compatibile
  • Potenza di uscita: Classe 2
  • Compatibile con tutti i prodotti Bluetooth che supportano SPP
  • Include i supporti per i protocolli BCSP, DUN, LAN, GAP, SDP, RFCOMM e L2CAP
  • UART completamente configurabile
  • Velocità di trasferimento dati UART: fino a 3 Mbps
  • Velocità trasmissione dati: da 721 kbps a 2 Mbps
  • Basso consumo in modalità sleep
  • Funzionamento a 3,3 V
  • Certificato CE, FCC e RoHS
Documentazione e link utili

 

Menu