Cititorii ca tine ajută la sprijinirea MUO. Când efectuați o achiziție folosind link-uri de pe site-ul nostru, este posibil să câștigăm un comision de afiliat. Citeşte mai mult.

Raspberry Pi Pico este o placă de microcontroler la preț redus, care facilitează începătorilor să înceapă cu proiecte electronice și să învețe cum să codifice.

Pentru acest proiect, veți învăța cum să citiți un semnal analogic de la un potențiometru și să îl convertiți într-un PWM (modularea lățimii pulsului) semnal pentru a manipula frecvența sau tonul unui sonerie cu ajutorul MicroPython cod.

Ce piese sunt necesare?

Acest proiect se bazează pe Kit Kitronik Inventor pentru Raspberry Pi Pico. Toate componentele electronice necesare sunt incluse în kit; cu toate acestea, acestea sunt componente obișnuite pe care este posibil să le aveți în jur:

  • Sonerie pentru element piezo
  • Potențiometru rotativ
  • 7x fire jumper tată-mascul
  • Raspberry Pi Pico cu pini de antet GPIO lipiți
  • Breadboard

Dacă sunteți nou în modularea lățimii impulsului (PWM) și potențiometre, consultați mai întâi ghidul nostru

instagram viewer
cum să utilizați un potențiometru cu Raspberry Pi Pico, care prezintă modul de utilizare pentru a regla luminozitatea unui LED cu PWM.

Asamblare necesară

Un fir jumper (galben în fotografie) conectează partea stângă a potențiometrului la șina pozitivă (+) a panoului. Un alt fir jumper conectează partea dreaptă a potențiometrului de partea negativă (-) a panoului. De la pinul din mijloc al potențiometrului, va trebui să treceți un fir jumper la pinul GP26/A0 de pe Pico.

Soneria piezo va trebui să aibă un fir care să meargă de la piciorul negativ la șina negativă a plăcii și apoi o altă conexiune de la piciorul său pozitiv la pinul GP15 de pe Raspberry Pi Pico.

Va trebui, de asemenea, să treceți un fir jumper de la un pin GND de pe Pico la șina negativă de pe placa, pentru a-l împământa. Un alt fir jumper va conecta pinul de ieșire 3V3 de pe Pico la șina pozitivă a plăcii, pentru a alimenta componentele.

Creați codul

Puteți prelua codul din Depozitul MUO GitHub. Descărcați fișierul MicroPython numit piezo-buzzer.py și apoi încărcați-l pe Pico prin intermediul unui computer conectat prin USB care rulează Thonny IDE. Vezi cum să începeți cu MicroPython pe Raspberry Pi Pico pentru detalii.

Diferitele părți ale codului fac următoarele:

  • În partea de sus, importăm necesarul mașinărie, matematica, și timp Module MicroPython.
  • A sonerie variabila este apoi atribuită pinului GP15 ca ieșire PWM.
  • A potențiometru variabila este atribuită convertorului analog-digital (ADC) pe pinul GP26/A0 al lui Pico.
  • Definim a scară() funcție care utilizează funcții matematice pentru a converti domeniul de mișcare a potențiometrului într-o ieșire pentru sonerie.
  • The în timp ce: Adevărat bucla infinită citește intrarea potențiometrului, apoi folosește scară funcția de a-l converti. După ce verifică că nu s-a schimbat prea mult față de frecvența anterioară, trimite apoi calculatul frecvență la sonerie folosind PWM (modularea lățimii pulsului).

În rezumat, sunt trimise sute de impulsuri pe secundă, iar tonul soneriei se va schimba între 120 Hz și 5 kHz, pe măsură ce potențiometrul este rotit în sensul acelor de ceasornic sau în sens invers acelor de ceasornic. Rotirea potențiometrului modifică tensiunea care este citită de pinul de intrare analogic al Pico, care, la rândul său, este folosit pentru a regla frecvența soneriei folosind PWM.

Rulați codul de la Thonny (faceți clic pe pictograma de redare sau apăsați F5 pe tastatură) și încercați-l singur. După prima rulare, orice modificare a codului va afecta rezultatele fizice? De exemplu, ce se întâmplă dacă schimbați gamă (de la 0 la 65535)? Această parte a codului se află chiar mai jos în timp ce este adevărat: unde frecvență este definit.

Stabilirea tonului

Dacă vă simțiți aventuros, poate doriți să încercați să utilizați soneria pentru a genera tonuri muzicale folosind martinkooij pi-pico-tonuri bibliotecă pe GitHub. În mod implicit, această bibliotecă va genera unde sinusoidale; patru generatoare de tonuri pot funcționa pe patru pini Pico diferiți, după cum puteți alege. Rețineți că acest proiect se bazează pe C++ folosind SDK-ul Raspberry Pi Pico, mai degrabă decât MicroPython, dar instrucțiunile complete sunt date în cititorul GitHub.

Buzz-ul Pico Electronics

Felicitări: ați învățat cum să citiți intrarea analogică de la un potențiometru și să o convertiți într-un semnal PWM pentru a controla un ton de sonerie. Un potențiometru este un dispozitiv de intrare versatil pentru electronice. Un buzzer piezo este o altă componentă la îndemână: cu adăugarea unui senzor de mișcare cu infraroșu PIR, de exemplu, puteți detecta prezența intrușilor și puteți suna alarma.