Sei sulla pagina 1di 40

POTENZIALIT AGRO-METEO

DELLA PIATTAFORMA
ARDUINO
Giambattista Toller1*, Aldo Biasi1, Stefano Corradini1
Fondazione Edmund Mach, via E.Mach 1, 38010, San
Michele all'Adige (Trento)

http//arduino.cc

Attivit svolta nell'ambito del
Progetto CentCuro

Si pu intendere come:

Una piattaforma software, che indica il software di base sul quale


sono eseguiti o sviluppati i software applicativi (ad es. Piattaforma
Java).

Una piattaforma hardware, cio l'hardware sul quale vengono fatti


eseguire un certo sistema operativo e un certo insieme di
programmi applicativi;

Una piattaforma operativa, tipo di piattaforma software che include il


sistema operativo il quale costruito a partire dalle istruzioni
elementari del processore (instruction set).

Un ambiente di esecuzione che comprende hardware e sistema


operativo ed eventualmente elementi middleware specifici,
application server ed altri strumenti di supporto all'esecuzione di
programmi.
Una piattaforma informatica una base
software e/o hardware su cui sono eseguite
e/o sviluppate applicazioni

Open hardware e open source

Gli schemi hardware di Arduino sono distribuiti in


modo da poter essere utilizzati nei termini legali
di una licenza Creative Commons Attribution
Share-Alike 2.5, e sono disponibili sul sito
ufficiale Arduino.

Per alcune versioni della scheda sono disponibili


anche il layout e i file di produzione.

l codice sorgente per l'Ambiente di sviluppo


integrato e la libreria residente sono disponibili,
e concessi in uso, secondo i termini legali
contenuti nella licenza GPLv2.

Creative Commons (CC)

Creative Commons (CC) un'organizzazione


non profit con sede a San Francisco dedicata
all'espansione della portata delle opere di
creativit offerte alla condivisione e all'utilizzo
pubblici.

Essa intende altres rendere possibile, com'


sempre avvenuto prima di un sostanziale abuso
della legge sul copyright, il ricorso creativo a
opere di ingegno altrui nel pieno rispetto delle
leggi esistenti.

GNU GeneraI PubIic License

La GNU GeneraI PubIic License una licenza


per software libero. comunemente indicata
con l'acronimo GNU GPL o semplicemente GPL.

Contrapponendosi alle licenze per


software proprietario, la GNU GPL assicura
all'utente libert di utilizzo, copia, modifica e
distribuzione.

La GPL ha incontrato un gran successo fra gli


autori di software sin dalla sua creazione, ed
oggi la pi diffusa licenza per il software libero.

Gli sviluppatori di Arduino
nteraction Design nstitute, vrea.
Perch Arduino si chiama Arduino?

II nome viene da
Arduino Marchese d'Ivrea
955 - Fruttuaria, 1015

Arduino d'Ivrea (955 1015) fu un protagonista


delle acerrime lotte per il potere che coinvolsero
l'intera struttura feudale ai tempi dell'impero
romanico-germanico degli Ottoni.

Nel 1002, approfittando della morte di Ottone ,


un nutrito gruppo di vassalli ostili al potere.
imperiale lo elesse re d'ItaIia.

Per dieci anni, tra il 1004 ed il 1014, Arduino


cerc di mantenere la corona d'talia, ma la forte
opposizione dei vescovi e di alcuni conti e
marchesi fedeli all'imperatore non gli permise di
portare a termine i propri piani.
?
?

Oppure da:
Bar di Re Arduino
Piazza Vincenzo Gioberti,
13, , (TO)
?

Arduino mega C61
Arduino nano C48
Arduino 2009 C29

Shield, chi era costui?

Si tratta di piccole schede collegabili ad


Arduino.

Possono fare molte cose:

Collegamenti radio, zigbee, telefonici.

Controllo motori, connessione ethernet,

Controllo schede memoria, etc.



