SlideShare a Scribd company logo
1 of 12
Download to read offline
Stefano Panichi e Giulio Fieramosca
Arduino e Musica
Giulio Fieramosca
Stefano Panichi
Stefano Panichi e Giulio Fieramosca
Tone
Stefano Panichi e Giulio Fieramosca
Tone
● Il sistema più
semplice per
generare suoni
con Arduino;
● Consiste nella
generazione di
un'onda quadra a
frequenza
variabile;
#define BUZZER_PIN 3
#define PITCH_PIN A0
unsigned int value = 0;
unsigned int value_play = 0;
void setup() {
}
void loop() {
value = map(analogRead(PITCH_PIN),
0, 1024, 330, 880);
if (value > value_play) {
value_play++;
}
else if (value < value_play) {
value_play--;
}
tone(BUZZER_PIN, value_play, 20);
}
Stefano Panichi e Giulio Fieramosca
Sinusoidino
● Shield che permette
di generare onde più
complesse mediante
l'uso di un DAC a
rete resistiva esterna;
● Poco flessibile,
impegna le risorse
della CPU (timer) e 8
uscite;
Stefano Panichi e Giulio Fieramosca
Sinusoidino – Schema
Scala di resistenze
Filtro
Filtro Offset
Isolamento (Buffers)
Stefano Panichi e Giulio Fieramosca
Theremino!
● Usiamo sinusoidino per realizzare un
semplice Theremin: un sensore di
distanza varia la frequenza;
Stefano Panichi e Giulio Fieramosca
Sinusoidino
void setup() {
cli();
TCCR1A = 0;
OCR1A = 159;
TCCR1B |= (1 << WGM12);
TCCR1B |= (1 << CS10);
TIMSK1 |= (1 << OCIE1A);
sei();
}
ISR(TIMER1_COMPA_vect) {
if (offset >= CAMPIONI)
{
offset = 0;
}
offset +=incrementoPlay;
PORTD =
pgm_read_byte_near
(sine20000 + offset);
}
const byte sine20000[] PROGMEM = {127, 127, 127, 127, 127, 127,
127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128,
128, 128, 128, 128, 128, 128, 128, 128, 128...........
Stefano Panichi e Giulio Fieramosca
Wave Shield
● Shield che esegue
tracce musicali dalla
scheda SD;
● L'uscita è soltanto
mono, è limitato al
formato audio wav e
non é possibile
riprodurne più di uno
contemporaneamente;
Stefano Panichi e Giulio Fieramosca
Audio Board VS1053
● Scheda che
consente di
– riprodurre dati ogg,
mp3, aac, wma, flac;
– registrare audio ogg;
– riprodurre
informazione MIDI;
– Leggere i files da una
sd card;
Stefano Panichi e Giulio Fieramosca
Evoluzione di Theremino
● Con due fotoresistenze controlliamo volume
e frequenza in uscita.
void loop() {
toneValue = map(analogRead(PITCH_PIN), 0, 1023, 0, 127);
volValue = map(analogRead(VOL_PIN), 0, 1023, 30, 127);
if (toneValue > tonePlay)
toneOld = tonePlay++;
else if (toneValue < tonePlay)
toneOld = tonePlay--;
if (volValue > volPlay)
volOld = volPlay++;
else if (volValue < volPlay)
volOld = volPlay--;
midiNoteOff(0, toneOld, volOld);
midiNoteOn(0, tonePlay, volPlay);
delay(10);
}
Stefano Panichi e Giulio Fieramosca
Stefano Panichi
Giulio Fieramosca
it.linkedin.com/in/stefanopanichi/
@StefanoPanichi
s.panichi@yahoo.it
google.com/+StefanoPanichi
it.linkedin.com/in/giuliofieramosca
facebook.com/giulio.fieramosca
giuliofieramosca@gmail.com
google.com/+GiulioFieramosca
Grazie per l'attenzione
Stefano Panichi e Giulio Fieramosca
Presentazione realizzata con software open source
(LibreOffice Impress, Gimp, Arduino)
Quest'opera è distribuita con Licenza CC-BY-SA
e realizzata da Stefano Panichi e Giulio Fieramosca

More Related Content

What's hot

Presentazione
PresentazionePresentazione
Presentazione
cesario
 
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
Ionela
 
Open Hardware: Arduino, un prodotto italiano
Open Hardware: Arduino, un prodotto italianoOpen Hardware: Arduino, un prodotto italiano
Open Hardware: Arduino, un prodotto italiano
Riccardo Lemmi
 
Product catalogs 03: electronic instrumentation - weight indicators & weight ...
Product catalogs 03: electronic instrumentation - weight indicators & weight ...Product catalogs 03: electronic instrumentation - weight indicators & weight ...
Product catalogs 03: electronic instrumentation - weight indicators & weight ...
LAUMAS
 
Electronics LAB [with Arduino] | DAY 2
Electronics LAB [with Arduino] | DAY 2Electronics LAB [with Arduino] | DAY 2
Electronics LAB [with Arduino] | DAY 2
Daniele Costarella
 

What's hot (20)

OPDE Drives
OPDE DrivesOPDE Drives
OPDE Drives
 
Anatomia di un'istruzione in Arduino Pt.1
Anatomia di un'istruzione in Arduino Pt.1Anatomia di un'istruzione in Arduino Pt.1
Anatomia di un'istruzione in Arduino Pt.1
 
Anatomia di un'istruzione in Arduino Pt.2
Anatomia di un'istruzione in Arduino Pt.2Anatomia di un'istruzione in Arduino Pt.2
Anatomia di un'istruzione in Arduino Pt.2
 
Arduino&Raspberry
Arduino&RaspberryArduino&Raspberry
Arduino&Raspberry
 
Presentazione
PresentazionePresentazione
Presentazione
 
Introduzione ad Arduino
Introduzione ad ArduinoIntroduzione ad Arduino
Introduzione ad Arduino
 
Arduino & raspberry pi - Un connubio stimolante
Arduino & raspberry pi - Un connubio stimolanteArduino & raspberry pi - Un connubio stimolante
Arduino & raspberry pi - Un connubio stimolante
 
Lezione 1 arduino - corso 20 ore
Lezione 1 arduino - corso 20 oreLezione 1 arduino - corso 20 ore
Lezione 1 arduino - corso 20 ore
 
Progettare con Arduino come un Ingegnere
Progettare con Arduino come un IngegnereProgettare con Arduino come un Ingegnere
Progettare con Arduino come un Ingegnere
 
Arduino PLC : Modulo 1 programación Arduino Rev. 2.0
Arduino PLC : Modulo 1 programación Arduino Rev. 2.0Arduino PLC : Modulo 1 programación Arduino Rev. 2.0
Arduino PLC : Modulo 1 programación Arduino Rev. 2.0
 
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
 
Microcontrollori
MicrocontrolloriMicrocontrollori
Microcontrollori
 
Open Hardware: Arduino, un prodotto italiano
Open Hardware: Arduino, un prodotto italianoOpen Hardware: Arduino, un prodotto italiano
Open Hardware: Arduino, un prodotto italiano
 
Raspberry pi per tutti (workshop presso Warehouse Coworking Pesaro)
Raspberry pi per tutti (workshop presso Warehouse Coworking Pesaro)Raspberry pi per tutti (workshop presso Warehouse Coworking Pesaro)
Raspberry pi per tutti (workshop presso Warehouse Coworking Pesaro)
 
Workshop arduino
Workshop arduinoWorkshop arduino
Workshop arduino
 
Arduino ai raggi x rendiamolo professionale
Arduino ai raggi x  rendiamolo professionaleArduino ai raggi x  rendiamolo professionale
Arduino ai raggi x rendiamolo professionale
 
Product catalogs 03: electronic instrumentation - weight indicators & weight ...
Product catalogs 03: electronic instrumentation - weight indicators & weight ...Product catalogs 03: electronic instrumentation - weight indicators & weight ...
Product catalogs 03: electronic instrumentation - weight indicators & weight ...
 
Android-Arduino interaction via Bluetooth
Android-Arduino interaction via BluetoothAndroid-Arduino interaction via Bluetooth
Android-Arduino interaction via Bluetooth
 
Electronics LAB [with Arduino] | DAY 2
Electronics LAB [with Arduino] | DAY 2Electronics LAB [with Arduino] | DAY 2
Electronics LAB [with Arduino] | DAY 2
 
Arduino ai raggi x
Arduino ai raggi xArduino ai raggi x
Arduino ai raggi x
 

Similar to Fare Musica con Arduino

Il Personal Computer
Il Personal ComputerIl Personal Computer
Il Personal Computer
bity1988
 
Il Personal Computer
Il Personal ComputerIl Personal Computer
Il Personal Computer
bity1988
 
Attrezzature rionero in vulture
Attrezzature rionero in vultureAttrezzature rionero in vulture
Attrezzature rionero in vulture
Andrea Quaranta
 
Targhe E Colonne Serie 1200 Dep Pub I89 6 2009
Targhe E Colonne Serie 1200 Dep Pub I89 6 2009Targhe E Colonne Serie 1200 Dep Pub I89 6 2009
Targhe E Colonne Serie 1200 Dep Pub I89 6 2009
guest483b5f6
 
Attrezzature valsarmento
Attrezzature valsarmentoAttrezzature valsarmento
Attrezzature valsarmento
Andrea Quaranta
 

Similar to Fare Musica con Arduino (20)

Attrezzature marconia
Attrezzature marconiaAttrezzature marconia
Attrezzature marconia
 
Attrezzature tito
Attrezzature titoAttrezzature tito
Attrezzature tito
 
Il Personal Computer
Il Personal ComputerIl Personal Computer
Il Personal Computer
 
Il Personal Computer
Il Personal ComputerIl Personal Computer
Il Personal Computer
 
Attrezzature matera
Attrezzature materaAttrezzature matera
Attrezzature matera
 
[LDNA2018] - JACK Audio Connection Kit: la tua Patchbay virtuale!
[LDNA2018] - JACK Audio Connection Kit: la tua Patchbay virtuale![LDNA2018] - JACK Audio Connection Kit: la tua Patchbay virtuale!
[LDNA2018] - JACK Audio Connection Kit: la tua Patchbay virtuale!
 
Introduzione al Sistema S6L
Introduzione al Sistema S6LIntroduzione al Sistema S6L
Introduzione al Sistema S6L
 
Attrezzature rionero in vulture
Attrezzature rionero in vultureAttrezzature rionero in vulture
Attrezzature rionero in vulture
 
Targhe E Colonne Serie 1200 Dep Pub I89 6 2009
Targhe E Colonne Serie 1200 Dep Pub I89 6 2009Targhe E Colonne Serie 1200 Dep Pub I89 6 2009
Targhe E Colonne Serie 1200 Dep Pub I89 6 2009
 
JACK Audio Connection Kit
JACK Audio Connection KitJACK Audio Connection Kit
JACK Audio Connection Kit
 
Attrezzature valsarmento
Attrezzature valsarmentoAttrezzature valsarmento
Attrezzature valsarmento
 
Workshop 12-13 Ottobre S6L - Day 1 (Intro)
Workshop 12-13 Ottobre S6L - Day 1 (Intro)Workshop 12-13 Ottobre S6L - Day 1 (Intro)
Workshop 12-13 Ottobre S6L - Day 1 (Intro)
 
Arkanoid on Altera DE-1
Arkanoid on Altera DE-1Arkanoid on Altera DE-1
Arkanoid on Altera DE-1
 
Retroprogramming - Programmare oggi il C64, by Giovanni Simotti
Retroprogramming - Programmare oggi il C64, by Giovanni SimottiRetroprogramming - Programmare oggi il C64, by Giovanni Simotti
Retroprogramming - Programmare oggi il C64, by Giovanni Simotti
 
Introduzione ad Arduino del Maker DevLab
Introduzione ad Arduino del Maker DevLabIntroduzione ad Arduino del Maker DevLab
Introduzione ad Arduino del Maker DevLab
 
Pioneer 1320 il migliore
Pioneer 1320   il migliorePioneer 1320   il migliore
Pioneer 1320 il migliore
 
Corso Arduino Base - MUST
Corso Arduino Base - MUSTCorso Arduino Base - MUST
Corso Arduino Base - MUST
 
Lezione 2 arduino - corso 20 ore
Lezione 2 arduino - corso 20 oreLezione 2 arduino - corso 20 ore
Lezione 2 arduino - corso 20 ore
 
Guida al computer - Lezione 12 - La scheda audio
Guida al computer - Lezione 12 - La scheda audioGuida al computer - Lezione 12 - La scheda audio
Guida al computer - Lezione 12 - La scheda audio
 
Introduzione a Arduino
Introduzione a ArduinoIntroduzione a Arduino
Introduzione a Arduino
 

Fare Musica con Arduino

  • 1. Stefano Panichi e Giulio Fieramosca Arduino e Musica Giulio Fieramosca Stefano Panichi
  • 2. Stefano Panichi e Giulio Fieramosca Tone
  • 3. Stefano Panichi e Giulio Fieramosca Tone ● Il sistema più semplice per generare suoni con Arduino; ● Consiste nella generazione di un'onda quadra a frequenza variabile; #define BUZZER_PIN 3 #define PITCH_PIN A0 unsigned int value = 0; unsigned int value_play = 0; void setup() { } void loop() { value = map(analogRead(PITCH_PIN), 0, 1024, 330, 880); if (value > value_play) { value_play++; } else if (value < value_play) { value_play--; } tone(BUZZER_PIN, value_play, 20); }
  • 4. Stefano Panichi e Giulio Fieramosca Sinusoidino ● Shield che permette di generare onde più complesse mediante l'uso di un DAC a rete resistiva esterna; ● Poco flessibile, impegna le risorse della CPU (timer) e 8 uscite;
  • 5. Stefano Panichi e Giulio Fieramosca Sinusoidino – Schema Scala di resistenze Filtro Filtro Offset Isolamento (Buffers)
  • 6. Stefano Panichi e Giulio Fieramosca Theremino! ● Usiamo sinusoidino per realizzare un semplice Theremin: un sensore di distanza varia la frequenza;
  • 7. Stefano Panichi e Giulio Fieramosca Sinusoidino void setup() { cli(); TCCR1A = 0; OCR1A = 159; TCCR1B |= (1 << WGM12); TCCR1B |= (1 << CS10); TIMSK1 |= (1 << OCIE1A); sei(); } ISR(TIMER1_COMPA_vect) { if (offset >= CAMPIONI) { offset = 0; } offset +=incrementoPlay; PORTD = pgm_read_byte_near (sine20000 + offset); } const byte sine20000[] PROGMEM = {127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128...........
  • 8. Stefano Panichi e Giulio Fieramosca Wave Shield ● Shield che esegue tracce musicali dalla scheda SD; ● L'uscita è soltanto mono, è limitato al formato audio wav e non é possibile riprodurne più di uno contemporaneamente;
  • 9. Stefano Panichi e Giulio Fieramosca Audio Board VS1053 ● Scheda che consente di – riprodurre dati ogg, mp3, aac, wma, flac; – registrare audio ogg; – riprodurre informazione MIDI; – Leggere i files da una sd card;
  • 10. Stefano Panichi e Giulio Fieramosca Evoluzione di Theremino ● Con due fotoresistenze controlliamo volume e frequenza in uscita. void loop() { toneValue = map(analogRead(PITCH_PIN), 0, 1023, 0, 127); volValue = map(analogRead(VOL_PIN), 0, 1023, 30, 127); if (toneValue > tonePlay) toneOld = tonePlay++; else if (toneValue < tonePlay) toneOld = tonePlay--; if (volValue > volPlay) volOld = volPlay++; else if (volValue < volPlay) volOld = volPlay--; midiNoteOff(0, toneOld, volOld); midiNoteOn(0, tonePlay, volPlay); delay(10); }
  • 11. Stefano Panichi e Giulio Fieramosca Stefano Panichi Giulio Fieramosca it.linkedin.com/in/stefanopanichi/ @StefanoPanichi s.panichi@yahoo.it google.com/+StefanoPanichi it.linkedin.com/in/giuliofieramosca facebook.com/giulio.fieramosca giuliofieramosca@gmail.com google.com/+GiulioFieramosca Grazie per l'attenzione
  • 12. Stefano Panichi e Giulio Fieramosca Presentazione realizzata con software open source (LibreOffice Impress, Gimp, Arduino) Quest'opera è distribuita con Licenza CC-BY-SA e realizzata da Stefano Panichi e Giulio Fieramosca