SlideShare a Scribd company logo
1 of 26
Download to read offline
ELECTRONICS LAB [WITH ARDUINO]
Daniele Costarella
Teatro Carlo Gesualdo / Casina Del Principe – Avellino – 28 > 31 agosto 2013
Salvatore Carotenuto
>>> DAY #3
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/.
Il programma di oggi
ambient and human interaction:
●
sensori di luminosità;
●
sensori di temperatura;
●
sensori di prossimità;
●
comunicazione seriale;
●
audio input;
●
la libreria Cap-Sense per il touch detection;
effetti di luce in base a stimoli esterni:
●
VU meters;
●
realtime sound generation;
3Electronics LAB [with Arduino]28 > 31 agosto 2013
Human and Ambient Interaction
28 > 31 agosto 2013 Electronics LAB [with Arduino] 4
Sensori di luminosità / colore
Programmable Color Light-to-Frequency Converter Module
http://www.elecfreaks.com/store/programmable-color-lighttofrequency-converter-module-p-258.html?zenid=3ceplft7hf1shglnamuta9cp02
Human and Ambient Interaction
28 > 31 agosto 2013 Electronics LAB [with Arduino] 5
Sensori di temperatura
MCP9700
http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en022289
Human and Ambient Interaction
28 > 31 agosto 2013 Electronics LAB [with Arduino] 6
Sensori di prossimità / distanza
Distance Sensing With Ultrasonic Sensor and Arduino
http://www.tautvidas.com/blog/2012/08/distance-sensing-with-ultrasonic-sensor-and-arduino/
Elementi di programmazione
28 > 31 agosto 2013 Electronics LAB [with Arduino] 7
Il ciclo while e do/while
Simbolo Spiegazione
while (condizione)
{
// …
< codice da ripetere >
// …
}
Esegue un blocco di codice fin tanto
che la condizione test è vera.
do
{
// …
< codice da ripetere >
// …
}
while (condizione)
Esegue un blocco di codice fin tanto
che la condizione test è vera,
con la differenza, però, che il ciclo
viene eseguito almeno una volta.
La condizione, infatti, viene testata a
fine ciclo.
Human and Ambient Interaction
28 > 31 agosto 2013 Electronics LAB [with Arduino] 8
Comunicazione seriale: pilotiamo un LED “a comando”
//Flussi 2013 DAY 3: Comunicazione seriale
int LED = 12;
// stringa per contenere il comando ricevuto
String command = "";
void setup()
{
pinMode(LED, OUTPUT);
Serial.begin(9600);
}
void loop()
{
command = ""; // azzera la stringa
// finchè ci sono caratteri disponibili...
while(Serial.available())
{
char c = Serial.read(); // legge un carattere...
command.concat(c); // ...e lo concatena alla stringa
delay(10); // attende 10 msec
}
// controlla se sono stati letti dei caratteri
if(command != "")
parseCommand(); // interpreta il comando ricevuto
}
[ Continua … ]
Human and Ambient Interaction
28 > 31 agosto 2013 Electronics LAB [with Arduino] 9
Comunicazione seriale: pilotiamo un LED “a comando”
// in questa funzione interpretiamo il comando ricevuto
void parseCommand()
{
if( command == "ON" ) // se abbiamo ricevuto "ON"...
{
digitalWrite(LED, HIGH);
Serial.println("LED ON!");
}
else
{
if( command == "OFF" ) // se abbiamo ricevuto "OFF"...
{
digitalWrite(LED, LOW);
Serial.println("LED OFF!");
}
else
{
// se siamo qui, significa che il comando
// non è tra quelli ammessi
Serial.println("Uh?!?");
}
}
}
Human and Ambient Interaction
28 > 31 agosto 2013 Electronics LAB [with Arduino] 10
Audio input: mettiamo “le orecchie” al nostro Arduino
Semplice preamplificatore con Amplificatore Operazionale LM358 (o equivalenti)
Human and Ambient Interaction
28 > 31 agosto 2013 Electronics LAB [with Arduino] 11
Audio input: mettiamo “le orecchie” al nostro Arduino
Human and Ambient Interaction
28 > 31 agosto 2013 Electronics LAB [with Arduino] 12
Audio input: mettiamo “le orecchie” al nostro Arduino. Ecco il codice:
/*
FLUSSI 2013
Arduino CLAP Sensor
Questo sketch permette di accendere un LED quando viene
rilevato un suono di una certa intensità, come un
battito di mani
*/
// LED collegato al pin 12
int LED = 12;
void setup()
{
pinMode(LED, OUTPUT);
// avvia il collegamento seriale
Serial.begin(9600);
}
[ Continua … ]
Human and Ambient Interaction
28 > 31 agosto 2013 Electronics LAB [with Arduino] 13
Audio input: mettiamo “le orecchie” al nostro Arduino. Ecco il codice:
void loop()
{
// leggiamo l'output del sensore collegato sul pin A0
int sensorValue = analogRead(A0);
Serial.println(sensorValue);
// controlliamo se il livello del suono rilevato
// supera una certa soglia.
// Nota: questa soglia va calibrata in base al
// livello del segnale in uscita dal preamplificatore,
// e all'intensità del rumore che vogliamo rilevare
if (sensorValue > 580)
{
// accendiamo il LED per 500 msec
digitalWrite(LED, HIGH);
delay(500);
}
else
{
digitalWrite(LED, LOW);
}
delay(50);
}
Elementi di programmazione
28 > 31 agosto 2013 Electronics LAB [with Arduino] 14
Arduino: le librerie ?!?!??
Elementi di programmazione
28 > 31 agosto 2013 Electronics LAB [with Arduino] 15
Arduino: le librerie
Una libreria, in Informatica, è un insieme di funzioni o strutture dati
predisposte per essere collegate a un programma software attraverso
opportuno collegamento.
Il termine libreria nasce da un'errata traduzione dell'inglese library
(letteralmente, biblioteca), ma ormai è così diffuso nel vocabolario
dei professionisti da essere accettato quale esatta traduzione.
Anche l'IDE di Arduino supporta l'uso delle librerie. Grazie ad esse,
possiamo estendere rapidamente le funzionalità del nostro software
utilizzando, appunto, le funzioni presenti nelle librerie, scritte da altre
persone della community di Arduino.
Allo stesso modo, possiamo creare delle nostre librerie e metterle a
disposizione di tutta la community.
Elementi di programmazione
28 > 31 agosto 2013 Electronics LAB [with Arduino] 16
Arduino: le librerie
Sulla sezione playground
del sito ufficiale Arduino
possiamo trovare tutte
le librerie per gli usi
più disparati
http://playground.arduino.cc//Main/LibraryList
Human and Ambient Interaction
28 > 31 agosto 2013 Electronics LAB [with Arduino] 17
La libreria CapSense
Un corpo umano che si avvicina al
sensore capacitivo introduce una
variazione di capacità nel circuito.
Il microcontrollore è in grado di
misurare tale variazione, ed è quindi
possibile un'interazione.
Human and Ambient Interaction
28 > 31 agosto 2013 Electronics LAB [with Arduino] 18
La libreria CapSense: installazione
Come per le altre librerie per Arduino, l'installazione di CapSense consiste semplicemente nello
scaricare da internet un archivio compresso e decomprimerlo nella directory libraries presente
nella directory di default degli sketches.
Per conoscere il path di questa directory, basta selezionare File → Preferences nell'IDE di
Arduino
Human and Ambient Interaction
28 > 31 agosto 2013 Electronics LAB [with Arduino] 19
La libreria CapSense: montiamo il circuito...
Human and Ambient Interaction
28 > 31 agosto 2013 Electronics LAB [with Arduino] 20
...e scriviamo il codice
#include <CapacitiveSensor.h>
//CapSense Library Demo Sketch
// LED sul pin 13
#define LED 13
// resistore da 1 megaohm tra i pin 4 e 2
// nota: aumentando il valore del resistore, è
// possibile aumentare la distanza di rilevamento
// pin 2: sensor pin
CapacitiveSensor cs_4_2 = CapacitiveSensor(4,2);
void setup()
{
// imposta il pin del LED come uscita digitale
pinMode(LED, OUTPUT);
//
// disattiva l'autocalibrazione sul canale 1
cs_4_2.set_CS_AutocaL_Millis(0xFFFFFFFF);
//
// inizializza la comunicazione seriale
Serial.begin(9600);
} [Continua...]
Human and Ambient Interaction
28 > 31 agosto 2013 Electronics LAB [with Arduino] 21
...e scriviamo il codice
void loop()
{
long start = millis();
long total = cs_4_2.capacitiveSensor(30);
// check on performance in milliseconds ?????
Serial.print(millis() - start);
// stampa il valore del sensore sulla porta seriale
Serial.print(total);
Serial.print("t");
// accende o spegne il LED in base al valore rilevato
digitalWrite(LED, (total > ????) ? HIGH : LOW);
// ritardo necessario per la porta seriale
delay(10);
}
Human and Ambient Interaction
28 > 31 agosto 2013 Electronics LAB [with Arduino] 22
Effetti di luce in base a stimoli esterni: costruiamo un semplice VU-Meter
Human and Ambient Interaction
28 > 31 agosto 2013 Electronics LAB [with Arduino] 23
Effetti di luce in base a stimoli esterni: costruiamo un semplice VU-Meter
//Flussi 2013 DAY 3: il VU-Meter
#define INPUT_PIN 0 // audio input pin
#define NUMERO_LED 0 // numero led sul circuito
#define INPUT_MAX 1024 // massimo valore ammesso in input
// soglia per singolo LED
#define STEP_LED INPUT_MAX / NUMERO_LED
// definiamo i pin utilizzati per i LED
int led[] = { 2, 3, 4, 5, 6, 7, 8, 9 };
int inputLevel = 0; // livello del segnale in ingresso
int i; // variabile usata per i cicli
void setup()
{
// definiamo tutti i pin dei LED come output
for (i = 0; i < NUMERO_LED; i++)
{
pinMode(led[i], OUTPUT);
}
}
Human and Ambient Interaction
28 > 31 agosto 2013 Electronics LAB [with Arduino] 24
Effetti di luce in base a stimoli esterni: costruiamo un semplice VU-Meter
void loop()
{
// legge il livello dell'input
inputLevel = analogRead(INPUT_PIN);
// accende o spegne i LED a seconda del livello letto
for (i = 0; i < NUMERO_LED; i++)
{
if(inputLevel > (STEP_LED * i))
digitalWrite(led[i], HIGH);
else
digitalWrite(led[i], LOW);
}
}
Realtime sound generation
28 > 31 agosto 2013 Electronics LAB [with Arduino] 25
La libreria MOZZI
http://sensorium.github.io/Mozzi/
FINE... HAPPY HACKING!