MEGA 1280 DUEMILANOVE 328 NANO 168 NANO 328
MicrocontroIIer ATmega1280 ATmega 328 ATmega 168; ATmega 328
DigitaI I/O Pins
54 (of which 14 provide
PWM output)
14 (di cui 6 utiIizzati come
uscite PWM) 14 (of which 6 provide PWM output)
AnaIog Input Pins 16
6 a 10 bit di risoIuzione
(ovvero 1024 vaIori
differenti; 0-5V) 8 at 10 bits of resoIution
DC Current per
I/O Pin 40 mA 40 mA 40 mA
FIash Memory
128 KB of which 4 KB used
by bootIoader
16 KB (di cui 2 KB utiIizzati
daI bootIoader)
16 KB (ATmega168) or 32 KB
(ATmega328) of which 2 KB
used by bootIoader
SRAM 8 KB 1 KB 1 KB (ATmega168) or 2 KB (ATmega328)
EEPROM 4 KB 512 bytes
512 bytes (ATmega168) or 1
KB (ATmega328)
CIock Speed 16 MHz 16 MHz 16 MHz
SeriaI port used
to receive (RX)
and transmit (TX)
TTL seriaI data
SeriaI 0: (RX) and 1 (TX);
SeriaI 1: 19 (RX) and 18
(TX); SeriaI 2: 17 (RX) and
16 (TX); SeriaI 3: 15 (RX)
and 14 (TX). SeriaI: 0 (RX) e 1 (TX). SeriaI: 0 (RX) e 1 (TX).
ExternaI
Interrupts
ExternaI Interrupts: 2
(interrupt 0 ), 3 ( interrupt 1 ),
18 ( interrupt 5 ), 19
(interrupt 4 ), 20 ( interrupt
3), and 21 ( interrupt 2 ). Interrupt esterni: 2 e 3. ExternaI Interrupts: 2 and 3.
PuIse Width
ModuIation PWM: 0 to 13. PWM: 3, 5, 6, 9, 10, e 11. PWM: 3, 5, 6, 9, 10, and 11.
BUS SPI
SPI: 50 (MISO), 51 (MOSI), 52
(SCK), 53 (SS).
SPI: 10 (SS), 11 (MOSI), 12
(MISO), 13 (SCK).
SPI: 10 (SS), 11 (MOSI), 12
(MISO), 13 (SCK).
LED LED: 13. LED: 13. LED: 13.
BUS I2C I
2
C: 20 (SDA) and 21 (SCL) I2C: 4 (SDA) and 5 (SCL). I
2
C: 4 (SDA) and 5 (SCL).
AnaIog
Reference
VoItage
AREF. Reference voItage for
the anaIog inputs.
AREF. VoItaggio di
riferimento per gIi ingressi
anaIogici.
AREF. Reference voItage for
the anaIog inputs.
Reset Reset. Reset. Reset.

Arduino Mega

MicrocontroIIore: ATmega2560 (noi ATmega1280)

Tensione di aIimentazione 6-20V; (raccomandata 7-


12V)

Ingressi/uscite DigitaIi: 54 (di cui 14 possono essere


utilizzate come uscite PWM)

Ingressi anaIogici: 16

Corrente Dc per pin I/O: 40 mA

Memoria FIash: 256 kB (di cui 8 kB utilizzati dal


bootloader)

SRAM: 8 kB

EEPROM: 4 kB

CIock: 16 MHz

Come si programma

Arduino programming
language (derivato da c+
+)

Ambiente di sviluppo
molto facile

i programmi si chiamano
sketch

Comunque programmare
non mai una banalit

SempIice programma per I'accensione ripetuta
di un LED neII'ambiente di sviIuppo di Arduino
#define LED_PIN 13
void setup () {
pinMode (LED_PIN, OUTPUT); // abilita il pin 13 per
l'output digitale }
void loop () {
digitalWrite (LED_PIN, HIGH); // accende il LED
delay (1000); // aspetta 1 secondo (1000
millisecondi)
digitalWrite (LED_PIN, LOW); // spegne il LED
delay (1000); // aspetta un secondo
}

