POTENZIALITÀ AGRO-METEO DELLA PIATTAFORMA ARDUINO - Giambattista Toller1*, Aldo Biasi1, Stefano Corradini1 Fondazione Edmund Mach, via E.Mach 1 ...
←
→
Trascrizione del contenuto della pagina
Se il tuo browser non visualizza correttamente la pagina, ti preghiamo di leggere il contenuto della pagina quaggiù
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)
Una piattaforma informatica è una base software e/o hardware su cui sono eseguite e/o sviluppate applicazioni 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.
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. • Il 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 General Public License • La GNU General Public 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.
Il 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 Romano-Germanico degli Ottoni. • Nel 1002, approfittando della morte di Ottone III, un nutrito gruppo di vassalli ostili al potere. imperiale lo elesse re d'Italia. • Per dieci anni, tra il 1004 ed il 1014, Arduino cercò di mantenere la corona d'Italia, 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.
Arduino mega €61 Arduino nano €48 Arduino 2009 €29
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 Microcontroller ATmega1280 ATmega 328 ATmega 168; ATmega 328 54 (of which 14 provide 14 (di cui 6 utilizzati come Digital I/O Pins PWM output) uscite PWM) 14 (of which 6 provide PWM output) 6 a 10 bit di risoluzione (ovvero 1024 valori Analog Input Pins 16 differenti; 0-5V) 8 at 10 bits of resolution DC Current per I/O Pin 40 mA 40 mA 40 mA 16 KB (ATmega168) or 32 KB 128 KB of which 4 KB used 16 KB (di cui 2 KB utilizzati (ATmega328) of which 2 KB Flash Memory by bootloader dal bootloader) used by bootloader SRAM 8 KB 1 KB (ATmega168) 1 KB or 2 KB (ATmega328) 512 bytes (ATmega168) or 1 EEPROM 4 KB 512 bytes KB (ATmega328) Clock Speed 16 MHz 16 MHz 16 MHz Serial 0: (RX) and 1 (TX); Serial port used Serial 1: 19 (RX) and 18 to receive (RX) (TX); Serial 2: 17 (RX) and and transmit (TX) 16 (TX); Serial 3: 15 (RX) TTL serial data and 14 (TX). Serial: 0 (RX) e 1 (TX). Serial: 0 (RX) e 1 (TX). External Interrupts: 2 (interrupt 0 ), 3 ( interrupt 1 ), 18 ( interrupt 5 ), 19 External (interrupt 4 ), 20 ( interrupt Interrupts 3), and 21 ( interrupt 2 ). Interrupt esterni: 2 e 3. External Interrupts: 2 and 3. Pulse Width Modulation PWM: 0 to 13. PWM: 3, 5, 6, 9, 10, e 11. PWM: 3, 5, 6, 9, 10, and 11. SPI: 50 (MISO), 51 (MOSI), 52 SPI: 10 (SS), 11 (MOSI), 12 SPI: 10 (SS), 11 (MOSI), 12 BUS SPI (SCK), 53 (SS). (MISO), 13 (SCK). (MISO), 13 (SCK). LED LED: 13. LED: 13. LED: 13. 2 2 BUS I2C I C: 20 (SDA) and 21 (SCL) I2C: 4 (SDA) and 5 (SCL). I C: 4 (SDA) and 5 (SCL). Analog AREF. Voltaggio di Reference AREF. Reference voltage for riferimento per gli ingressi AREF. Reference voltage for Voltage the analog inputs. analogici. the analog inputs. Reset Reset. Reset. Reset.
Arduino Mega • Microcontrollore: ATmega2560 (noi ATmega1280) • Tensione di alimentazione 6-20V; (raccomandata 7- 12V) • Ingressi/uscite Digitali: 54 (di cui 14 possono essere utilizzate come uscite PWM) • Ingressi analogici: 16 • Corrente Dc per pin I/O: 40 mA • Memoria Flash: 256 kB (di cui 8 kB utilizzati dal bootloader) • SRAM: 8 kB • EEPROM: 4 kB • Clock: 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à
Semplice programma per l'accensione ripetuta di un LED nell'ambiente di sviluppo 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 Telit (105 €) 2. Memoria flash ARDUINOSDLETT (13.0 €) 3. Orologio in tempo reale PCF8583 (3.58€) 4. Multiplexer analogico ADG406BNZ (10.25 €) + PCF8574P (2.48 €) 5. Display a cristalli liquidi PC1602AR-H 16x2 (10.27 €)
Prova 1: Modem GPRS GSM862GPRS (QUAD) Permette la connessione di Arduino all’INTERNET Con i protocolli HTTP FTP
Libelium Hilo-Sagem ~ 70€ 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 × 24 mm per 2,1 mm di spessore), • capacità di memorizzazione elevate (64 GiB e più) • velocità di trasferimento che raggiunge i 22,5 Mb/s nelle nuove 150x.
I prefissi per multipli binari sono una serie di prefissi istituiti dalla Commissione Elettrotecnica Internazionale (IEC) nel dicembre 1998 per evitare l'uso da parte degli informatici dei prefissi standard SI 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 IEC Nome IEC Nome esteso Simbolo SI Nome SI Fattore SI 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 Da notare l'uso di mebibyte 1024 kibibyte, indicato con MiB una B maiuscola gibibyte 1024 mebibyte, indicato con GiB per differenziare tebibyte 1024 gibibyte, indicato con TiB Byte e bit.
metal–oxide–semiconductor field-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 Effetto tunnel usato per iniettare cariche nella camera chiusa (floating gate) del MOSFET La meccanica quantistica prevede che una particella abbia una probabilità, piccola ma finita, di attraversare spontaneamente una barriera arbitrariamente alta.
SEEEDUINO – ARDUINOSDLETT http://www.seeedstudio.com http://www.futurashop.it 13.0 € • 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. • Il 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 € 36,00 http://www.seeedstudio.com http://www.futurashop.it • microcontrollore ATmega168. • Dispone di RTC (Real Time Clock), • slot per micro SD card, • 20 I/O, • protocollo di comunicazione I2C 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.
Prova 3: Orologio in tempo reale PCF8583 • 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 (I2C-bus) • Funzioni programmabili di allarme, timer e interrupt L’orologio in tempo reale è stato usato con successo nella sequenza: • Arduino, via bus I2C 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
Prova 4: Multiplexer 2 x ADG406BNZ 16/1 + 1 expander I2C – 8bit PCF8574P • Multiplexer analogico 16 x 1 • resistenza on max: 125Ω • Range temp.:-40°c to +85°c; 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
3 2 1 0 Uso del multiplexer 8 0 4 0 2 0 1 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 ADG406BNZ multiplexer 16/1 arduino PCF8574P Expander Bus I2C – 8bit I2C
Shield Multiplexer 48 ingressi http://mayhewlabs.com http://store.arduino.cc €25 Adds an additional 48 analog or digital inputs or outputs to the Arduino and Arduino Mega using three Texas Instruments CD74HC4067 Analog Multiplexers; HC = High speed CMOS, 12 nS
Prova 5: Display a cristalli liquidi PC1602AR-H 16x2 (10.27 €) Least Significant Nibble 0 1 0 or 4 1 or 5 2 2 or 6 3 3 or 7 4 5 6 7 Most Significant Nibble
Ecco tutto l’apparato sperimentale
Conclusioni • Imparare l’uso di Arduino non è particolarmente gravoso (però almeno un po’ di elettronica…) • I 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
Puoi anche leggere