More Related Content

What's hot

LinoLab - Laboratorio di Arduino
LinoLab - Laboratorio di Arduino LinoLab - Laboratorio di Arduino
LinoLab - Laboratorio di Arduino Matteo Troìa
 
Lezione 4 arduino - corso 20 ore
Lezione 4 arduino - corso 20 oreLezione 4 arduino - corso 20 ore
Lezione 4 arduino - corso 20 oreMirko Mancin
 
Introduzione a Arduino
Introduzione a ArduinoIntroduzione a Arduino
Introduzione a ArduinoPietro Aiuola
 
Come rendere Arduino professionale
Come rendere Arduino professionaleCome rendere Arduino professionale
Come rendere Arduino professionaleEmanuele Bonanni
 
Il cuore di Arduino: Un sistema di sviluppo basato su microcontrollore Atmel ...
Il cuore di Arduino: Un sistema di sviluppo basato su microcontrollore Atmel ...Il cuore di Arduino: Un sistema di sviluppo basato su microcontrollore Atmel ...
Il cuore di Arduino: Un sistema di sviluppo basato su microcontrollore Atmel ...Sardegna Ricerche
 
Corso Arduino Base - Basi Pratiche con Arduino Genuino
Corso Arduino Base - Basi Pratiche con Arduino GenuinoCorso Arduino Base - Basi Pratiche con Arduino Genuino
Corso Arduino Base - Basi Pratiche con Arduino GenuinoMauro Alfieri
 
