banner
Centro notizie
Scegli dalla nostra vasta gamma di prodotti e servizi di livello mondiale per un'esperienza davvero straordinaria.

Come utilizzare un cicalino per riprodurre musica con Raspberry Pi Pico

Jul 13, 2023

Con un cicalino piezoelettrico economico, puoi impostare allarmi o riprodurre interi brani.

Che tu stia costruendo un gioco che emette un segnale acustico quando perdi un turno, una sveglia che ti sveglia o semplicemente un display carino che riproduce musica a 8 bit, un cicalino piezoelettrico a basso costo può essere una parte importante del tuo Raspberry Pi Pico. progetto. I cicalini estremamente economici - spesso puoi trovarli per meno di $ 1 ciascuno - sono semplicissimi da programmare in MicroPython e possono persino variare la frequenza per produrre note musicali.

Esistono due tipi di cicalini piezoelettrici: attivi e passivi. I cicalini attivi emetteranno rumore se sono semplicemente collegati all'alimentazione senza il microcontrollore coinvolto, mentre quelli passivi no. I cicalini passivi sono preferiti per questo tipo di progetto perché offrono una migliore gamma di suoni, sebbene nei nostri test abbiano funzionato entrambi.

Di seguito, ti mostreremo come collegare il Raspberry Pi Pico a un cicalino piezoelettrico e programmarlo in MicroPython per riprodurre una breve melodia.

Non potrebbe essere più semplice. Colleghi il pin di terra sul buzzer a un pin GND sul Pico e il pin positivo del buzzer a un pin GPIO standard sul pico, nel nostro caso GP15. Il nostro cicalino passivo non aveva etichette negative o positive sui pin e funzionava con uno dei due collegato a uno dei pin Pico.

1. Inizia importando Pin e PWM dalla libreria della macchina e sospendi dalla libreria utime.

2.Inizializza PWM(aka modulazione di larghezza di impulso) sul Pin 15 e assegnarlo al cicalino variabile.

3. Assegnare una proprietà freq al buzzer. Devi scegliere un numero compreso tra 10 e 12.000. Più alto è il numero, più acuto sarà il suono. Proviamo con 500.

4.Imposta la proprietà duty_u16dell'oggetto segnalatore acusticoa 1000 . Questo rende il cicalino il più forte possibile. Un valore più basso è più silenzioso e 0 non indica alcun suono. Considerando quanto sono silenziosi questi cicalini, il volume massimo non è affatto alto.

5.Imposta un ritardo di 1 secondopoiimpostare il dovere su 0 in modo che il suono si interrompa. Se non lo fai, il ronzio continuerà, anche al termine dell'esecuzione del programma.

Il tuo codice finale per questo semplice test dovrebbe assomigliare a questo.

Poiché puoi utilizzare frequenze diverse, puoi creare una gamma completa di note musicali. Ci sono alcuni elenchi di frequenze di note musicali online e molti di essi risalgono alla libreria di toni Arduino di Brett Hagman su Github. Utilizzeremo questi valori per creare un elenco che possiamo utilizzare per riprodurre qualsiasi brano all'inizio del nostro codice.

1.Importa le librerie necessarieEinizializzare PWM sul pin 15.

2.Crea un dizionario chiamato notecon i seguenti valori.

3.Creare un elenco (ovvero array) di note per la tua canzone Usa la lettera P per rappresentare le pause nella musica. Ogni nota deve essere racchiusa tra virgolette.

Tanto di cappello alle persone di questo thread per aver condiviso le note di questo famoso riff.

4.Crea una funzione chiamata playtoneche prenderà qualsiasi frequenza e la riprodurrà a tutto volume.

5.Crea una funzione chiamata bequietciò silenzierà il cicalino cambiando duty_u16 in 0.

6.Crea una funzione chiamata Playsongche utilizzerai per scorrere la serie di note e riprodurle ciascuna o fare una pausa quando vede P.

Ecco cosa sta succedendo qui. Per prima cosa creiamo un ciclo for che scorre tutti i valori nell'array mysong. Se il valore è uguale a P, si attiva il silenzio e, in caso contrario, si attiva il playtone. Tieni presente che il playtone richiede un valore numerico di frequenza, quindi dobbiamo ottenere il numero per ciascuna nota dall'elenco dei toni. Se riproduciamo solo tone(mysong[i]), fallirà perché proverà a suonare la corda "E5" invece della frequenza 659, che è il numero intero di cui ha bisogno.

Per ogni tono o pausa il sistema mantiene lo stato per 0,3 secondi di sonno. Se vuoi un tempo più veloce, puoi abbassarlo. Se vuoi un tempo più lento, aumentalo.