Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Introduzione ad Arduino del Maker DevLab

720 views

Published on

Prime slide che introducono il mondo Arduino per gli incontri del Maker DevLab organizzati dal GDG Nebrodi.

Published in: Devices & Hardware
  • Be the first to comment

Introduzione ad Arduino del Maker DevLab

  1. 1. Biagio (Gino) Zingales Alì Introduzione ad Arduino http://arduino.cc/ Introduzione ad Arduino
  2. 2. Arduino è una piattaforma di prototipazione elettronica open-source , il progetto completamente italiano, è nato ad Ivrea nel 2005 con lo scopo di ridurre i tempi di prototipizzazione dei prodotti elettronici ad un costo molto basso. Questo progetto prevede una intera famiglia di board che si differenziano per capacità di elaborazione, tipologia di connettività disponibile, dimensioni e dotazione software/firmware. Si va infatti dalla “Arduino Uno” considerata come la entry level della famiglia alla “Arduino Yun” che attualmente rappresenta il top della gamma (con a bordo Linux) passando per tante altre board adatte ad usi differenti.
  3. 3. Dove le periferiche a disposizione a bordo non bastino per i nostri progetti, potremmo acquistare una delle numerose “shield” attraverso le quali è possibile estendere le potenzialità della scheda elettronica di base. Esistono moltissime shield ufficiali, ma anche di terze parti. LE SHIELD Arduino Ethernet Shield Arduino WiFi Shield Arduino GSM Shield Store ufficiale Arduino http://store.arduino.cc/
  4. 4. E’ una board basata su un microcontrollore della Atmel, ATmega328, che ha a bordo tutta la memoria e lo storage necessario per i nostri sketch; in particolare abbiamo a disposizione: ● 32 KB di memoria Flash (di cui 0,5 KB sono occupati dal bootloader), la memoria Flash viene utilizzata per il salvataggio dello “sketch” che abbiamo creato e sarà lanciato in esecuzione ad ogni avvio della board; ● 2 KB di SRAM (Static RAM), la memoria RAM è utilizzata a runtime (ad esempio per le variabili) ; ● 1 KB di EEPROM (Electrically Erasable Programmable ROM), che serve per salvare eventuali dati e parametri di configurazione utili e/o necessari al nostro programma. In termini di capacità di calcolo, stiamo parlando di un microcontrollore con architettura RISC (Reduced Instruction Set Computer) ad 8-bit (e bene sì… avete letto proprio giusto! Solamente 8 bit contro i processori moderni a 32 e 64 bit) con una frequenza di clock di 16 Mhz (dimenticatevi i Ghz dei vostri PC e/o Smartphone). Anche se questi numeri vi sembrano piccoli, vi posso assicurare che sarà possibile realizzare qualsiasi cosa. Occhio sempre allo spreco dei bytes non necessari! Arduino UNO
  5. 5. I pin del microcontrollore sono due connettori posti ai bordi della scheda. In particolare, sono disponibili: 14 pin digitali e 6 pin analogici, in quanto l’Atmega328 è dotato anche di un AD Converter (Analog to Digital) . Ciascuno dei pin digitali può essere pilotato in maniera indipendente da software, impostandone il livello 1 (HIGH) o 0 (LOW), ed utilizzato come pin di GPIO (General Purpose Input Output); I/O Arduino UNO
  6. 6. Alcuni di questi pin hanno funzionalità aggiuntive e se configurati in maniera opportuna possono diventare : ● Una porta seriale di tipo TTL (attenzione non RS232) caratterizzata dai soli segnali RX (Ricezione) e TX (trasmissione); ● Due pin per segnalare (“triggerare”) un interrupt verso il microcontrollore, in corrispondenza del quale deve essere magari eseguita una specifica elaborazione; ● Segnali di output di tipo PWM (Pulse Width Modulation) per ottenere una tensione media variabile (che non sia solo HIGH o LOW); ● Una porta SPI (Serial Peripheral Interface) utilizzata per l’interconnessione con device esterni attraverso il bus sincrono di tipo SPI; ● Una porta I2C (Inter Integrated Circuit) che come l’SPI è utilizzata su un bus sincrono per la connessione ad altri device. Essa è anche nota come TWI (Two Wires Interface) infatti è costituita da due soli segnali contro i quattro previsti dall’SPI; ● Il pin che stabilisce la tensione di riferimento (AREF, Analog REFerence) per tutti gli input analogici. Essa è necessario per stabilire il range di valori che l’AD Converter produce sulla base dei 10 bit a disposizione (in pratica esso fornirà un valore numerico compreso tra 0 e 1023, in corrispondenza ai valori di tensione da 0 a AREF Volts); La board mette a disposizione due alimentazioni in uscita a 3,3V e 5V che possono alimentare uno o più dispositivi esterni, un segnale di RESET e un LED a bordo che viene identificato dal pin 13. L’unica connettività con il mondo esterno è caratterizzata da un connettore USB che possiamo sfruttare per il collegamento al nostro PC di sviluppo. Il PC avrà a disposizione una porta seriale per poter comunicare con Arduino Uno, infatti, grazie a specifici driver da installare ed al convertitore “USB-to-serial” di cui la board è dotata (di fatto il microcontrollore non ha un’interfaccia USB nativa, ma utilizza sempre una comunicazione di tipo seriale). I/O Arduino UNO
  7. 7. Il linguaggio di programmazione utilizzato per Arduino è il C/C++; è possibile utilizzare o meno il supporto per le classi che il C++ mette a disposizione. Il compilatore utilizzato è dedicato per i microcontrollori della famiglia AVR della Atmel e fa parte di una ben definita toolchain GCC. I programmi che vengo realizzati per Arduino di chiamano SKETCH L’ambiente di sviluppo (IDE)
  8. 8. Struttura http://arduino.cc/en/Reference/HomePage Per maggiori informazioni Uno Sketch è diviso in tre sezioni fondamentali: ● Costrutti ● Valori (variabili e costanti) ● Funzioni. Costrutti Valori Funzioni setup() loop() Costrutti di controllo if if...else for switch case while do... while break continue return goto ... Costanti HIGH | LOW INPUT | OUTPUT | INPUT_PULLUP LED_BUILTIN true | false integer constants floating point constants ... Digitali I/O pinMode() digitalWrite() digitalRead() Analogici I/O analogReference() analogRead() analogWrite() - PWM ...
  9. 9. Analisi struttura Sketch setup() Questa funzione viene eseguita una ed una sola volta quando parte lo “sketch” all’accensione (o il reset della board). Viene utilizzata per effettuare le inizializzazioni necessarie al programma come ad esempio l’impostazione dei valori iniziali delle variabili, le modalità di uso dei pin (input, output, etc.) e l’inizializzazione delle librerie utilizzate. loop() Questa funzione rappresenta il “loop” principale del programma. Ciò significa che le istruzioni contenute al suo interno vengono eseguite in mado ciclico (dalla prima all’ultima per poi ripartire dall’inizio).
  10. 10. I pin di Arduino pinMode(pin, mode) Per quanto riguarda il led a bordo della “Arduino Uno”, c’è da dire che esso è collegato al pin numero 13 del microcontrollore che altro non è che un pin digitale! Come accennato, tutti i pin digitali di Arduino sono configurabili come input oppure come output, così come alcuni di essi anche con funzioni molto più complesse (seriale TTL, bus SPI, bus I2C, …). La prima operazione da fare consiste nell’impostare il pin 13 come output e per farlo possiamo avvalerci della funzione pinMode, ecco la sintassi: il numero del pin da impostare INPUT/OUTPUT int led = 13; void setup() { // inizializzazione del pin in uscita pinMode(led, OUTPUT); } digitalWrite(pin, modvaluee) il numero del pin modificare il valore HIGH/LOW void loop() { digitalWrite(led, HIGH); // accende il led digitalWrite(led, LOW); // spegne il led } delay(ms) ritardo tra un’ istruzione e l’altra
  11. 11. Sensori e Attuatori: il Physical Computing Sensori Esistono numerosi sensori che possono essere utilizzati per acquisire grandezze fisiche nel mondo reale. Attuatori Gli attuatori vengono utilizzati per interagire con il mondo reale. Un motore è un attuatore, mette in movimento un oggetto (es. una ventola di raffreddamento) così come un relé che viene utilizzato come interruttore ad esempio per accendere una lampadina al cambiamento di stato di un sensore PIR. Temperatura Umidità Luce (fotoresistenza) Ultrasuoni Pir (Movimento) Umidità Servo-motore Relé 5V - 220V
  12. 12. http://arduino.cc/ - Sito ufficiale http://playground.arduino.cc/Italiano/Tutorials - Molto materiale per iniziare http://www.mauroalfieri.it/corso-arduino-on-line.html - Sito ricco di informazioni UN PO’ DI LINK /biagio.zingales /+BiagioZingalesAlì @biagio_zingales
  13. 13. Fate viaggiare la vostra fantasia!

×