Lezione introduttiva su Arduino
Lezione introduttiva su ArduinoLezione introduttiva su Arduino
Lezione introduttiva su ArduinoMirko Mancin
 
Alfabeto di Arduino - lezione 5
Alfabeto di Arduino - lezione 5Alfabeto di Arduino - lezione 5
Alfabeto di Arduino - lezione 5Michele Maffucci
 
Arduino & raspberry pi - Un connubio stimolante
Arduino & raspberry pi - Un connubio stimolanteArduino & raspberry pi - Un connubio stimolante
Arduino & raspberry pi - Un connubio stimolanteMirco Sbrollini
 
Workshop arduino e sensori
Workshop arduino e sensoriWorkshop arduino e sensori
Workshop arduino e sensoriPaolo Aliverti
 
Electronics LAB [with Arduino] | DAY 1
Electronics LAB [with Arduino] | DAY 1Electronics LAB [with Arduino] | DAY 1
Electronics LAB [with Arduino] | DAY 1Daniele Costarella
 
Workshop: Arduino for makers - Cenni di progettazione elettronica ed utilizzo...
Workshop: Arduino for makers - Cenni di progettazione elettronica ed utilizzo...Workshop: Arduino for makers - Cenni di progettazione elettronica ed utilizzo...
Workshop: Arduino for makers - Cenni di progettazione elettronica ed utilizzo...Luigi Francesco Cerfeda
 
Alfabeto di Arduino - lezione 1
Alfabeto di Arduino - lezione 1Alfabeto di Arduino - lezione 1
Alfabeto di Arduino - lezione 1Michele Maffucci
 
Presentazione Arduino
Presentazione ArduinoPresentazione Arduino
Presentazione ArduinoAntonio Serra
 

What's hot (16)

LinoLab - Laboratorio di Arduino
LinoLab - Laboratorio di Arduino LinoLab - Laboratorio di Arduino
LinoLab - Laboratorio di Arduino
 
Lezione 4 arduino - corso 20 ore
Lezione 4 arduino - corso 20 oreLezione 4 arduino - corso 20 ore
Lezione 4 arduino - corso 20 ore
 
Introduzione a Arduino
Introduzione a ArduinoIntroduzione a Arduino
Introduzione a Arduino
 
Come rendere Arduino professionale
Come rendere Arduino professionaleCome rendere Arduino professionale
Come rendere Arduino professionale
 
Il cuore di Arduino: Un sistema di sviluppo basato su microcontrollore Atmel ...
Il cuore di Arduino: Un sistema di sviluppo basato su microcontrollore Atmel ...Il cuore di Arduino: Un sistema di sviluppo basato su microcontrollore Atmel ...
Il cuore di Arduino: Un sistema di sviluppo basato su microcontrollore Atmel ...
 
Corso Arduino Base - Basi Pratiche con Arduino Genuino
Corso Arduino Base - Basi Pratiche con Arduino GenuinoCorso Arduino Base - Basi Pratiche con Arduino Genuino
Corso Arduino Base - Basi Pratiche con Arduino Genuino
 
Lezione introduttiva su Arduino
Lezione introduttiva su ArduinoLezione introduttiva su Arduino
Lezione introduttiva su Arduino
 
Introduzione ad Arduino del Maker DevLab
Introduzione ad Arduino del Maker DevLabIntroduzione ad Arduino del Maker DevLab
Introduzione ad Arduino del Maker DevLab
 
Alfabeto di Arduino - lezione 5
Alfabeto di Arduino - lezione 5Alfabeto di Arduino - lezione 5
Alfabeto di Arduino - lezione 5
 
Workshop su Arduino
Workshop su ArduinoWorkshop su Arduino
Workshop su Arduino
 
Arduino & raspberry pi - Un connubio stimolante
Arduino & raspberry pi - Un connubio stimolanteArduino & raspberry pi - Un connubio stimolante
Arduino & raspberry pi - Un connubio stimolante
 
