Arduino: domotica open source Emanuele Palazzetti Feedback: http://tinyurl.com/arduinold2011 1
Physical Computing Costruire dei sistemi fisici interattivi tramite l'uso di software e di hardware in grado di percepire e rispondere al mondo analogico Può essere visto come un framework creativo Progetti che usano sensori e microcontrollori per tradurre l'input analogico ad un sistema software 2
Arduino Sviluppato in Italia dal team Massimo Banzi, David Cuartielles, Tom Igoe, Gianluca Martino e David Mellis. Framework open-source per la creazione rapida di prototipi Licenza Creative Commons Attribution-ShareAlike 3.0 Dispone di una base software comune che permette di interfacciarsi a qualsiasi oggetto elettronico quale computer, sensore, display o attuatore Ha una grande community 3
Arduino (2) (Arduino Uno) 4
Arduino (3) (Arduino Uno) (Arduino Mega 2560) (Arduino Ethernet POE) (Arduino LilyPad) 5
Arduino (4) (Ethernet Shield) (Color display Shield) (GPS Shield) (GSM Shield) 6
Campi di applicazione Domotica Agricoltura Controllo accessi Robotica amatoriale Dispositivi di allarme Stazioni meteo Sistemi di controllo, anche remoti (esclusi quelli real time) Dispositivi wireless Dispositivi con accesso LAN Utilizzo per scopi didattici e sperimentali 7
Funzionamento Volt IN: 7-12V Microcontrollore ATmega328 14 pin digitali (I/O) 6 uscite analogiche (~) 6 ingressi analogici 8
Funzionamento (2) PIN digitale PIN analogico Input ed Output a scelta Input oppure Output Assume un valore booleano {HIGH, LOW} (acceso o spento) Può assumere una gamma di valori [0, 255] Attiva o disattiva un dispositivo Permette la lettura di valori continui (sensori di temperatura) oppure regola l'intensità luminosa (LED RGB) 9
Programmazione arduino Basato su un linguaggio open source (Wiring) analogo al linguaggio C / C++ seppur è stato notevolmente semplificato Vasta gamma di librerie, incluse quelle ausiliarie per l'utilizzo degli shield collegati L'ambiente di sviluppo integrato è multipiattaforma (Linux, OSX, Windows) Tutta la parte software è rilasciata sotto licenza GPL o LGPL Arduino viene programmato con un attacco seriale oppure via USB se la board la include 10
Programmazione arduino (2) Derivato da Processing Raccoglie i programmi sviluppati in sketchbook Compila lo sketch e lo carica nella board arduino Prevede un serial monitor per monitorare gli impulsi seriali trasmessi e ricevuti 11
Programmazione arduino (3) Dichiarazioni globali da riutilizzare nel programma (MAC address, IP, intensità LED RGB, ecc...) Inizializzazione dei PIN ed attivazione degli shield connessi (viene abilitata la connessione di rete) Ciclo principale di esecuzione che contiene il programma vero e proprio 12
Esempio digitalwrite(pin, HIGH); 13
Android Device Kit (ADK) Kit di sviluppo impiegato per lo sviluppo di applicazioni Android in grado di interagire con un dispositivo Arduino-compatibile E' disponibile per le versioni Android successive al 3.1 (tablet) e 2.3.4 (smartphone) 14
Home automation Uso della logica impiegata nella domotica tradizionale + Uso delle potenzialità di Arduino + Uso delle capacità dei nuovi dispositivi (smartphone, tablet) = Home automation o anche Domotica open source 15
Home automation (2) Esempio presentato: Pannello di controllo al cui interno sono presenti 3 relè in grado di pilotare una ventola e due lampadine con relativi LED di stato Batteria da 12V per alimentare i dispositivi esterni Arduino Ethernet con POE Tablet Android Honeycomb 3.2.1 che, tramite applicazione, pilota la ventola e le due lampadine 16
Home automation (3) 17
GRAZIE PER L'ATTENZIONE! Sito di riferimento: http://www.arduino.cc Feedback: http://tinyurl.com/arduinold2011 Slide: http://tinyurl.com/arduinold2011slide 18