Le nostre prove
1. Modem GPRS GSM862GPRS (QUAD) di
TeIit (105 C)
2. Memoria fIash ARDUINOSDLETT (13.0 C)
3. OroIogio in tempo reaIe PCF8583
(3.58C)
4. MuItipIexer anaIogico ADG406BNZ
(10.25 C) + PCF8574P (2.48 C)
5. DispIay a cristaIIi Iiquidi PC1602AR-H
16x2 (10.27 C)


Prova 1: Modem GPRS GSM862GPRS
(QUAD)
Permette la
connessione di
Arduino
all'NTERNET
Con i protocolli
HTTP
FTP


Libelium Hilo-Sagem ~ 70C
http://www.libelium.com

Prova 2: Secure Digital (SD)
card

utilizza una memoria flash contenuta al suo


interno.

consumo energetico ridotto (in sleep = 250 uA,


Lettura / Scrittura = 80 mA).

dimensioni molto contenute (32 24mm per


2,1mm di spessore),

capacit di memorizzazione elevate (64 GiB e pi)

velocit di trasferimento che raggiunge i 22,5 Mb/s


nelle nuove 150x.

prefissi per muItipIi binari sono una serie di prefissi istituiti dalla
Commissione Elettrotecnica nternazionale (EC) nel dicembre 1998 per
evitare l'uso da parte degli informatici dei prefissi standard S per
indicare non i multipli decimali (per cui sono stati pensati e
standardizzati) ma binari, sfruttando il fortuito caso che la decima
potenza del 2 (1024) molto vicina alla terza potenza di 10 (1000).
Fattore Simbolo EC Nome EC Nome esteso Simbolo S Nome S Fattore S Errore
2^10 Ki kibi kilobinary ~ k kilo 10^3 +2,4%
2^20 Mi mebi megabinary ~ M mega 10^6 +4,9%
2^30 Gi gibi gigabinary ~ G giga 10^9 +7,4%
2^40 Ti tebi terabinary ~ T tera 10^12 +10,0%
2^50 Pi pebi petabinary ~ P peta 10^15 +12,6%
2^60 Ei exbi exabinary ~ E exa 10^18 +15,3%
2^70 Zi zibi zettabinary ~ Z zetta 10^21 +18,0%
2^80 Yi yobi yottabinary ~ Y yotta 10^24 +20,8%
kibibyte 1024 byte, indicato con KiB
mebibyte 1024 kibibyte, indicato con MiB
gibibyte 1024 mebibyte, indicato con GiB
tebibyte 1024 gibibyte, indicato con TiB
Da notare l'uso di
una B maiuscola
per differenziare
Byte e bit.

metaI-oxide-semiconductor fieId-effect transistor (MOSFET ) usati nelle
memorie flash hanno funzionamento simile alle idrovalvole: una camera di
dimensioni variabili, contenente acqua o cariche elettriche, modula il flusso
idrovalvola
La meccanica quantistica prevede che una particella abbia una probabilit, piccola
ma finita, di attraversare spontaneamente una barriera arbitrariamente alta.
Effetto tunneI usato per
iniettare cariche neIIa camera
chiusa (fIoating gate) deI
MOSFET

SEEEDUNO ARDUNOSDLETT
http://www.seeedstudio.com http://www.futurashop.it 13.0 C

Piccola scheda dotata di slot per SD max


2GiB (limite max FAT16)

Permette ai dispositivi come Arduino e


Seeeduino di leggere e scrivere le SD
card con apposite librerie disponibili
gratuitamente.
Abbiamo regolarmente scritto e letto i dati da una
SD da 512 MiB.
Libreria ad oggetti C++:

Class SD: definisce oggetti file-system FAT16

Class File: definisce oggetti file




Adafruit Data logging shield for Arduino
$19.50
80 Nassau Street, Unit 4C, New York, NY 10038
http://www.adafruit.com

L'interfaccia gestisce schede SD formattate per FAT16


