Comanda un segnale acustico con Raspberry Pi Pico
Il Raspberry Pi Pico è una scheda microcontrollore a basso costo che rende facile per i principianti iniziare con progetti di elettronica e imparare a programmare.
Per questo progetto imparerai come leggere un segnale analogico da un potenziometro e convertirlo in un segnale PWM (pulse-width modulation) per manipolare la frequenza, o tono, di un cicalino con l’aiuto del codice MicroPython.
Quali parti sono necessarie?
Questo progetto si basa sul kit Kitronik Inventor per Raspberry Pi Pico. Tutti i componenti elettronici necessari sono inclusi nel kit; tuttavia, questi sono componenti comuni che potresti avere in giro:
- Buzzer con elemento piezoelettrico
- Potenziometro rotativo
- 7 cavi jumper maschio-maschio
- Raspberry Pi Pico con pin di intestazione GPIO saldati
- Tagliere
Se non conosci la modulazione di larghezza di impulso (PWM) e i potenziometri, consulta prima la nostra guida su come utilizzare un potenziometro con il tuo Raspberry Pi Pico, che descrive come usarlo per regolare la luminosità di un LED con PWM.
Assemblaggio richiesto
Un ponticello (giallo nella foto) collega il lato sinistro del potenziometro alla guida positiva (+) della breadboard. Un altro ponticello collega il lato destro del potenziometro al lato negativo (-) della breadboard. Dal pin centrale del potenziometro, dovrai far passare un ponticello al pin GP26/A0 sul Pico.
Il cicalino piezoelettrico dovrà avere un filo che va dalla sua gamba negativa alla guida della breadboard negativa e poi un’altra connessione dalla sua gamba positiva al pin GP15 sul Raspberry Pi Pico.
Dovrai anche far passare un ponticello da un pin GND su Pico al binario negativo sulla breadboard, per metterlo a terra. Un altro ponticello collegherà il pin 3V3 Out sul Pico al binario positivo della breadboard, per alimentare i componenti.
Crea il codice
Puoi prendere il codice dal repository MUO GitHub. Scarica il file MicroPython chiamato piezo-buzzer.py e poi caricalo sul tuo Pico tramite un computer connesso tramite USB che esegue Thonny IDE. Scopri come iniziare con MicroPython su Raspberry Pi Pico per i dettagli.
Le varie parti del codice eseguono le seguenti operazioni:
- Nella parte superiore, importiamo i moduli Machine , Math e Time MicroPython richiesti.
- Una variabile buzzer viene quindi assegnata al pin GP15 come uscita PWM.
- Una variabile potenziometro è assegnata al convertitore analogico-digitale (ADC) sul pin GP26/A0 di Pico.
- Definiamo una funzione scale() che utilizza funzioni matematiche per convertire l’intervallo del movimento del potenziometro in un’uscita per il cicalino.
- The while: True infinite loop legge l’ingresso del potenziometro, quindi utilizza la funzione di scala per convertirlo. Dopo aver verificato che non sia cambiata troppo rispetto alla frequenza precedente, invia la frequenza calcolata al cicalino tramite PWM (pulse-width modulation).
In sintesi, vengono inviati centinaia di impulsi al secondo e il tono del cicalino si sposta tra 120Hz e 5kHz quando il potenziometro viene ruotato in senso orario o antiorario. La rotazione del potenziometro altera la tensione letta dal pin di ingresso analogico del Pico, che a sua volta viene utilizzata per regolare la frequenza del cicalino tramite PWM.
Esegui il codice da Thonny (fai clic sull’icona di riproduzione o premi F5 sulla tastiera) e provalo tu stesso. Dopo la prima esecuzione, eventuali modifiche al codice influiranno sui risultati fisici? Ad esempio, cosa succede se modifichi l’ intervallo (da 0 a 65535)? Questa parte del codice si trova appena sotto mentre True: dove è definita la frequenza .
Impostazione del tono
Se ti senti avventuroso, potresti provare a utilizzare il cicalino per generare toni musicali utilizzando la libreria pi-pico-tones di martinkooij su GitHub. Per impostazione predefinita, questa libreria genererà onde sinusoidali; quattro generatori di toni possono funzionare su quattro diversi pin Pico a scelta. Si noti che questo progetto è basato su C++ utilizzando Raspberry Pi Pico SDK, piuttosto che MicroPython, ma le istruzioni complete sono fornite nel readme di GitHub.
Il ronzio di Pico Electronics
Congratulazioni: hai imparato a leggere l’ingresso analogico da un potenziometro e convertirlo in un segnale PWM per controllare un segnale acustico. Un potenziometro è un dispositivo di input versatile per l’elettronica. Un cicalino piezoelettrico è un altro componente utile: con l’aggiunta di un sensore di movimento a infrarossi PIR, ad esempio, è possibile rilevare la presenza di intrusi e dare l’allarme.
Lascia un commento