electronics lab [with arduino] | day 1

Post on 13-May-2015

297 Views

Category:

Education

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

Electronics LAB [with Arduino] @ FLUSSI Media Arts Festival 2013 (disPLAYcement) - Teatro Carlo Gesualdo, Avellino, Italy. August 28 -> 31, 2013 Lecturers: Daniele Costarella and Salvatore Carotenuto

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 elettronica2. Un ambiente di sviluppo

semplificato

Electronics LAB [with Arduino]28 > 31 agosto 2013 8

Cos'è Arduino?

1. Una scheda elettronica2. Un ambiente di sviluppo

semplificato3. 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 elettronicaResistori: 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

LEDRX/TX

LED Test (pin 13)

Alimentazione esterna

ATmega328

Pin di in/out digitaliPulsante direset

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

sketchIl programma che scrivete e fate girare sulla scheda Arduino

pinI connettori di input e output

digitalVuol dire che può assumere solo due valori: ALTO o BASSO, ON o OFF oppure 0 o 1

analogQuando 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 rigaEs. // 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

top related