ARI Sezione di Ivrea 19/02/2010 ARI Sezione di Ivrea Serate tecniche 2012 IZ1MHN e IW1ALX ARI Sezione di Ivrea Serate tecniche 2012 Agenda Introduzione ad Arduino Arduino l’hardware Arduino il software Alcune idee realizzabili con Arduino E se facessimo… un corso? Serate Tecniche 2010 1 ARI Sezione di Ivrea 19/02/2010 ARI Sezione di Ivrea Serate tecniche 2012 Introduzione ad Arduino Cos’è Arduino Un po’ di storia Open source Open Hardware ARI Sezione di Ivrea Serate tecniche 2012 Cos’è Arduino “Arduino is an open-‐source electronics prototyping platform based on flexible, easy-‐to-‐use hardware and software. It's intended for artists, designers, hobbyists, and anyone interested in creating interactive objects or environments.” (dal sito ufficiale di Arduino) Serate Tecniche 2010 2 ARI Sezione di Ivrea 19/02/2010 ARI Sezione di Ivrea Serate tecniche 2012 Cos’è Arduino In pratica… Una scheda Un ambiente di sviluppo Una filosofia e una community ARI Sezione di Ivrea Serate tecniche 2012 La storia di Arduino Il progetto nasce in Italia ad Ivrea, nel 2005, con lo scopo di rendere disponibile per i progetti di Interaction Design realizzati da studenti, un dispositivo per il controllo che fosse più economico rispetto ad altri sistemi di prototipazione disponibili all’epoca. Il team di Arduino è composto da Massimo Banzi, David Cuartielles, Tom Igoe, Gianluca Martino, e David Mellis. Serate Tecniche 2010 3 ARI Sezione di Ivrea 19/02/2010 ARI Sezione di Ivrea Serate tecniche 2012 Open Source Da Wikipedia In informatica, open source (termine inglese che significa sorgente aperta) indica un software i cui autori (più precisamente i detentori dei diritti) ne permettono, anzi ne favoriscono il libero studio e l'apporto di modifiche da parte di altri programmatori indipendenti. Questo è realizzato mediante l'applicazione di apposite licenze d'uso. ARI Sezione di Ivrea Serate tecniche 2012 Open Hardware Da Wikipedia: Hardware libero si riferisce ad hardware elettronici e di computer che sono stati progettati con la stessa politica del software libero ed open source (FOSS). … . Il termine viene principalmente usato per esprimere la libera divulgazione di informazioni riguardanti il progetto stesso dell'hardware, comprendente gli schemi, la lista dei materiali, il layout dei dati del circuito stampato, solitamente insieme al FOSS per far girare l'hardware. Serate Tecniche 2010 4 ARI Sezione di Ivrea 19/02/2010 ARI Sezione di Ivrea Serate tecniche 2012 Open Hardware Infatti per Arduino abbiamo disponibili Gli schemi I PCB e le BOM Il codice per il bootload Ovviamente anche l’IDE e il linguaggio sono Open Source ARI Sezione di Ivrea Serate tecniche 2012 Open Hardware Ad esempio, per Arduino UNO: http://arduino.cc/en/
Main/ArduinoBoardUno Serate Tecniche 2010 5 ARI Sezione di Ivrea 19/02/2010 ARI Sezione di Ivrea Serate tecniche 2012 Arduino: l’hardware Arduino Uno R3 Arduino Mega 2560 Arduino Ethernet Arduino “Cloni” Gli shield ARI Sezione di Ivrea Serate tecniche 2012 Arduino UNO R3 Serate Tecniche 2010 6 ARI Sezione di Ivrea 19/02/2010 ARI Sezione di Ivrea Serate tecniche 2012 Arduino UNO R3 ARI Sezione di Ivrea Serate tecniche 2012 Arduino MEGA 2560 Serate Tecniche 2010 7 ARI Sezione di Ivrea 19/02/2010 ARI Sezione di Ivrea Serate tecniche 2012 Arduino Ethernet Microcontroller
Operating4Voltage
Input4Voltage4Plug4(recommended)
Input4Voltage4Plug4(limits)
Input4Voltage4PoE4(limits)
Digital4I/O4Pins
Arduino4Pins4reserved:
Analog4Input4Pins
DC4Current4per4I/O4Pin
DC4Current4for43.3V4Pin
Flash4Memory
SRAM
EEPROM
Clock4Speed
W51004TCP/IP4Embedded4Ethernet4Controller
Power4Over4Ethernet4ready4Magnetic4Jack
Micro4SD4card,4with4active4voltage4translators
ATmega328
5V
7>12V
6>20V
36>57V
144(of4which444provide4PWM4output)
104to4134used4for4SPI
44used4for4SD4card
24W51004interrupt4(when4bridged)
6
404mA
504mA
324KB4(ATmega328)
24KB4(ATmega328)
14KB4(ATmega328)
164MHz
ARI Sezione di Ivrea Serate tecniche 2012 Arduino altre Arduino BT Arduino Leonardo Arduino LilyPad Arduino Fio Arduino Pro Arduino Nano Arduino Mini Arduino Pro Mini Serate Tecniche 2010 8 ARI Sezione di Ivrea 19/02/2010 ARI Sezione di Ivrea Serate tecniche 2012 Arduino “Cloni” Gli schemi, la BOM, i PCB sono tutti disponibili. Sul sito viene illustrato come fare la “Arduino Single-‐Sided Serial Board” Volendo basta procurarsi il micro ANCHE non programmato (ma è più semplice se ne avete almeno uno già programmato!) ARI Sezione di Ivrea Serate tecniche 2012 Arduino da 0 Per caricare il bootloader: http://www.ladyada.net/library/arduino/
arduinoisp.htm http://www.arduino.cc/en/Hacking/Bootloader Per realizzare una “scheda” http://www.instructables.com/id/Standalone-‐Arduino-‐
ATMega-‐chip-‐on-‐breadboard/ http://www.jameco.com/Jameco/workshop/
JamecoBuilds/arduinocircuit.html Serate Tecniche 2010 9 ARI Sezione di Ivrea 19/02/2010 ARI Sezione di Ivrea Serate tecniche 2012 Gli shield Uno Shield è una scheda che viene tipicamente connessa direttamente ad una board Arduino per compiere uno o più “compiti”. LCD Rete (wired, wireles, BT, RFID…) I/O Esiste una lista aggiornata degli shield principali: http://shieldlist.org Al momento: 288 shields from 116 makers, and counting! ARI Sezione di Ivrea Serate tecniche 2012 Arduino: il soRware L’IDE Il linguaggio Gli sketch Un velocissimo esempio Serate Tecniche 2010 10 ARI Sezione di Ivrea 19/02/2010 ARI Sezione di Ivrea Serate tecniche 2012 IDE “Arduino development environment” È l’ambiente di sviluppo di Arduino Basato su Processing Si scarica da: http://arduino.cc/en/Main/Software Multipiattaforma: Windows 32 e 64 Mac OSX Linux È simile ad un editor di testo e consente di: Scrivere il codice Caricarlo sulla scheda Fare il debug ARI Sezione di Ivrea Serate tecniche 2012 IDE Serate Tecniche 2010 11 ARI Sezione di Ivrea 19/02/2010 ARI Sezione di Ivrea Serate tecniche 2012 Il linguaggio Nasce da Wiring, ricorda il C http://arduino.cc/en/Reference/HomePage Si compone di tre “parti”: Strutture
Setup, loop, strutture logiche e gli operatori Valori
Costanti e varibili Funzioni
I/O digitale e analogico, matematiche, gestione del “tempo”, interrupt e analogiche ARI Sezione di Ivrea Serate tecniche 2012 Gli Sketch Uno Sketch è un programma nel gergo di Arduino. In pratica è ciò che viene caricato nel micro. Si compone di due aree principali La dichiarazione delle variabili Le funzioni È buona norma aggiungere una terza parte all’inizio: i commenti Serate Tecniche 2010 12 ARI Sezione di Ivrea 19/02/2010 ARI Sezione di Ivrea Serate tecniche 2012 Un velocissimo esempio /* semplice sketch che fa lampeggiare un led */ // Normalmente il PIN 13 ha un led connesso. // battezziamo il pin 13 con il nome LED: int led = 13; void setup() { /Definiamo il PIN 13 come un Output. pinMode(led, OUTPUT); } void loop() { digitalWrite(led, HIGH); // Accende il LED delay(1000); // aspetta un secondo digitalWrite(led, LOW); // Spegne il LED delay(1000); // aspetta un secondo } ARI Sezione di Ivrea Serate tecniche 2012 Un velocissimo esempio Commenti iniziali Tutto il testo (anche multilinea) compreso tra /* e */ viene considerato un commento Se una linea inizia con // è considerata un commento Usate sempre i commenti: dopo tre mesi che avete scritto uno sketch… Serate Tecniche 2010 13 ARI Sezione di Ivrea 19/02/2010 ARI Sezione di Ivrea Serate tecniche 2012 Un velocissimo esempio Setup () È la funzione che viene eseguita all’avvio della scheda. Viene eseguita UNA sola volta Viene usata per inizializzare le variabili, definire il modo dei pin, gestire le librerie… void setup() { // imposto i pin da 0 a 9 come Output // ricordarsi che i pin da 10 a 13 sono usati dall Ethernet Shield for(int i= 0; i < 10; i++) pinMode(i, OUTPUT); //configuro l'interfaccia Ethernet Ethernet.begin(mac, ip, gateway, subnet); //avvio il server server.begin(); } ARI Sezione di Ivrea Serate tecniche 2012 Un velocissimo esempio Loop () È la funzione principale Contiene il corpo principale del programma Viene eseguito continuamente fino al reset della scheda void loop() { // Controllo se ho ricevuto una nuova connessione // Se si, stampo il banner di benvenuto e imposto il flag di connesso a 1 if (server.available() && !connectFlag) { connectFlag = 1; client = server.available(); client.println("\nTelnet Server di AGT70"); client.println("per aiuto usare ?"); printPrompt(); } Serate Tecniche 2010 14 ARI Sezione di Ivrea 19/02/2010 ARI Sezione di Ivrea Serate tecniche 2012 Arduino: alcune idee… Con Arduino (come con altri micro) si possono realizzare 1000 progetti. Dalla sua ha un basso costo, un’ottima documentazione e una community di utenti in continua espansione. I progetti fatti con Arduino spaziano dalla robotica al radiantismo passando attraverso … tutto! Ad esempio: Un timer Un crono… Una ciabatta controllata via Internet … ARI Sezione di Ivrea Serate tecniche 2012 Arduino: E… se facessimo un corso pratico finalizzato a produrre un kit? Ad esempio: Un alimentatore controllato in tensione e corrente Un rosmetro Un accordatore Un digipeater APRS Un… che proponete? Serate Tecniche 2010 15 ARI Sezione di Ivrea 19/02/2010 ARI Sezione di Ivrea Serate tecniche 2012 Corso: cosa occorrerebbe? Arduino Uno R3 Una breadboard Un LCD (o uno shield LCD) Un modulo RTC Un po’ di rumenta… Resistenze Potenziometro Led Relay Un computer portatile (o uno in due o tre) Un po’ di pazienza per sopportare noi due ;-‐) Serate Tecniche 2010 16