Workshop arduino e sensori
Workshop arduino e sensoriWorkshop arduino e sensori
Workshop arduino e sensori
 
Electronics LAB [with Arduino] | DAY 1
Electronics LAB [with Arduino] | DAY 1Electronics LAB [with Arduino] | DAY 1
Electronics LAB [with Arduino] | DAY 1
 
Workshop: Arduino for makers - Cenni di progettazione elettronica ed utilizzo...
Workshop: Arduino for makers - Cenni di progettazione elettronica ed utilizzo...Workshop: Arduino for makers - Cenni di progettazione elettronica ed utilizzo...
Workshop: Arduino for makers - Cenni di progettazione elettronica ed utilizzo...
 
Alfabeto di Arduino - lezione 1
Alfabeto di Arduino - lezione 1Alfabeto di Arduino - lezione 1
Alfabeto di Arduino - lezione 1
 
Presentazione Arduino
Presentazione ArduinoPresentazione Arduino
Presentazione Arduino
 

Viewers also liked

Viewers also liked (20)

Heavy Arduino
Heavy ArduinoHeavy Arduino
Heavy Arduino
 
Arduino ai raggi x
Arduino ai raggi xArduino ai raggi x
Arduino ai raggi x
 
Introduzione all'alfabetizzazione informatica
Introduzione all'alfabetizzazione informaticaIntroduzione all'alfabetizzazione informatica
Introduzione all'alfabetizzazione informatica
 
Concetti Di Base Di Informatica
Concetti Di Base Di InformaticaConcetti Di Base Di Informatica
Concetti Di Base Di Informatica
 
Arduino nella Pmi
Arduino nella PmiArduino nella Pmi
Arduino nella Pmi
 
D. lgs 81 08
D. lgs 81 08D. lgs 81 08
D. lgs 81 08
 
Re46 c140 rivelatore di fumo - schema elettrico - 2010-10-25
Re46 c140   rivelatore di fumo - schema elettrico - 2010-10-25Re46 c140   rivelatore di fumo - schema elettrico - 2010-10-25
Re46 c140 rivelatore di fumo - schema elettrico - 2010-10-25
 
Esercitazioneguidata Collegamento Uno Molti
Esercitazioneguidata Collegamento Uno MoltiEsercitazioneguidata Collegamento Uno Molti
Esercitazioneguidata Collegamento Uno Molti
 
La progettazione elettronica in tempo di crisi
La progettazione elettronica in tempo di crisiLa progettazione elettronica in tempo di crisi
La progettazione elettronica in tempo di crisi
 
FootPrint Natalizi
FootPrint NataliziFootPrint Natalizi
FootPrint Natalizi
 
L'arte dello sbroglio dei Circuiti Stampati
L'arte dello sbroglio dei Circuiti StampatiL'arte dello sbroglio dei Circuiti Stampati
L'arte dello sbroglio dei Circuiti Stampati
 
Analisi Alternata Bjt
Analisi Alternata BjtAnalisi Alternata Bjt
Analisi Alternata Bjt
 
Stistema Binario nella scuola secondaria
Stistema Binario nella scuola secondariaStistema Binario nella scuola secondaria
Stistema Binario nella scuola secondaria
 
Sistema Binario
Sistema BinarioSistema Binario
Sistema Binario
 
4 Algebra Di Boole
4   Algebra Di Boole4   Algebra Di Boole
4 Algebra Di Boole
 
Lab.2M_La legge di Ohm
Lab.2M_La legge di OhmLab.2M_La legge di Ohm
Lab.2M_La legge di Ohm
 
Il sistema binario
Il sistema binarioIl sistema binario
Il sistema binario
 
Introduzione Al Corso
Introduzione Al CorsoIntroduzione Al Corso
Introduzione Al Corso
 
Uso Della Breadboard
Uso Della BreadboardUso Della Breadboard
Uso Della Breadboard
 
Il sistema binario
Il sistema binarioIl sistema binario
Il sistema binario
 

Similar to Electronics LAB [with Arduino] | DAY 3

Electronics LAB [with Arduino] | DAY 2
Electronics LAB [with Arduino] | DAY 2Electronics LAB [with Arduino] | DAY 2
Electronics LAB [with Arduino] | DAY 2Salvatore Carotenuto
 
Electronics LAB [with Arduino] | DAY 1
Electronics LAB [with Arduino] | DAY 1Electronics LAB [with Arduino] | DAY 1
Electronics LAB [with Arduino] | DAY 1Salvatore Carotenuto
 
Arduino : l'esperienza di IRES FVG - OpenSourceDay2012
Arduino : l'esperienza di IRES FVG - OpenSourceDay2012Arduino : l'esperienza di IRES FVG - OpenSourceDay2012
Arduino : l'esperienza di IRES FVG - OpenSourceDay2012Mirco Piccin
 
Introduzione ad Arduino Antonio Serra Napoli
Introduzione ad Arduino Antonio Serra NapoliIntroduzione ad Arduino Antonio Serra Napoli
Introduzione ad Arduino Antonio Serra NapoliAntonio Serra
 
Introduzione ad Arduino
Introduzione ad ArduinoIntroduzione ad Arduino
Introduzione ad ArduinoSimone Lusenti
 
Relazione tecnica progetto «arduino dht11»
Relazione tecnica progetto «arduino dht11»Relazione tecnica progetto «arduino dht11»
Relazione tecnica progetto «arduino dht11»Davide29
 
