Raspberry Pi Pico on edullinen mikro-ohjainkortti, jonka avulla aloittelijat voivat helposti aloittaa elektroniikkaprojekteja ja oppia koodaamaan.
Tässä projektissa opit lukemaan analogisen signaalin potentiometristä ja muuttamaan sen PWM: ksi (pulssinleveysmodulaatio) signaali, jolla voidaan manipuloida summerin taajuutta tai ääntä MicroPythonin avulla koodi.
Mitä osia tarvitaan?
Tämä projekti perustuu Kitronik Keksijäsarja Raspberry Pi Picolle. Kaikki tarvittavat elektroniset komponentit sisältyvät pakkaukseen; Nämä ovat kuitenkin yleisiä osia, joita saatat makaamaan:
- Piezo elementin summeri
- Pyörivä potentiometri
- 7x uros-uros hyppyjohtimia
- Raspberry Pi Pico kanssa juotetut GPIO-otsikkonastat
- Leipälauta
Jos olet uusi pulssinleveysmodulaation (PWM) ja potentiometrien käytössä, tutustu ensin oppaaseemme kuinka käyttää potentiometriä Raspberry Pi Picon kanssa
, jossa kerrotaan, kuinka sitä käytetään LED-valon kirkkauden säätämiseen PWM: llä.Vaadittu kokoonpano
Yksi hyppylanka (kuvassa keltainen) yhdistää potentiometrin vasemman puolen leipälevyn positiiviseen (+) kiskoon. Toinen hyppyjohdin yhdistää potentiometrin oikean puolen leipälevyn negatiiviseen (-) puoleen. Potentiometrin keskimmäisestä nastasta on johdettava hyppyjohdin Picon GP26/A0-nastalle.
Pietsosummerissa on oltava yksi johto, joka menee negatiivisesta haarastaan negatiiviseen leipälevyn kiskoon ja sitten toinen liitäntä sen positiivisesta haarasta Raspberry Pi Picon GP15-nastalle.
Sinun on myös vietävä hyppyjohdin Picon GND-nastasta koepalevyn negatiiviseen kiskoon maadoittamaan se. Toinen hyppyjohdin yhdistää Picon 3V3 Out -nastan leipälevyn positiiviseen kiskoon saadakseen virtaa komponenteille.
Luo koodi
Voit napata koodin osoitteesta MUO GitHub-arkisto. Lataa MicroPython-tiedosto nimeltä piezo-buzzer.py ja lataa se sitten Picoon USB-liitetyn tietokoneen kautta, jossa on Thonny IDE. Katso miten Aloita MicroPythonin käyttö Raspberry Pi Picossa yksityiskohtia varten.
Koodin eri osat toimivat seuraavasti:
- Ylhäällä tuomme tarvittavat kone, matematiikka, ja aika MicroPython-moduulit.
- A summeri muuttuja määrätään sitten nastalle GP15 PWM-ulostuloksi.
- A potentiometri muuttuja on määritetty analogia-digitaalimuuntimelle (ADC) Picon GP26/A0-nastassa.
- Määrittelemme a mittakaava() toiminto, joka käyttää matemaattisia funktioita muuntaakseen potentiometrin liikkeen alueen summerin lähdöksi.
- The kun taas: Totta ääretön silmukka lukee potentiometrin tulon ja käyttää sitten mittakaavassa toiminto muuntaa sen. Tarkastettuaan, ettei se ole muuttunut liikaa edellisestä taajuudesta, se lähettää lasketun taajuus summeriin PWM: llä (pulssinleveysmodulaatio).
Yhteenvetona voidaan todeta, että sekunnissa lähetetään satoja pulsseja ja summeriääni vaihtuu välillä 120 Hz ja 5 kHz, kun potentiometriä käännetään myötä- tai vastapäivään. Potentiometrin pyörittäminen muuttaa Picon analogisen tulonastan lukemaa jännitettä, jota puolestaan käytetään summerin taajuuden säätämiseen PWM: n avulla.
Suorita Thonnyn koodi (napsauta toistokuvaketta tai paina F5 näppäimistöllä) ja kokeile sitä itse. Vaikuttavatko koodimuutokset fyysisiin tuloksiin ensimmäisen ajon jälkeen? Esimerkiksi mitä tapahtuu, jos muutat alue (0 - 65535)? Tämä koodin osa sijaitsee aivan alla kun taas Totta: missä taajuus on määritelty.
Äänen asettaminen
Jos olet seikkailunhaluinen, voit kokeilla summerin avulla luoda musiikkiääniä Martinkooij's pi-pico-sävyt kirjasto GitHubissa. Oletuksena tämä kirjasto luo siniaaltoja; neljä äänigeneraattoria voivat toimia neljällä eri Pico-nastalla valinnan mukaan. Huomaa, että tämä projekti perustuu C++:aan, joka käyttää Raspberry Pi Pico SDK: ta MicroPythonin sijaan, mutta täydelliset ohjeet annetaan GitHub readme: ssä.
Pico Electronicsin surina
Onnittelut: olet oppinut lukemaan analogisen tulon potentiometristä ja muuttamaan sen PWM-signaaliksi summeriäänen ohjaamiseksi. Potentiometri on monipuolinen elektroniikan syöttölaite. Pietsosummeri on toinen kätevä komponentti: esimerkiksi PIR-infrapunaliiketunnistimen avulla voit havaita tunkeilijoiden läsnäolon ja antaa hälytyksen.