Wireless
AGGIUNGI
UN LINK Wi-Fi
AL TUO
ARDUINO
Realizziamo uno shield
basato sul modulo
MRF24WB0MA della Microchip,
facilmente utilizzabile
con librerie di schede commerciali.
degli Ingg. TOMMASO E ALESSANDRO GIUSTO
C
ome avrete notato, è da parecchio tempo che
ci stiamo interessando all’hardware Arduino
e che presentiamo diversi prodotti basati su questa architettura. Oltre all’ambiente di sviluppo
open-source, ciò che rende interessante il progetto
Arduino è la possibilità di espandere le funzionalità
della scheda base attraverso l’aggiunta di diversi
livelli hardware, denominati “shield”, capaci di
svolgere funzioni limitate praticamente solo dalla
fantasia del progettista. È possibile affermare che
tra tutti quelli sviluppati e disponibili, gli shield più
utilizzati nella pratica sono quelli che espandono le
possibilità di comunicazione della scheda Arduino
e in particolare quelli che permettono di aggiungere
il collegamento a una rete di tipo TCP/IP.
I primi shield di questo tipo a uscire sul mercato
sono stati quelli basati sulla tecnologia ethernet,
che consentivano ai sistemi Arduino di collegarsi
a una LAN ethernet basata sul protocollo TCP/IP
e quindi ad Internet. Col tempo, però, soprattutto
dopo l’avvento della tecnologia Wi-Fi, questi shield
hanno iniziato a mostrare i loro limiti ed in un certo
senso sono diventati scomodi da usare, in quanto
richiedono la stesura di cavi di collegamento e il
successivo riposizionamento nel caso si decida di
spostare i dispositivi dalla posizione originaria. Per
ovviare a queste ed altre limitazioni, fortunatamente da poco tempo si sono resi disponibili gli shield
Elettronica In ~ Ottobre 2011
41
[schema ELETTRICO]
prodotti da tale casa. In aggiunta,
abbiamo previsto uno slot per inserire memorie di tipo microSD.
La compatibilità pin-to-pin con
l’Ethernet Shield della AsyncLabs permette di sostituire, in
sistemi basati su Arduino, tale
shield con il nostro; ciò significa che se avete realizzato un
progetto che fa uso dello shield
ethernet AsyncLabs (ad esempio
il controllo RGB descritto nel
fascicolo n° 159) e volete passare
dal controllo da LAN cablata a
quello Wi-Fi, vi basta togliere
lo shield ethernet e montare il
nostro. Per gestirlo, potete utilizzare tranquillamente librerie
esistenti, che nello specifico sono
le stesse fornite dalla AsyncLabs
per il suo Wi-Fi Shield.
ANALISI HARDWARE
Il componente base dello shield
Wi-Fi che abbiamo realizzato e
Wi-Fi, che permettono sempre di
accedere a una rete TCP/IP e ad
Internet, ma non più attraverso
livelli hardware di tipo ethernet,
bensì tramite connessioni wireless. La comodità della tecnologia Wi-Fi è ormai nota a tutti:
niente più cavi da stendere (che
aumentano il costo e il tempo di
realizzazione di qualsiasi impianto) e piena libertà nel posizionamento dei diversi nodi della rete
wireless.
Una delle prime aziende a concentrarsi sulla tecnologia Wi-Fi è
stata la AsyncLabs, che ha proposto al mercato i primi shield
del genere, corredandoli con le
librerie del caso.
In questo articolo vi proponiamo
una nuova soluzione Wi-Fi: si
tratta di uno shield che a livello
hardware prende spunto da quello della AsyncLabs, pertanto è
stata mantenuta la piena compatibilità hardware sia con l’ethernet shield, sia con gli shield Wi-Fi
42
Ottobre 2011 ~ Elettronica In
A destra, la piedinatura del
modulo Wi-Fi MRF24WB0MA
visto dall’alto, ossia da dove si
vede il connettore per l’antenna esterna. Sotto, lo schema a
blocchi interno del dispositivo,
dal quale appare la composizione: vediamo il transceiver
ed il generatore di codifica che
attinge ad una propria Flash,
oltre all’interfaccia SPI per la
comunicazione dati ed all’amplificatore RF.
[piano di MONTAGGIO]
che qui descriviamo è un modulo
Wi-Fi siglato MRF24WB0MA e
prodotto dalla Microchip, una
casa che certo non ha bisogno di
presentazioni.
Il dispositivo è un Wi-Fi RF transceiver certificato IEEE 802.11,
ha un data-rate compreso tra 1 e
2 Mbps, dispone di antenna interna con elettronica di adattamento
integrata (è comunque predisposto per l’utilizzo di un’antenna
esterna dedicata), ha un indirizzo
MAC univoco, lavora nella banda di frequenze 2.400÷2.484 GHz
ed è l’ideale per applicazioni di
domotica, controlli remoti (sia
consumer che industriali) e per
impieghi wireless in generale.
Nella pagina accanto, trovate
lo schema elettrico della nostra
scheda shield. Le dimensioni e
la forma sono compatibili con
le schede Arduino Diecimila e
Duemilanove.
Nel nostro progetto viene utilizzata la connessione SPI (velocità massima di 25 MHz) per la
comunicazione con il controllore
host principale; sono supportate sia le reti wireless del tipo
infrastrutturato (BSS) che ad hoc
(IBSS) ed è permesso il collegamento anche a reti sicure (sono
supportate le crittografie WEP
a 64 e a 128 bit, nonché WPA/
WPA2 TKIP, AES e PSK).
Analizzando lo schema elettrico, facciamo notare il modulo
Microchip MRF24WB0MA
(indicato con U1) collegato al bus
SPI tramite le linee SDO, SCK e
SDI (pin 32, 34 e 35) e che, in caso
di necessità, può essere resettato
tramite un pulsante (P1 nello
schema).
Peculiarità del nostro shield è che,
a differenza di quello prodotto dalla AsyncLabs, nel quale
è prevista una memoria fissa,
dispone di uno slot per montare
le sempre più utilizzate e diffuse
memorie SD (siglato SD1 nello
Elenco Componenti:
R1÷R4: 4,7 kohm (0805)
R5: 1 kohm (0805)
R6: 4,7 kohm (0805)
R7: 2,2 kohm (0805)
R8: 1 kohm (0805)
R9: 2,2 kohm (0805)
R10: 1 kohm (0805)
R11: 2,2 kohm (0805)
R12: 330 ohm (0805)
C1: 220 µF 6,3 VL elettrolitico (D)
C2: 220 µF 6,3 VL elettrolitico (D)
C3: 100 nF multistrato (0805)
C4: 100 nF multistrato (0805)
C5: 100 nF multistrato (0805)
LD1: LED verde (0805)
U1: MRF24WB0MA/RM
U2: TC1262-3.3 (SOT-223)
SD1: Connettore µSD-Card
(MICROSDSOCK2)
P1: Pulsante miniatura SMD
Varie:
- Strip maschio 2 poli
- Strip M/F 6 poli (2 pz.)
- Strip M/F 8 poli (2 pz.)
- Strip M/F 3 poli (2 pz.)
- Jumper
- Circuito stampato
schema elettrico), gestito da Arduino sempre attraverso la porta
SPI; ciò permette di estrarre i dati
e trasportarli in altri sistemi.
È anche presente un LED (siglato LD1) utilizzato per indicare
se la connessione Wi-Fi è attiva
o meno; la relativa gestione è
realizzata tramite una porta
hardware, che pertanto normalmente non potrà essere utilizzata
da software. Nel caso in cui fosse
necessaria proprio questa porta,
è comunque presente un ponticello (indicato con LED) che, una
volta aperto, scollega il LED rendendo nuovamente disponibile il
pin di I/O.
Infine, a completare l’hardware
dello shield c’è una sezione di
alimentazione dedicata alla logica, composta da un regolatore
di tensione a 3,3 V (indicato con
U2); quanto ai 12 volt, vengono
prelevati direttamente dalla scheda Arduino.
ANALISI SOFTWARE
Come già anticipato, il nostro
shield è compatibile con le
librerie software WiShield fornite
dalla AsyncLabs (al momento
della stesura di questo articolo
l’ultima versione disponibile è
la 1.3.0); a nostro parere questa
compatibilità è un grosso vantaggio, in quanto permette di
passare da una versione di shield
hardware all’altra in modo indolore, semplicemente rimuovendo
il vecchio e inserendo il nuovo,
senza dover eseguire alcuna modifica al software già scritto.
La libreria WiShield supporta
varie modalità di funzionamento, che sono APP_WEBSERVER, APP_WEBCLIENT,
APP_SOCKAPP, APP_UDPAPP
Elettronica In ~ Ottobre 2011
43
.
e
ch
i
ità
M
en
s
ile
a
ic
on
r
tt
e
l
E
e
d
l
ie
w
w
it
l
a
u
r
t
t
at
lic
pp
a
a,
w
.e
le
t
t
a
fic
n
o
à
t
at
i
sc
o
,n
i
r
o
n
ic
a
o
n
ec
t
a
c
i
v
t
en
g
lo
in
t
i
.
a
c
i
on
r
t
t
le
e
’
l
e
lo tr
n
I