Raspberry Pi Pico je lacná doska mikrokontroléra, ktorá uľahčuje začiatočníkom začať s elektronickými projektmi a naučiť sa kódovať.
V rámci tohto projektu sa naučíte čítať analógový signál z potenciometra a previesť ho na PWM (modulácia šírky impulzu) signál na manipuláciu frekvencie alebo tónu bzučiaka pomocou MicroPythonu kód.
Aké diely sú potrebné?
Tento projekt je založený na Kitronik Inventor's Kit pre Raspberry Pi Pico. Všetky požadované elektronické komponenty sú súčasťou súpravy; toto sú však bežné komponenty, ktoré sa vám môžu povaľovať:
- Piezo prvok bzučiak
- Otočný potenciometer
- 7x prepojovací kábel samec-samec
- Malina Pi Pico s spájkované kolíky hlavičky GPIO
- Breadboard
Ak ste nováčikom v oblasti modulácie šírky impulzu (PWM) a potenciometrov, najprv si pozrite nášho sprievodcu na ako používať potenciometer s vaším Raspberry Pi Pico, ktorý načrtáva, ako ho použiť na nastavenie jasu LED s PWM.
Požadovaná montáž
Jeden prepojovací kábel (na fotografii žltý) spája ľavú stranu potenciometra s kladnou (+) koľajnicou doštičky. Ďalší prepojovací kábel spája pravú stranu potenciometra so zápornou (-) stranou kontaktného poľa. Zo stredného kolíka potenciometra budete musieť viesť prepojovací kábel na kolík GP26/A0 na Pico.
Piezo bzučiak bude musieť mať jeden vodič vedúci zo zápornej nohy k zápornej koľajničke na krájanie a potom ďalšie pripojenie z kladnej nohy na kolík GP15 na Raspberry Pi Pico.
Budete tiež musieť viesť prepojovací kábel z kolíka GND na Pico k zápornej koľajnici na doske, aby ste ju uzemnili. Ďalší prepojovací kábel spojí výstupný kolík 3V3 na Pico s kladnou koľajnicou doštičky na napájanie komponentov.
Vytvorte Kódex
Kód môžete získať z Úložisko MUO GitHub. Stiahnite si súbor MicroPython s názvom piezo-buzzer.py a potom to nahrajte do vášho Pico cez USB pripojený počítač s Thonny IDE. Zistite, ako na to začnite s MicroPythonom na Raspberry Pi Pico pre podrobnosti.
Rôzne časti kódu robia nasledovné:
- V hornej časti importujeme požadované stroj, matematika, a čas Moduly MicroPython.
- A bzučiak premenná je potom priradená k pinu GP15 ako výstup PWM.
- A potenciometer premenná je priradená analógovo-digitálnemu prevodníku (ADC) na pine Pico GP26/A0.
- Definujeme a mierka() funkcia, ktorá využíva matematické funkcie na prevod rozsahu pohybu potenciometra na výstup pre bzučiak.
- The zatiaľ čo: Pravda nekonečná slučka načíta vstup potenciometra a potom použije stupnica funkciu na jeho konverziu. Po kontrole, či sa oproti predchádzajúcej frekvencii príliš nezmenila, následne odošle vypočítanú frekvencia na bzučiak pomocou PWM (pulzno-šírková modulácia).
Stručne povedané, za sekundu sa odosielajú stovky impulzov a tón bzučiaka sa bude posúvať medzi 120 Hz a 5 kHz, keď sa potenciometer otáča v smere alebo proti smeru hodinových ručičiek. Otáčaním potenciometra sa mení napätie, ktoré načítava analógový vstupný kolík Pico, ktorý sa zase používa na nastavenie frekvencie bzučiaka pomocou PWM.
Spustite kód od Thonny (kliknite na ikonu prehrávania alebo stlačte F5 na klávesnici) a vyskúšajte si to sami. Ovplyvnia po prvom spustení nejaké zmeny kódu fyzické výsledky? Napríklad, čo sa stane, ak zmeníte rozsah (0 až 65535)? Táto časť kódu sa nachádza nižšie zatiaľ čo pravda: kde frekvencia je definovaný.
Nastavenie tónu
Ak sa cítite dobrodružne, môžete skúsiť použiť bzučiak na generovanie hudobných tónov pomocou martinkooij pi-piko-tóny knižnica na GitHub. Štandardne bude táto knižnica generovať sínusové vlny; štyri tónové generátory môžu bežať na štyroch rôznych kolíkoch Pico, ako si môžete vybrať. Všimnite si, že tento projekt je založený na C++ pomocou Raspberry Pi Pico SDK, nie MicroPython, ale úplné pokyny sú uvedené v súbore readme GitHub.
Buzz spoločnosti Pico Electronics
Gratulujeme: naučili ste sa čítať analógový vstup z potenciometra a konvertovať ho na signál PWM na ovládanie tónu bzučiaka. Potenciometer je všestranné vstupné zariadenie pre elektroniku. Piezo bzučiak je ďalším praktickým komponentom: napríklad pridaním infračerveného snímača pohybu PIR môžete zistiť prítomnosť narušiteľov a spustiť alarm.