home - tutorial - TUTORIAL - CREARE MELODIE CON ARDUINO E IL BUZZER

TUTORIAL - CREARE MELODIE CON ARDUINO E IL BUZZER

In questo tutorial vedremo come costruire uno "strumento musicale" tecnologico programmabile! Questa attività è sicuramente molto divertente, e permetterà agli studenti appassionati di musica (e non solo) di dare sfogo a tutta la loro fantasia e creatività.
  by Weturtle Team

Arduino

Introduzione

In questo tutorial vedremo come costruire uno "strumento musicale" tecnologico programmabile! Questa attività è sicuramente molto divertente, e permetterà agli studenti appassionati di musica (e non solo) di dare sfogo a tutta la loro fantasia e creatività.
Utilizzeremo la scheda Arduino UNO e un buzzer passivo. Non resta che iniziare!

Strumenti

Buzzer KY-006

Un buzzer è un dispositivo elettronico in grado di generare toni acustici. Utilizza due pin, collegati rispettivamente al GROUND e ad una Porta Digitale.

Circuito

Lo schema circuitale da realizzare è molto semplice! Lo trovi qui di seguito.

Funzione tone()

Uno dei metodi più funzionali per controllare un buzzer è l’utilizzo della funzione nativa di arduino tone(). Questa funzione utilizza 2 o 3 parametri con la seguente sintassi:

tone(pin, frequency, duration);
  • Il primo parametro, pin, è il pin digitale a cui è collegato il buzzer.
  • Il secondo parametro, frequency, è la frequenza, in Hz, del tono che si vuole riprodurre.
  • Il terzo parametro, duration, è la durata in millisecondi del tono, può essere omesso.
N.B.
La funzione una volta richiamata inizia la riproduzione del suono e passa subito alla parte successiva del codice senza attendere che la riproduzione sia completata, è quindi necessario, in caso si voglia riprodurre una serie di note, inserire un opportuno delay uguale o maggiore alla durata del tono, affinché le note non si sovrappongano.

Funzionamento del programma

La frequenza è inseribile manualmente in Hz, ma è anche possibile utilizzare una serie di costanti pubbliche contenenti tutte le note e le relative frequenze, in modo da poterle richiamare più comodamente. Queste variabili saranno disponibili una volta inserita l’opportuna libreria "pitches.h" (che trovi a questo link) all’interno della cartella dello sketch (raggiungibile tramite il menu nell’IDE Arduino Sketch > Apri cartella dello sketch, o più comodamente con la combinazione di tasti Ctrl + K).

Un altro accorgimento utile per l’utilizzo di tone(), può essere l’implementazione di una funzione intermedia, che chiameremo suona(). Utilizzeremo questa funzione con due principali scopi, il primo, poter inserire automaticamente il ritardo necessario prima dell’esecuzione della successiva nota. Il secondo invece, sarà avere la possibilità di controllare la velocità di esecuzione dei suoni, senza andare a modificare i tempi delle singole note.

Variante

Nel caso si volesse riprodurre una lunga serie di note, può essere utile implementare nel codice una sorta di spartito, con relativa funzione per andarlo poi a riprodurre. Uno dei modi più intuitivi è quello creare due liste, contenenti relativamente le note, e i tempi di queste.

Per far ciò basterà dichiarare due liste (o array) nel seguente modo:

int note[] = {NOTE_C4, NOTE_D4, NOTE_E4, NOTE_F4, NOTE_G4, NOTE_A4, NOTE_B4, NOTE_C5};
int tempi[] = { 4, 4, 4, 4, 4, 4, 4, 2 };

Una volta scritto il nostro “spartito” tramite un ciclo for andremo a scorrerlo interamente, richiamando ogni volta la nostra funzione suona() con i parametri necessari.

for ( int notaAttuale = 0; notaAttuale < sizeof(note); notaAttuale ++ ) {
    suona( note[ notaAttuale ], tempi[ notaAttuale ] );
}

Con questo semplice ciclo andremo a prendere dalle due liste i due valori necessari volta per volta per suonare ogni nota. Grazie al sizeof, questo andrà automaticamente a determinare la lunghezza dello spartito, è quindi possibile andarlo a modificare senza problemi, curandosi solo della corrispondenza delle note nelle due liste.

Riferimenti e links

Se vuoi maggiori informazioni o una consulenza o se vuoi far parte della famiglia We Turtle scrivi all'indirizzo email: info@weturtle.org
Per restare sempre aggiornato iscriviti alla piattaforma e segui We Turtle e Talent su Facebook.

Vuoi leggere il tutorial quando vuoi, anche offline?





Hai letto la lezione? Che cosa ne pensi? Lascia un commento qui sotto!