Open Hardware: Arduino, un prodotto italiano
Open Hardware: Arduino, un prodotto italianoOpen Hardware: Arduino, un prodotto italiano
Open Hardware: Arduino, un prodotto italianoRiccardo Lemmi
 
Progettare con Arduino come un Ingegnere
Progettare con Arduino come un IngegnereProgettare con Arduino come un Ingegnere
Progettare con Arduino come un IngegnereEmanuele Bonanni
 
Workshop Arduino by Fiore Basile
Workshop Arduino by Fiore BasileWorkshop Arduino by Fiore Basile
Workshop Arduino by Fiore BasileCommit University
 
Costruzione e Sviluppo in ambiente STNucleo di un Quadricottero con Stabilizz...
Costruzione e Sviluppo in ambiente STNucleo di un Quadricottero con Stabilizz...Costruzione e Sviluppo in ambiente STNucleo di un Quadricottero con Stabilizz...
Costruzione e Sviluppo in ambiente STNucleo di un Quadricottero con Stabilizz...Simone Fini
 
Free Software e Open Hardware
Free Software e Open HardwareFree Software e Open Hardware
Free Software e Open HardwareStefano Sanna
 
Review4 u arduino duemilanove scheda di sviluppo compatibile 2010-11-11
Review4 u arduino duemilanove scheda di sviluppo compatibile   2010-11-11Review4 u arduino duemilanove scheda di sviluppo compatibile   2010-11-11
Review4 u arduino duemilanove scheda di sviluppo compatibile 2010-11-11Ionela
 
Alfabeto di Arduino - lezione 2
Alfabeto di Arduino - lezione 2Alfabeto di Arduino - lezione 2
Alfabeto di Arduino - lezione 2Michele Maffucci
 

Similar to Electronics LAB [with Arduino] | DAY 3 (20)

Electronics LAB [with Arduino] | DAY 2
Electronics LAB [with Arduino] | DAY 2Electronics LAB [with Arduino] | DAY 2
Electronics LAB [with Arduino] | DAY 2
 
Electronics LAB [with Arduino] | DAY 1
Electronics LAB [with Arduino] | DAY 1Electronics LAB [with Arduino] | DAY 1
Electronics LAB [with Arduino] | DAY 1
 
Arduino ICT2016 [IT]
Arduino ICT2016 [IT]Arduino ICT2016 [IT]
Arduino ICT2016 [IT]
 
Arduino primo v1
Arduino primo v1Arduino primo v1
Arduino primo v1
 
Arduino - Le basi per iniziare nel mondo IoT
Arduino - Le basi per iniziare nel mondo IoTArduino - Le basi per iniziare nel mondo IoT
Arduino - Le basi per iniziare nel mondo IoT
 
Arduino : l'esperienza di IRES FVG - OpenSourceDay2012
Arduino : l'esperienza di IRES FVG - OpenSourceDay2012Arduino : l'esperienza di IRES FVG - OpenSourceDay2012
Arduino : l'esperienza di IRES FVG - OpenSourceDay2012
 
Arduino
ArduinoArduino
Arduino
 
Introduzione ad Arduino Antonio Serra Napoli
Introduzione ad Arduino Antonio Serra NapoliIntroduzione ad Arduino Antonio Serra Napoli
Introduzione ad Arduino Antonio Serra Napoli
 
Introduzione ad Arduino
Introduzione ad ArduinoIntroduzione ad Arduino
Introduzione ad Arduino
 
Car accident detector
Car accident detectorCar accident detector
Car accident detector
 
Relazione tecnica progetto «arduino dht11»
Relazione tecnica progetto «arduino dht11»Relazione tecnica progetto «arduino dht11»
Relazione tecnica progetto «arduino dht11»
 
Open Hardware: Arduino, un prodotto italiano
Open Hardware: Arduino, un prodotto italianoOpen Hardware: Arduino, un prodotto italiano
Open Hardware: Arduino, un prodotto italiano
 
Progettare con Arduino come un Ingegnere
Progettare con Arduino come un IngegnereProgettare con Arduino come un Ingegnere
Progettare con Arduino come un Ingegnere
 
Internet delle cose
Internet delle coseInternet delle cose
Internet delle cose
 
Workshop Arduino by Fiore Basile
Workshop Arduino by Fiore BasileWorkshop Arduino by Fiore Basile
Workshop Arduino by Fiore Basile
 
Costruzione e Sviluppo in ambiente STNucleo di un Quadricottero con Stabilizz...
Costruzione e Sviluppo in ambiente STNucleo di un Quadricottero con Stabilizz...Costruzione e Sviluppo in ambiente STNucleo di un Quadricottero con Stabilizz...
Costruzione e Sviluppo in ambiente STNucleo di un Quadricottero con Stabilizz...
 
Progetto quadricottero 1
Progetto quadricottero 1Progetto quadricottero 1
Progetto quadricottero 1
 
Free Software e Open Hardware
Free Software e Open HardwareFree Software e Open Hardware
Free Software e Open Hardware
 
Review4 u arduino duemilanove scheda di sviluppo compatibile 2010-11-11
Review4 u arduino duemilanove scheda di sviluppo compatibile   2010-11-11Review4 u arduino duemilanove scheda di sviluppo compatibile   2010-11-11
Review4 u arduino duemilanove scheda di sviluppo compatibile 2010-11-11
 
