ARDUINO |
|
Il
WI-FI shield per
Arduino qui presentato è prodotta dalla
Futura Elettronica permette di accedere a una rete TCP/IP e ad
Internet, ma non attraverso livelli hardware di tipo ethernet, bensì
tramite connessioni wireless.
La comodità di questa tecnologia permette
di non avere cavi da stendere e la piena libertà nel posizionamento dei
diversi nodi delta rete wireless.
Questa scheda prende spunto dalla scheda prodotta dalla
AsyncLabs,
che è una delle prime aziende a concentrarsi sulla tecnologia Wi-Fi.
Con esse ha piena compatibilità hardware sia con l'ether-net shield, sia
con gli shield Wi-Fi.
Sullo shield è previsto inoltre uno slot per inserire memorie di tipo
microSD.
Le dimensioni e la forma dello shield sono
compatibili con le schede
Arduino
Duemilanove, e
Arduino UNO
Per la comunicazione con il controllore host principale (il
processore Arduino) viene utilizzata la connessione SPI (velocità
massima di 25 MHz); sono supportate sia le reti wireless del tipo
infrastrutturato (BSS) che ad hoc (IBSS) ed a 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).
In riferimento allo schema elettrico, possiamo vedere che il modulo
Microchip MRF24WB0MA (integrato U1) è collegato al bus SPI (Serial
Peripheral Interface) tramite le linee SDO (Serial
Data Output ), SCK (Serial Clock)e
SDI (Serial Data Input), pin 32, 34 e 35, e
che, in caso di necessità, può essere resettato tramite un pulsante (P1
nello schema).
Nello schema è visibile anche visibile lo slot per montare lo sempre più
utilizzate e diffuse memorie SD (Secure Digital) , siglato
SD1 nello schema schema elettrico), gestito da
Arduino sempre attraverso
la porta SPI; ciò permette di estrarre i dati e trasportarli in altri
sistemi.
E 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
1/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 tipo TC1262-3.3 indicato con U2; quanto ai
5V, vengono prelevati direttamente dalla scheda Arduino.
Nota: La descrizione è tratta dall'articolo scritto da Alessandro e Alessio Giusto e pubblicato sul numero 160 della Rivista Elettronica IN
Foto dello Shield senza connettori
Descrizione
Il componente base dello shield Wi-Fi è un modulo Wi-Fi siglato MRF24WB0MA e prodotto dalla Microchip. Il dispositivo e 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 e ha un indirizzo MAC, (in inglese MAC address, dove MAC sta per Media Access Control), detto anche indirizzo fisico, indirizzo ethernet o indirizzo LAN, è un codice di 48 bit (6 byte) assegnato in modo univoco dal produttore ad ogni scheda di rete ethernet prodotta al mondo, tuttavia modificabile a livello software. Il modulo lavora nella banda di frequenze 2.400-2.484 GHz.
|
MRF24WB0MA/MRF24WB0MB 2.4 GHz, IEEE Std. 802.11b™ RF Transceiver Module | ||
|
||
Piedinatura | Datasheet | Foto dell'integrato |
Esempio utilizzo: WI-FI shield per Arduino |
TC1262 - 500mA Fixed Output CMOS LDO | ||
|
||
Piedinatura | Datasheet | Foto dell'integrato |
Contenuto del blister
Analisi software
Lo shield è compatibile con le librerie software WiShield fornite dalla
AsyncLabs in grado di supportare varie modalità di funzionamento, quali
APP_ WEBSERVER, APP_WEBCLIENT, APP_SOCKAPP, APP_UDPAPP e APP_WISERVER,
corrispondenti rispettivamente a Web Server, Web Client, Socket, UDP e
WiServer.
L’impostazione predefinita è APP_WEBSERVER, che funziona sulla maggior
parte dei sistemi Arduino ma presenta diverse limitazioni, la principale
delle quali è l’incapacità di funzionare simultaneamente sia come client
che come server.
Una modalità alternativa sicuramente più interessante,
maggiormente diffusa, utilizzata e consigliata, è la APP_WISERVER
(libreria denominata “WiServer.h”) che permette ad un sistema Arduino
equipaggiato con shield Wi-Fi di essere configurato e funzionare sia
come Web Server sia come Web Client.
Nel primo caso sarà possibile
servire richieste di connessione provenienti da web client esterni ed
inviare delle pagine HTML in risposta; invece nel secondo ci si potrà
collegare a un web server e,tramite la tecnologia request GET o POST,
inviare richieste di esecuzione comandi e ricevere pagine HTML di
risposta.
Per configurare la libreria WiShield scaricata come
APP_WISERVER è necessario aprire il il <directory di arduino>\libraries\WiShield\apps-conf.h,
andare circa alla riga numero 39, commentare il “#define” di
APP_WEBSERVER e rimuovere il commento al “#define” di APP_WISERVER.
La sezione di codice in esame
deve risultare qualcosa come:
//#define APP_WEBSERVER
//#define APP_WEBCLIENT
//#define APP_SOCKAPP
//#define APP_UDPAPP
#define APP_WISERVER
Skatch e librerie
Su www.futurashop.it , direttamente nella scheda del prodotto (cod.
WIFI_SHIELD), sono disponibili skatch d’esempio e librerie per
l’utilizzo dello shield.
Pin |
Symbol |
Type |
Description |
1 |
GND |
P |
Massa |
2 |
NC |
NC |
Non connesso |
3 |
JTAGTDO |
O |
JTAG test data output |
4 |
JTAGTCK |
I: Constant(1) |
JTAG clock input |
5 |
JTAGTMS |
I |
JTAG mode input |
6 |
JTAGTDI |
I |
JTAG test data input |
7 |
RESET |
I: Constant(1) |
Module Reset input |
8 |
NC |
NC |
Non connesso |
9 |
RST |
I |
JTAG Reset input (optional; see Section 2.0) |
10 |
GND |
P |
Massa |
11 |
NC |
NC |
Non connesso |
12 |
NC |
NC |
Non connesso |
13 |
NC |
NC |
Non connesso |
14 |
NC |
NC |
Non connesso |
15 |
NC |
NC |
Non connesso |
16 |
WP(2) |
I |
Write protect (this pin is used to enable FLASH update) |
17 |
VDD |
P |
Power |
18 |
GND |
P |
Massa |
19 |
GND |
P |
Massa |
20 |
HIBERNATE |
I |
Hibernate mode enable (high input will disable the module) |
21 |
JTAGEN |
I |
JTAG test enable |
22 |
NC |
NC |
Non connesso |
23 |
CS |
I |
SPI Chip Select input |
24 |
NC |
NC |
Non connesso |
25 |
GND |
P |
Massa |
26 |
DEBUGRX |
I |
Serial debug port input (see Section 2.0) |
27 |
DEBUGTX |
O |
Serial debug port output (see Section 2.0) |
28 |
GND |
P |
Massa |
29 |
VDD |
P |
Power |
30 |
GND |
P |
Massa |
31 |
NC |
NC |
Non connesso |
32 |
SDO |
O |
SPI data out |
33 |
INT |
O |
Interrupt output (open drain – requires a pull-up) |
34 |
SCK |
I |
SPI clock input |
35 |
SDI |
I |
SPI data in |
36 |
GND |
P |
Massa |
Legenda:Pin type abbreviation: P = Power input, I = Input, O = Output, NC = Non connesso |
Elenco revisioni | |
30/03/2012 | Emissione preliminare |