(DOS) o FAT32 (Windows 95) (FAT=File Allocation Table ).

Real time clock (RTC) lavora anche quando Arduino


staccato. La batteria dura alcuni anni.

Sono incluse librerie sia per SD che per RTC che facilitano
molto la programmazione.

C'e un'area di sperimentazione a connessioni forate per


saldare connettori, circuiteria o sensori.

l regolatore a 3.3V serve come stabile tensione di


riferimento ed alimenta in modo affidabile le schede SD,
che richiedono molta potenza per funzionare.

Preferibile usare questa scheda con un Arduino con il chip


'328.

Seeeduino Stalker
Prezzo C 36,00
http://www.seeedstudio.com http://www.futurashop.it

microcontrollore ATmega168.

Dispone di RTC (Real Time Clock),

slot per micro SD card,

20 /O,

protocollo di comunicazione 2C e
UART(universal asynchronous
receiver/transmitter ),

connettore per inserire moduli wireless come


Xbee, Bluetooth e RF.

Pu essere impiegata come hub per la raccolta


dati real time da sensori esterni, come data
logger GPS, per il monitoraggio, ecc.

Memoria RAM a basso voltaggio 240 x 8 bit

Corrente di esercizio (a fSCL = 0 Hz): max 50 A

Funzione orologio con calendario quadriennale

Timer universale con allarme e indicatore di overflow

Base dei tempi a 32.768 kHz o 50 Hz

Bus serial di input - output (2C-bus)

Funzioni programmabili di allarme, timer e interrupt


Prova 3: OroIogio in tempo reaIe
PCF8583
L'orologio in tempo reale stato usato con successo nella
sequenza:

Arduino, via bus 2C imposta sull'orologio un'ora di risveglio e


poi si suicida tramite un rel bistabile sull'alimentazione

Quando suona la sveglia, l'RTC manda un impulso al rel,


che cambia stato ri-accendendo Arduino

Arduino prende da RTC il tempo e imposta il proprio orologio



Multiplexer analogico 16 x 1

resistenza on max: 125C

Range temp.:-40c to +85c;


Prova 4: MuItipIexer
2 x ADG406BNZ 16/1 + 1 expander 2C 8bit PCF8574P
1. Usato per espandere il numero di ingressi
oltre quello presente sulla scheda Arduino
(2009=6, nano=8, mega=16).
2. Due ADG406BNZ sono pilotati in modo
indipendente per mezzo di un PCF8574P.
3. La resistenza on del multiplexer di circa
100 ohm; vanno perci usati circuiti ad alta
impedenza o in corrente

Uso del multiplexer
arduino
ADG406BNZ multiplexer 16/1
PCF8574P
Expander
2C 8bit
Bus
2C
3 2 1 0
8 4 2 1
0 0 0 0 = 0
0 0 0 1 = 1
0 0 1 0 = 2
0 0 1 1 = 3
... . .. .. ..
1 1 1 0 =14
1 1 1 1 =15


Shield Multiplexer 48 ingressi
http://mayhewlabs.com http://store.arduino.cc C25
Adds an additional 48 analog or digital inputs or
outputs to the Arduino and Arduino Mega
using three Texas nstruments CD74HC4067 Analog Multiplexers; HC = High
speed CMOS, 12nS

Prova 5: DispIay a cristaIIi Iiquidi
PC1602AR-H 16x2 (10.27 C)
0 or 4
1 or 5
2 or 6
3 or 7
0
1
2
3
4
5
6
7
Most
Significant
Nibble
Least
Significant
Nibble



Ecco tutto l'apparato sperimentale

Conclusioni

mparare l'uso di Arduino non particolarmente


gravoso (per almeno un po' di elettronica.)

prezzi delle schede sono popolari

Esistono shield pronti per molte applicazioni

Esiste una vasta comunit di utenti

Nel prossimo autunno ci piacerebbe tenere un


piccolo corso di Arduin-agro-meteo ( posti
limitati, prenotatevi fin da ora!! )

Si Pu Fareeee