Alfabeto di Arduino - lezione 2
Alfabeto di Arduino - lezione 2Alfabeto di Arduino - lezione 2
Alfabeto di Arduino - lezione 2
 

Recently uploaded

CON OCCHI DIVERSI - catechesi per candidati alla Cresima
CON OCCHI DIVERSI - catechesi per candidati alla CresimaCON OCCHI DIVERSI - catechesi per candidati alla Cresima
CON OCCHI DIVERSI - catechesi per candidati alla CresimaRafael Figueredo
 
Esperimenti_laboratorio di fisica per la scuola superiore
Esperimenti_laboratorio di fisica per la scuola superioreEsperimenti_laboratorio di fisica per la scuola superiore
Esperimenti_laboratorio di fisica per la scuola superiorevaleriodinoia35
 
IL CHIAMATO ALLA CONVERSIONE - catechesi per candidati alla Cresima
IL CHIAMATO ALLA CONVERSIONE - catechesi per candidati alla CresimaIL CHIAMATO ALLA CONVERSIONE - catechesi per candidati alla Cresima
IL CHIAMATO ALLA CONVERSIONE - catechesi per candidati alla CresimaRafael Figueredo
 
XI Lezione - Arabo LAR Giath Rammo @ Libera Accademia Romana
XI Lezione - Arabo LAR Giath Rammo @ Libera Accademia RomanaXI Lezione - Arabo LAR Giath Rammo @ Libera Accademia Romana
XI Lezione - Arabo LAR Giath Rammo @ Libera Accademia RomanaStefano Lariccia
 
lezione di fisica_I moti nel piano_Amaldi
lezione di fisica_I moti nel piano_Amaldilezione di fisica_I moti nel piano_Amaldi
lezione di fisica_I moti nel piano_Amaldivaleriodinoia35
 
XIII Lezione - Arabo G.Rammo @ Libera Accademia Romana
XIII Lezione - Arabo G.Rammo @ Libera Accademia RomanaXIII Lezione - Arabo G.Rammo @ Libera Accademia Romana
XIII Lezione - Arabo G.Rammo @ Libera Accademia RomanaStefano Lariccia
 
RICERCA_SUGLI ANFIBI PER LA PRIMA MEDIA.
RICERCA_SUGLI ANFIBI PER LA PRIMA MEDIA.RICERCA_SUGLI ANFIBI PER LA PRIMA MEDIA.
RICERCA_SUGLI ANFIBI PER LA PRIMA MEDIA.giuliofiorerm
 
San Giorgio e la leggenda del drago.pptx
San Giorgio e la leggenda del drago.pptxSan Giorgio e la leggenda del drago.pptx
San Giorgio e la leggenda del drago.pptxMartin M Flynn
 
Corso di digitalizzazione e reti per segretario amministrativo
Corso di digitalizzazione e reti per segretario amministrativoCorso di digitalizzazione e reti per segretario amministrativo
Corso di digitalizzazione e reti per segretario amministrativovaleriodinoia35
 

Recently uploaded (9)

CON OCCHI DIVERSI - catechesi per candidati alla Cresima
CON OCCHI DIVERSI - catechesi per candidati alla CresimaCON OCCHI DIVERSI - catechesi per candidati alla Cresima
CON OCCHI DIVERSI - catechesi per candidati alla Cresima
 
Esperimenti_laboratorio di fisica per la scuola superiore
Esperimenti_laboratorio di fisica per la scuola superioreEsperimenti_laboratorio di fisica per la scuola superiore
Esperimenti_laboratorio di fisica per la scuola superiore
 
IL CHIAMATO ALLA CONVERSIONE - catechesi per candidati alla Cresima
IL CHIAMATO ALLA CONVERSIONE - catechesi per candidati alla CresimaIL CHIAMATO ALLA CONVERSIONE - catechesi per candidati alla Cresima
IL CHIAMATO ALLA CONVERSIONE - catechesi per candidati alla Cresima
 
XI Lezione - Arabo LAR Giath Rammo @ Libera Accademia Romana
XI Lezione - Arabo LAR Giath Rammo @ Libera Accademia RomanaXI Lezione - Arabo LAR Giath Rammo @ Libera Accademia Romana
XI Lezione - Arabo LAR Giath Rammo @ Libera Accademia Romana
 
lezione di fisica_I moti nel piano_Amaldi
lezione di fisica_I moti nel piano_Amaldilezione di fisica_I moti nel piano_Amaldi
lezione di fisica_I moti nel piano_Amaldi
 
XIII Lezione - Arabo G.Rammo @ Libera Accademia Romana
XIII Lezione - Arabo G.Rammo @ Libera Accademia RomanaXIII Lezione - Arabo G.Rammo @ Libera Accademia Romana
XIII Lezione - Arabo G.Rammo @ Libera Accademia Romana
 
RICERCA_SUGLI ANFIBI PER LA PRIMA MEDIA.
RICERCA_SUGLI ANFIBI PER LA PRIMA MEDIA.RICERCA_SUGLI ANFIBI PER LA PRIMA MEDIA.
RICERCA_SUGLI ANFIBI PER LA PRIMA MEDIA.
 
San Giorgio e la leggenda del drago.pptx
San Giorgio e la leggenda del drago.pptxSan Giorgio e la leggenda del drago.pptx
San Giorgio e la leggenda del drago.pptx
 
