Electronics LAB [with Arduino] | DAY 1
Upcoming SlideShare
Loading in...5
×
 

Electronics LAB [with Arduino] | DAY 1

on

  • 842 views

 

Statistics

Views

Total Views
842
Views on SlideShare
785
Embed Views
57

Actions

Likes
0
Downloads
51
Comments
0

2 Embeds 57

http://danielecostarella.com 56
https://twitter.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Electronics LAB [with Arduino] | DAY 1 Electronics LAB [with Arduino] | DAY 1 Presentation Transcript

  • ELECTRONICS LAB [WITH ARDUINO] Daniele Costarella Teatro Carlo Gesualdo / Casina Del Principe – Avellino – 28 > 31 agosto 2013 Salvatore Carotenuto
  • Rights to copy Electronics LAB [with Arduino]28 > 31 agosto 2013 2 Attribution – ShareAlike 3.0 Unported You are free: ● to Share - to copy, distribute and transmit the work ● to Remix – to adapt the work Under the following conditions: Attribution – You must attribute the work in the manner specified by the authors. Share Alike – If you alter, transform, or build upon this work, you may distribute the resulting work only under the same or similar license to this one. Your fair use and other rights are in no way affected by the above. To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/3.0/.
  • Filosofia del corso MAKE! MAKE! MAKE! Electronics LAB [with Arduino]28 > 31 agosto 2013 3
  • Il programma di oggi Mattina • Presentazione del corso • Microcontrollori e introduzione ad Arduino • Elementi di programmazione Pomeriggio • Cenni di elettronica • Primi passi con Arduino Electronics LAB [with Arduino]28 > 31 agosto 2013 4
  • Di cosa parleremo? In questo corso impareremo a costruire semplici oggetti elettronici in grado di interagire con gli esseri umani usando sensori e attuatori controllati da dispositivi elettronici. Electronics LAB [with Arduino]28 > 31 agosto 2013 5
  • Cos'è Arduino? Il mondo Arduino, fondamentalmente, si compone di 3 componenti essenziali Electronics LAB [with Arduino]28 > 31 agosto 2013 6
  • Cos'è Arduino? 1. Una scheda elettronica Electronics LAB [with Arduino]28 > 31 agosto 2013 7
  • Cos'è Arduino? 1. Una scheda elettronica 2. Un ambiente di sviluppo semplificato Electronics LAB [with Arduino]28 > 31 agosto 2013 8
  • Cos'è Arduino? 1. Una scheda elettronica 2. Un ambiente di sviluppo semplificato 3. Una filosofia e una comunità enorme Electronics LAB [with Arduino]28 > 31 agosto 2013 9
  • A cosa serve? Con Arduino è possibile creare circuiti per molte applicazioni nel campo della robotica, dell'automazione, e nella realizzazione di effetti luminosi e sonori E' inoltre un prodotto ideale per la protipazione rapida e per l'apprendimento delle basi dell'elettronica e della programmazione Electronics LAB [with Arduino]28 > 31 agosto 2013 10
  • Perché Arduino? Electronics LAB [with Arduino] • Artisti e designer • Progettisti elettronici • Open source hardware ● Open Source Physical Computing Platform • Open source ● Aperto a modifiche, schemi sempre disponibili • Community ● Wiki, forum, tutorial 28 > 31 agosto 2013 11
  • Physical Computing?! Electronics LAB [with Arduino] “Physical Computing is about prototyping with electronics, turning sensors, actuators and microcontrollers into materials for designers and artists.” “It involves the design of interactive objects that can communicate with humans using sensors and actuators controlled by a behaviour implemented as software running inside a microcontroller.” Massimo Banzi, Arduino Co-Founder 28 > 31 agosto 2013 12
  • CENNI DI ELETTRONICA
  • Segnali analogici e digitali Electronics LAB [with Arduino]28 > 31 agosto 2013 14
  • Parleremo di “tensione” per indicare la differenza tra il potenziale elettrico di due punti dello spazio. Una semplice analogia: • Acqua ↔ Carica • Pressione ↔ Tensione • Flusso ↔ Corrente Corrente, tensione e resistenza Electronics LAB [with Arduino]28 > 31 agosto 2013 15
  • Possiamo pensare all’ammontare di acqua che fluisce attraverso la condotta come la “corrente” che scorre in cavo elettrico Il nostro modello: • Acqua ↔ Carica [Coulomb] • Pressione ↔ Tensione [Volt] • Flusso ↔ Corrente [Ampere] • Ampiezza tubo ↔ Resistenza [Ohm] Corrente, tensione e resistenza Electronics LAB [with Arduino]28 > 31 agosto 2013 16
  • La “resistenza elettrica” è una grandezza fisica che misura la tendenza di un corpo ad opporsi al passaggio di una corrente elettrica, quando sottoposto a una tensione elettrica. Il nostro modello: • Acqua ↔ Carica [Coulomb] • Pressione ↔ Tensione [Volt] • Flusso ↔ Corrente [Ampere] • Ampiezza tubo ↔ Resistenza [Ohm] Corrente, tensione e resistenza Electronics LAB [with Arduino]28 > 31 agosto 2013 17
  • Riconoscere i componenti 28 > 31 agosto 2013 Electronics LAB [with Arduino] Resistori 18
  • Cenni di elettronica Resistori: codice colori 28 > 31 agosto 2013 Electronics LAB [with Arduino] 19
  • Cenni di elettronica 28 > 31 agosto 2013 Electronics LAB [with Arduino] Condensatori 20
  • Cenni di elettronica 28 > 31 agosto 2013 Electronics LAB [with Arduino] Diodi 21
  • Cenni di elettronica 28 > 31 agosto 2013 Electronics LAB [with Arduino] LED (Light Emitting Diode) 22
  • Cenni di elettronica 28 > 31 agosto 2013 Electronics LAB [with Arduino] Switch 23
  • Cenni di elettronica 28 > 31 agosto 2013 Electronics LAB [with Arduino] Uso della breadboard ?!? 24
  • Cenni di elettronica 28 > 31 agosto 2013 Electronics LAB [with Arduino] Uso della breadboard Una breadboard (o anche detta basetta sperimentale) è uno strumento utilizzato per creare prototipi di circuiti elettrici. Non richiede saldature ed è completamente riusabile (è perciò utilizzata soprattutto per circuiti temporanei). 25
  • Cenni di elettronica 28 > 31 agosto 2013 Electronics LAB [with Arduino] Uso della breadboard: struttura Tutte le breadboard hanno, generalmente, una struttura simile composta da linee di trasmissione (strips) che consistono in collegamenti elettrici tra i fori. Come in figura, si possono notare le linee di alimentazione, poste generalmente ai lati e collegate lungo tutto l’asse, e le linee dedicate ai componenti, collegate in posizione perpendicolare alle linee di alimentazione. 26
  • Cenni di elettronica 28 > 31 agosto 2013 Electronics LAB [with Arduino] Uso della breadboard !!! 27
  • Arduino: “Studiamo” l'hardware USB LED RX/TX LED Test (pin 13) Alimentazione esterna ATmega328 Pin di in/out digitaliPulsante di reset Power LED Alimentazioni e massa Input analogici Electronics LAB [with Arduino]28 > 31 agosto 2013 28
  • Caratteristiche tecniche Giffoni HackLAB 2013 Parametro Valore Microcontrollore ATmega328 Tensione operativa 5 V Tensione di ingresso (raccomandata) 7-12 V Tensione di ingresso (Limiti) 6-20 V Pin di I/O digitali 14 (di cui 6 PWM) Pin di ingresso analogici 6 Corrente DC per i pin di I/O 40 mA Corrente DC per i pin a 3.3V 50 mA Memoria Flash 32 kB (ATmega328) di cui 0.5 usata per il bootloader SRAM 2 kB (ATmega 328) EEPROM 1 kB (ATmega328) Velocità del Clock 16 MHz 28 > 31 agosto 2013 29
  • Qualche termine strano Giffoni HackLAB 2013 sketch Il programma che scrivete e fate girare sulla scheda Arduino pin I connettori di input e output digital Vuol dire che può assumere solo due valori: ALTO o BASSO, ON o OFF oppure 0 o 1 analog Quando i valori utili che rappresentano i segnali sono continui (infiniti) 28 > 31 agosto 2013 30
  • Hardware Arduino 28 > 31 agosto 2013 Electronics LAB [with Arduino] Arduino Leonardo 31
  • Hardware Arduino 28 > 31 agosto 2013 Electronics LAB [with Arduino] Arduino Due 32
  • Hardware Arduino 28 > 31 agosto 2013 Electronics LAB [with Arduino] Arduino YUN 33
  • Hardware Arduino 28 > 31 agosto 2013 Electronics LAB [with Arduino] Arduino Robot 34
  • Hardware Arduino 28 > 31 agosto 2013 Electronics LAB [with Arduino] Arduino Esplora 35
  • Hardware Arduino 28 > 31 agosto 2013 Electronics LAB [with Arduino] Arduino ADK 36
  • Hardware Arduino 28 > 31 agosto 2013 Electronics LAB [with Arduino] Arduino Ethernet 37
  • Hardware Arduino 28 > 31 agosto 2013 Electronics LAB [with Arduino] Arduino Mega 2560 38
  • Hardware Arduino 28 > 31 agosto 2013 Electronics LAB [with Arduino] Arduino Micro 39
  • Hardware Arduino 28 > 31 agosto 2013 Electronics LAB [with Arduino] LillyPad Arduino USB LillyPad Arduino Simple 40
  • Hardware Arduino 28 > 31 agosto 2013 Electronics LAB [with Arduino] LillyPad Arduino SimpleSnap LillyPad Arduino 41
  • Hardware Arduino 28 > 31 agosto 2013 Electronics LAB [with Arduino] Arduino Pro Arduino Fio 42
  • Arduino: gli Shield 28 > 31 agosto 2013 Electronics LAB [with Arduino] 43
  • Shield 28 > 31 agosto 2013 Electronics LAB [with Arduino] Arduino GSM Shield 44
  • Shield 28 > 31 agosto 2013 Electronics LAB [with Arduino] Arduino Ethernet Shield 45
  • Shield 28 > 31 agosto 2013 Electronics LAB [with Arduino] Arduino WiFi Shield 46
  • Shield 28 > 31 agosto 2013 Electronics LAB [with Arduino] Arduino SD Shield 47
  • Shield 28 > 31 agosto 2013 Electronics LAB [with Arduino] Arduino Motor Shield 48
  • PRIMI PASSI CON ARDUINO
  • Primi passi con Arduino 28 > 31 agosto 2013 Electronics LAB [with Arduino] Installazione dell’ambiente di sviluppo 1. Scaricare l’IDE di Arduino dal sito web del progetto: arduino.cc 2. Collegare la board Arduino tramite il cavo USB 3. Installare i driver necessari 4. Riavviare il computer 5. Avviare il software di Arduino 50
  • Primi passi con Arduino 28 > 31 agosto 2013 Electronics LAB [with Arduino] Installazione dell’ambiente di sviluppo ● Collegarsi al sito web del progetto: arduino.cc ● Nella sezione Getting Started scegliere il sistema operativo in uso: Windows, Mac OS X, Linux ● Scaricare il software di Arduino 51
  • Primi passi con Arduino 28 > 31 agosto 2013 Electronics LAB [with Arduino] Installazione driver chip FTDI ● Collegarsi al sito web del progetto: www.ftdichip.com ● Download dei driver adatti alla propria piattaforma ● Installare i driver ● Riavviare il sistema 52
  • Primi passi con Arduino 28 > 31 agosto 2013 Electronics LAB [with Arduino] Collegare la board ● Collega Arduino al computer con un cavo USB ● Un LED di colore verde (PWR) si accede quando la scheda è alimentata correttamente 53
  • Primi passi con Arduino 28 > 31 agosto 2013 Electronics LAB [with Arduino] Avvio dell'ambiente di sviluppo 54
  • Primi passi con Arduino 28 > 31 agosto 2013 Electronics LAB [with Arduino] Impostazione dell’ambiente di lavoro: Tools > Board 55
  • Primi passi con Arduino 28 > 31 agosto 2013 Electronics LAB [with Arduino] Impostazione dell’ambiente di lavoro: Tools > Serial Port 56
  • Primi passi con Arduino 28 > 31 agosto 2013 Electronics LAB [with Arduino] La semplice interfaccia Verifica Carica Nuovo Apri Salva Monitor Seriale 57
  • Primi passi con Arduino 28 > 31 agosto 2013 Electronics LAB [with Arduino] Il “ciclo” di sviluppo 58
  • Elementi di programmazione 28 > 31 agosto 2013 Electronics LAB [with Arduino] Esaminiamo, innanzitutto, un po’ di sintassi utile: Simbolo Spiegazione // Commento su una riga Es. // questo è un commento /* Inizio di un commento su più righe */ Chiusura di un commento su più righe void Dichiarazione di una funzione senza nessun valore di ritorno: la funzione esegue tutte le istruzioni senza restituire alcun valore. setup() E’ la funzione (obbligatoria in Arduino) dedicata alle impostazioni iniziali 59
  • Elementi di programmazione 28 > 31 agosto 2013 Electronics LAB [with Arduino] Esaminiamo, innanzitutto, un po’ di sintassi utile: Simbolo Spiegazione loop() Funzione obbligatoria in Arduino: costituisce il loop principale del programma int Usato per dichiarare una variabile di tipo integer (intero) pinMode(pin, mode) Configurazione dei pin di Arduino (INPUT o OUTPUT) digitalWrite(pin, level) Comando di scrittura su un pin digitale delay(seconds) Funzione che introduce un’attesa (espresso in millesimi di secondo) 60
  • Elementi di programmazione 28 > 31 agosto 2013 Electronics LAB [with Arduino] Un listato di esempio: /* FLUSSI 2013 day 1 Esempio: lampeggio di un LED collegato al pin 13 */ int ledPin = 13; // LED connesso al pin 13 void setup() { pinMode(ledPin, OUTPUT); // configura il pin come output } void loop() { digitalWrite(ledPin, HIGH); // accende il LED delay(1000); // attende un secondo (ossia 1000 millisecondi) digitalWrite(ledPin, LOW); // spegne il LED delay(1000); // attende un secondo prima di ripartire } 61
  • Primi passi con Arduino 28 > 31 agosto 2013 Electronics LAB [with Arduino] Input / Output di segnali digitali: LED blinking 62
  • Primi passi con Arduino 28 > 31 agosto 2013 Electronics LAB [with Arduino] Input / Output di segnali digitali: lettura di un pulsante 63
  • Elementi di programmazione 28 > 31 agosto 2013 Electronics LAB [with Arduino] 64 Il costrutto if e if/else Simbolo Spiegazione if (condizione) { // esegue questo codice // se la condizione è vera } Esecuzione condizionata: esegue un blocco di codice se e solo se la condizione espressa è verificata if (condizione) { // esegue questo codice // se la condizione è vera } else { // esegue questo codice // se la condizione è falsa } Se la condizione è vera esegue un blocco di codice; se la condizione non è vera viene eseguito il codice del blocco else
  • Primi passi con Arduino 28 > 31 agosto 2013 Electronics LAB [with Arduino] Input / Output di segnali digitali Il costrutto if /* FLUSSI 2013 day 1: Accendiamo il LED con un pulsante */ int led_pin = 13; int button_pin = 8; int state = 0; int value = 0; void setup() { pinMode(led_pin, OUTPUT); pinMode(button_pin, INPUT); } [ Continua … ] 65
  • Primi passi con Arduino 28 > 31 agosto 2013 Electronics LAB [with Arduino] Input / Output di segnali digitali void loop() { value = digitalRead(button_pin); if (value == HIGH) { state = 1; } else { state = 0; } if (state == 1) { digitalWrite(led_pin, HIGH); } else { digitalWrite(led_pin, LOW); } } 66
  • Primi passi con Arduino 28 > 31 agosto 2013 Electronics LAB [with Arduino] Lettura di segnali analogici Il componente LDR (Light Dependent Resistor) 67
  • Elementi di programmazione 28 > 31 agosto 2013 Electronics LAB [with Arduino] 68 La funzione analogRead Simbolo Spiegazione int analogRead(pin) Legge la tensione applicata al pin di input analogico e restituisce un numero compreso tra 0 e 1023 che rappresenta una tensione tra 0 e 5V val = analogRead(0) Esempio: legge l'analog input 0 e memorizza il risultato nella variabile val
  • Primi passi con Arduino 28 > 31 agosto 2013 Electronics LAB [with Arduino] Lettura di segnali analogici Il componente LDR (Light Dependent Resistor) 69
  • Primi passi con Arduino 28 > 31 agosto 2013 Electronics LAB [with Arduino] /* FLUSSI 2013 day 1: Lettura di un segnale analogico: LDR */ const int SENSOR = 0; int val = 0; void setup() { Serial.begin(9600); } void loop() { val = analogRead(SENSOR); Serial.println(val); delay(100); } Lettura di segnali analogici Il componente LDR 70
  • Primi passi con Arduino 28 > 31 agosto 2013 Electronics LAB [with Arduino] /* FLUSSI 2013 day 1: Lettura di un segnale analogico: LDR */ const int SENSOR = 0; int val = 0; void setup() { Serial.begin(9600); } void loop() { val = analogRead(SENSOR); Serial.println(val); delay(100); } Lettura di segnali analogici Il componente LDR 71
  • Primi passi con Arduino 28 > 31 agosto 2013 Electronics LAB [with Arduino] Lettura di segnali analogici: aggiungiamo un LED 72
  • Primi passi con Arduino 28 > 31 agosto 2013 Electronics LAB [with Arduino] /* FLUSSI 2013 day 1: Regoliamo il lampeggio in base al valore analogico letto */ # define LED 13 // pin usato per il LED int val = 0; // variabile usata per il // valore letto dall'LDR void setup() { pinMode(LED, OUTPUT); } void loop() { val = analogRead(0); digitalWrite(13, HIGH); // accendi il LED delay(val); // attendi digitalWrite(13, LOW); // spegni il LED delay(val); // attendi } Lettura di segnali analogici Il componente LDR 73
  • FINE... PER OGGI