Corso di digitalizzazione e reti per segretario amministrativo
Corso di digitalizzazione e reti per segretario amministrativoCorso di digitalizzazione e reti per segretario amministrativo
Corso di digitalizzazione e reti per segretario amministrativo
 

Electronics LAB [with Arduino] | DAY 3

  • 1. ELECTRONICS LAB [WITH ARDUINO] Daniele Costarella Teatro Carlo Gesualdo / Casina Del Principe – Avellino – 28 > 31 agosto 2013 Salvatore Carotenuto >>> DAY #3
  • 2. 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/.
  • 3. Il programma di oggi ambient and human interaction: ● sensori di luminosità; ● sensori di temperatura; ● sensori di prossimità; ● comunicazione seriale; ● audio input; ● la libreria Cap-Sense per il touch detection; effetti di luce in base a stimoli esterni: ● VU meters; ● realtime sound generation; 3Electronics LAB [with Arduino]28 > 31 agosto 2013
  • 4. Human and Ambient Interaction 28 > 31 agosto 2013 Electronics LAB [with Arduino] 4 Sensori di luminosità / colore Programmable Color Light-to-Frequency Converter Module http://www.elecfreaks.com/store/programmable-color-lighttofrequency-converter-module-p-258.html?zenid=3ceplft7hf1shglnamuta9cp02
  • 5. Human and Ambient Interaction 28 > 31 agosto 2013 Electronics LAB [with Arduino] 5 Sensori di temperatura MCP9700 http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en022289
  • 6. Human and Ambient Interaction 28 > 31 agosto 2013 Electronics LAB [with Arduino] 6 Sensori di prossimità / distanza Distance Sensing With Ultrasonic Sensor and Arduino http://www.tautvidas.com/blog/2012/08/distance-sensing-with-ultrasonic-sensor-and-arduino/
  • 7. Elementi di programmazione 28 > 31 agosto 2013 Electronics LAB [with Arduino] 7 Il ciclo while e do/while Simbolo Spiegazione while (condizione) { // … < codice da ripetere > // … } Esegue un blocco di codice fin tanto che la condizione test è vera. do { // … < codice da ripetere > // … } while (condizione) Esegue un blocco di codice fin tanto che la condizione test è vera, con la differenza, però, che il ciclo viene eseguito almeno una volta. La condizione, infatti, viene testata a fine ciclo.
  • 8. Human and Ambient Interaction 28 > 31 agosto 2013 Electronics LAB [with Arduino] 8 Comunicazione seriale: pilotiamo un LED “a comando” //Flussi 2013 DAY 3: Comunicazione seriale int LED = 12; // stringa per contenere il comando ricevuto String command = ""; void setup() { pinMode(LED, OUTPUT); Serial.begin(9600); } void loop() { command = ""; // azzera la stringa // finchè ci sono caratteri disponibili... while(Serial.available()) { char c = Serial.read(); // legge un carattere... command.concat(c); // ...e lo concatena alla stringa delay(10); // attende 10 msec } // controlla se sono stati letti dei caratteri if(command != "") parseCommand(); // interpreta il comando ricevuto } [ Continua … ]
  • 9. Human and Ambient Interaction 28 > 31 agosto 2013 Electronics LAB [with Arduino] 9 Comunicazione seriale: pilotiamo un LED “a comando” // in questa funzione interpretiamo il comando ricevuto void parseCommand() { if( command == "ON" ) // se abbiamo ricevuto "ON"... { digitalWrite(LED, HIGH); Serial.println("LED ON!"); } else { if( command == "OFF" ) // se abbiamo ricevuto "OFF"... { digitalWrite(LED, LOW); Serial.println("LED OFF!"); } else { // se siamo qui, significa che il comando // non è tra quelli ammessi Serial.println("Uh?!?"); } } }
  • 10. Human and Ambient Interaction 28 > 31 agosto 2013 Electronics LAB [with Arduino] 10 Audio input: mettiamo “le orecchie” al nostro Arduino Semplice preamplificatore con Amplificatore Operazionale LM358 (o equivalenti)
  • 11. Human and Ambient Interaction 28 > 31 agosto 2013 Electronics LAB [with Arduino] 11 Audio input: mettiamo “le orecchie” al nostro Arduino
  • 12. Human and Ambient Interaction 28 > 31 agosto 2013 Electronics LAB [with Arduino] 12 Audio input: mettiamo “le orecchie” al nostro Arduino. Ecco il codice: /* FLUSSI 2013 Arduino CLAP Sensor Questo sketch permette di accendere un LED quando viene rilevato un suono di una certa intensità, come un battito di mani */ // LED collegato al pin 12 int LED = 12; void setup() { pinMode(LED, OUTPUT); // avvia il collegamento seriale Serial.begin(9600); } [ Continua … ]
  • 13. Human and Ambient Interaction 28 > 31 agosto 2013 Electronics LAB [with Arduino] 13 Audio input: mettiamo “le orecchie” al nostro Arduino. Ecco il codice: void loop() { // leggiamo l'output del sensore collegato sul pin A0 int sensorValue = analogRead(A0); Serial.println(sensorValue); // controlliamo se il livello del suono rilevato // supera una certa soglia. // Nota: questa soglia va calibrata in base al // livello del segnale in uscita dal preamplificatore, // e all'intensità del rumore che vogliamo rilevare if (sensorValue > 580) { // accendiamo il LED per 500 msec digitalWrite(LED, HIGH); delay(500); } else { digitalWrite(LED, LOW); } delay(50); }
  • 14. Elementi di programmazione 28 > 31 agosto 2013 Electronics LAB [with Arduino] 14 Arduino: le librerie ?!?!??
  • 15. Elementi di programmazione 28 > 31 agosto 2013 Electronics LAB [with Arduino] 15 Arduino: le librerie Una libreria, in Informatica, è un insieme di funzioni o strutture dati predisposte per essere collegate a un programma software attraverso opportuno collegamento. Il termine libreria nasce da un'errata traduzione dell'inglese library (letteralmente, biblioteca), ma ormai è così diffuso nel vocabolario dei professionisti da essere accettato quale esatta traduzione. Anche l'IDE di Arduino supporta l'uso delle librerie. Grazie ad esse, possiamo estendere rapidamente le funzionalità del nostro software utilizzando, appunto, le funzioni presenti nelle librerie, scritte da altre persone della community di Arduino. Allo stesso modo, possiamo creare delle nostre librerie e metterle a disposizione di tutta la community.
  • 16. Elementi di programmazione 28 > 31 agosto 2013 Electronics LAB [with Arduino] 16 Arduino: le librerie Sulla sezione playground del sito ufficiale Arduino possiamo trovare tutte le librerie per gli usi più disparati http://playground.arduino.cc//Main/LibraryList
  • 17. Human and Ambient Interaction 28 > 31 agosto 2013 Electronics LAB [with Arduino] 17 La libreria CapSense Un corpo umano che si avvicina al sensore capacitivo introduce una variazione di capacità nel circuito. Il microcontrollore è in grado di misurare tale variazione, ed è quindi possibile un'interazione.
  • 18. Human and Ambient Interaction 28 > 31 agosto 2013 Electronics LAB [with Arduino] 18 La libreria CapSense: installazione Come per le altre librerie per Arduino, l'installazione di CapSense consiste semplicemente nello scaricare da internet un archivio compresso e decomprimerlo nella directory libraries presente nella directory di default degli sketches. Per conoscere il path di questa directory, basta selezionare File → Preferences nell'IDE di Arduino
  • 19. Human and Ambient Interaction 28 > 31 agosto 2013 Electronics LAB [with Arduino] 19 La libreria CapSense: montiamo il circuito...
  • 20. Human and Ambient Interaction 28 > 31 agosto 2013 Electronics LAB [with Arduino] 20 ...e scriviamo il codice #include <CapacitiveSensor.h> //CapSense Library Demo Sketch // LED sul pin 13 #define LED 13 // resistore da 1 megaohm tra i pin 4 e 2 // nota: aumentando il valore del resistore, è // possibile aumentare la distanza di rilevamento // pin 2: sensor pin CapacitiveSensor cs_4_2 = CapacitiveSensor(4,2); void setup() { // imposta il pin del LED come uscita digitale pinMode(LED, OUTPUT); // // disattiva l'autocalibrazione sul canale 1 cs_4_2.set_CS_AutocaL_Millis(0xFFFFFFFF); // // inizializza la comunicazione seriale Serial.begin(9600); } [Continua...]
  • 21. Human and Ambient Interaction 28 > 31 agosto 2013 Electronics LAB [with Arduino] 21 ...e scriviamo il codice void loop() { long start = millis(); long total = cs_4_2.capacitiveSensor(30); // check on performance in milliseconds ????? Serial.print(millis() - start); // stampa il valore del sensore sulla porta seriale Serial.print(total); Serial.print("t"); // accende o spegne il LED in base al valore rilevato digitalWrite(LED, (total > ????) ? HIGH : LOW); // ritardo necessario per la porta seriale delay(10); }
  • 22. Human and Ambient Interaction 28 > 31 agosto 2013 Electronics LAB [with Arduino] 22 Effetti di luce in base a stimoli esterni: costruiamo un semplice VU-Meter
  • 23. Human and Ambient Interaction 28 > 31 agosto 2013 Electronics LAB [with Arduino] 23 Effetti di luce in base a stimoli esterni: costruiamo un semplice VU-Meter //Flussi 2013 DAY 3: il VU-Meter #define INPUT_PIN 0 // audio input pin #define NUMERO_LED 0 // numero led sul circuito #define INPUT_MAX 1024 // massimo valore ammesso in input // soglia per singolo LED #define STEP_LED INPUT_MAX / NUMERO_LED // definiamo i pin utilizzati per i LED int led[] = { 2, 3, 4, 5, 6, 7, 8, 9 }; int inputLevel = 0; // livello del segnale in ingresso int i; // variabile usata per i cicli void setup() { // definiamo tutti i pin dei LED come output for (i = 0; i < NUMERO_LED; i++) { pinMode(led[i], OUTPUT); } }
  • 24. Human and Ambient Interaction 28 > 31 agosto 2013 Electronics LAB [with Arduino] 24 Effetti di luce in base a stimoli esterni: costruiamo un semplice VU-Meter void loop() { // legge il livello dell'input inputLevel = analogRead(INPUT_PIN); // accende o spegne i LED a seconda del livello letto for (i = 0; i < NUMERO_LED; i++) { if(inputLevel > (STEP_LED * i)) digitalWrite(led[i], HIGH); else digitalWrite(led[i], LOW); } }
  • 25. Realtime sound generation 28 > 31 agosto 2013 Electronics LAB [with Arduino] 25 La libreria MOZZI http://sensorium.github.io/Mozzi/