Kazalo:
- Korak: Sestavine
- 2. korak: Priključite ultrazvočne senzorje na ploščo Octasonic
- 3. korak: Pretvornik logičnih ravni priključite na ploščo Octasonic
- 4. korak: Pretvornik ravni logike povežite z Raspberry Pi
- 5. korak: Priključite Raspberry Pi 5V na Octasonic 5V
- 6. korak: Namestite programsko opremo
- 7. korak: Ustvarite glasbo
- 8. korak: Nadzor s kretnjami
- 9. korak: izdelava ohišja
- 10. korak: Odpravljanje težav in naslednji koraki
Video: Ultrazvočni pi klavir s krmilnimi potezami!: 10 korakov (s slikami)
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:07
Ta projekt uporablja poceni ultrazvočne senzorje HC-SR04 kot vhodne podatke in ustvarja zapise MIDI, ki jih je mogoče predvajati prek sintetizatorja na Raspberry Pi za visokokakovosten zvok.
Projekt uporablja tudi osnovno obliko upravljanja s kretnjami, kjer lahko glasbeni instrument spremenite tako, da za nekaj sekund držite roke nad dvema zunanjima senzorjema. Z drugo potezo lahko izklopite Raspberry Pi, ko končate.
Zgornji video prikazuje končni izdelek v enostavnem lasersko izrezanem ohišju. Kasneje v tem navodilu je podrobnejši video, ki pojasnjuje, kako projekt deluje.
Ta projekt sem ustvaril skupaj z The Gizmo Dojo (moj lokalni makerspace v Broomfieldu, CO), da bi naredil nekaj interaktivnih eksponatov, ki jih lahko popeljemo na lokalne dogodke STEM/STEAM in Maker Faires.
Oglejte si tudi najnovejšo dokumentacijo in vaje na naslovu https://theotherandygrove.com/octasonic/, ki zdaj vsebuje informacije o različici tega projekta Python (ta navodila so bila napisana za različico Rust).
Korak: Sestavine
Za to navodilo boste potrebovali naslednje sestavine:
- Raspberry Pi (2 ali 3) s kartico SD
- 8 ultrazvočnih senzorjev HC-SR04
- Octasonic Breakout Board
- Dvosmerni pretvornik ravni logike
- 32 x 12 "žensko-ženske mostične žice za priključitev ultrazvočnih senzorjev
- 13 x 6 "žensko-ženska mostična žica za priključitev pretvornika nivoja Raspberry Pi, Octasonic in logičnega nivoja
- Primerno napajanje za Raspberry Pi
- PC zvočniki ali podobno
Če je mogoče, priporočam uporabo Raspberry Pi 3, saj ima več računalniške moči, kar ima za posledico bolj odziven in prijetnejši zvok. Z Raspberry Pi 2 se lahko dobro obnese z rahlim prilagajanjem, vendar za ta projekt ne bi poskušal uporabiti izvirne Raspberry Pi.
Ultrazvočni senzorji HC -SR04 imajo 4 povezave - 5V, GND, Trigger in Echo. Običajno sta sprožilec in odmev povezana na ločene nožice na mikrokrmilniku ali Raspberry Pi, vendar to pomeni, da bi morali za priključitev 8 senzorjev uporabiti 16 nožic, kar pa ni praktično. Tu pride na trg Octasonicova odklopna plošča. Ta plošča se poveže z vsemi senzorji in ima namenski mikrokrmilnik, ki nadzoruje senzorje in nato komunicira z Raspberry Pi prek SPI.
HC-SR04 zahteva 5V, Raspberry Pi pa le 3.3V, zato potrebujemo tudi pretvornik logične ravni, ki bo povezal Raspberry Pi z odklopno ploščo Octasonic.
2. korak: Priključite ultrazvočne senzorje na ploščo Octasonic
Za priključitev vsakega ultrazvočnega senzorja na ploščo uporabite 4 žice žensko-ženski skakalec, pri tem pa pazite, da jih pravilno povežete. Plošča je zasnovana tako, da so zatiči v istem vrstnem redu kot zatiči na ultrazvočnem senzorju. Od leve proti desni na plošči so zatiči GND, Trigger, Echo, 5V.
3. korak: Pretvornik logičnih ravni priključite na ploščo Octasonic
Raspberry Pi in Octasonic Board komunicirata prek SPI. SPI uporablja 4 žice:
- Master In, Slave Out (MISO)
- Master Out, Slave In (MOSI)
- Zaporedna ura (SCK)
- Slave Select (SS)
Poleg tega moramo priključiti napajanje (5V in GND).
Pretvornik logične ravni ima dve strani - nizkonapetostno (LV) in visokonapetostno (HV). Malina se bo priključila na LV stran, saj je 3.3V. Octasonic se bo priključil na HV stran, saj je 5V.
Ta korak je namenjen priključitvi Octasonica na visokonapetostno stran pretvornika logične ravni
Oglejte si fotografijo, priloženo temu koraku, ki prikazuje, katere zatiče je treba priključiti na pretvornik logične ravni.
Priključki iz pretvornika Octasonic v logični nivo morajo biti naslednji:
- 5V na HV
- SCK v HV4
- MISO do HV3
- MOSI v HV2
- SS do HV1
- GND v GND
4. korak: Pretvornik ravni logike povežite z Raspberry Pi
Raspberry Pi in Octasonic Board komunicirata prek SPI. SPI uporablja 4 žice:
- Master In, Slave Out (MISO)
- Master Out, Slave In (MOSI)
- Zaporedna ura (SCK)
- Slave Select (SS)
Poleg tega moramo priključiti napajanje (3,3 V in GND). Pretvornik logične ravni ima dve strani - nizkonapetostno (LV) in visokonapetostno (HV). Malina se bo priključila na LV stran, saj je 3.3V. Octasonic se bo priključil na HV stran, saj je 5V.
Ta korak je namenjen priključitvi Raspberry Pi na LV stran pretvornika logične ravni
Povezave od Raspbery Pi do pretvornika logične ravni morajo biti naslednje:
- 3.3V do LV
- GPIO11 (SPI_SCLK) do LV4
- GPIO09 (SPI_MISO) do LV3
- GPIO10 (SPI_MOSI) do LV2
- GPIO08 (SPI_CE0_N) SS do LV1
- GND v GND
S pomočjo diagrama, priloženega temu koraku, poiščite pravilne zatiče na Raspberry Pi!
5. korak: Priključite Raspberry Pi 5V na Octasonic 5V
Dodati je treba še eno zadnjo žico. Octasonicovo ploščo moramo dejansko napajati s 5V, zato to storimo tako, da enega od 5 -polnih zatičev Raspberry Pi povežemo s 5 -V na glavi Octasonic AVR. To je spodnji levi zatič v bloku glave AVR (to je blok 2 x 3 v zgornjem desnem kotu plošče). Oglejte si priloženo fotografijo, ki prikazuje, kje je blok AVR.
Oglejte si drugi priloženi diagram in poiščite 5V pin na Raspberry Pi.
6. korak: Namestite programsko opremo
Namestite Raspian
Začnite s čisto namestitvijo Raspbian Jessie, nato jo posodobite na najnovejšo različico:
sudo apt-get posodobitev
sudo apt-get nadgradnja
Omogoči SPI
Če želite, da ta projekt deluje, morate omogočiti SPI na Raspberry Pi! Za to uporabite pripomoček za konfiguracijo Raspberry Pi.
Pomembno je tudi, da znova zaženete Pi, potem ko omogočite SPI, da začne veljati
Namestite FluidSynth
Fluidsynth je neverjeten MIDI sintetizator brezplačne programske opreme. Lahko ga namestite iz ukazne vrstice s tem ukazom:
sudo apt-get install fluidsynth
Namestite programski jezik Rust
Ultrazvočni pi klavir je implementiran v programskem jeziku Rust iz Mozille (podoben je C ++, vendar brez slabih kosov). To danes uporabljajo vsi kul otroci.
Sledite navodilom na https://rustup.rs/, da namestite Rust. Če želite prihraniti čas, sledite tem ukazom. Med namestitvijo lahko sprejmete privzete odgovore na vsa vprašanja.
OPOMBA: Od objave tega navodila je nekaj težav pri nameščanju Rusta na Raspberry Pi. Slab čas:-/ vendar sem spodnji ukaz spremenil, da bi rešil težavo. Upajmo, da bodo to kmalu uredili. Delam na ustvarjanju slike, ki jo lahko ljudje prenesejo in zapišejo na kartico SD. Če bi to želeli, me prosim kontaktirajte.
izvoz RUSTUP_USE_HYPER = 1curl https://sh.rustup.rs -sSf | sh
Prenesite izvorno kodo Ultrasonic Pi Piano
Izvorna koda za izvorno kodo Ultrasonic Pi Piano gostuje na githubu. Obstajata dve možnosti za pridobitev kode. Če poznate git in github, lahko klonirate repo:
git clone [email protected]: TheGizmoDojo/UltrasonicPiPiano.git
Druga možnost je, da prenesete zip datoteko z najnovejšo kodo.
Prevedite izvorno kodo
cd UltrasonicPiPiano
izdelava tovora -sprostitev
Preizkusite kodo
Preden nadaljujemo z ustvarjanjem glasbe v naslednjem koraku, se prepričajmo, da se programska oprema zažene in da lahko iz senzorjev preberemo veljavne podatke.
Za zagon aplikacije uporabite naslednji ukaz. Ta bo prebral podatke iz senzorjev in jih prevedel v zapiske MIDI, ki jih nato natisnejo na konzoli. Ko premikate roko po senzorjih, bi morali videti, kako se ustvarjajo podatki. Če ne, pojdite na razdelek za odpravljanje težav na koncu tega navodila.
cargo run -sprostitev
Če vas zanima, zastavica "--release" pove Rustu, da kodo sestavi čim bolj učinkovito, v nasprotju s privzeto nastavitvijo "--debug".
7. korak: Ustvarite glasbo
Prepričajte se, da ste še vedno v imeniku, kjer ste prenesli izvorno kodo, in zaženite naslednji ukaz.
Ta skript "run.sh" poskrbi, da je koda prevedena, nato pa zažene kodo, tako da izhod prenese v fluidsynth.
./run.sh
Prepričajte se, da imate ojačane zvočnike, priključene na 3,5 -milimetrski avdio priključek na Raspberry Pi, in slišati glasbo, ko premikate roke po senzorjih.
Če ne slišite glasbe in imate priključen monitor HDMI, bo namesto tega verjetno šel zvočni izhod. Če želite to odpraviti, preprosto zaženite ta ukaz in nato znova zaženite Pi Piano:
sudo amixer cset numid = 3 1
Spreminjanje glasnosti
Glasnost (ali "dobiček") je podana s parametrom "-g" na fluidsynth. Skript run.sh lahko spremenite in spremenite to vrednost. Upoštevajte, da majhne spremembe tega parametra povzročijo veliko spremembo obsega, zato ga poskusite povečati za majhne količine (na primer 0,1 ali 0,2).
8. korak: Nadzor s kretnjami
Za popoln prikaz projekta, vključno s tem, kako delujejo kontrole kretenj, si oglejte videoposnetek, priložen temu koraku.
Koncept je zelo preprost. Programska oprema spremlja, kateri senzorji so pokriti (znotraj 10 cm) in kateri ne. To pomeni 8 binarnih števil (1 ali 0). To je zelo priročno, saj zaporedje 8 binarnih števil naredi "bajt", ki lahko predstavlja številke med 0 in 255. Če še ne poznate binarnih števil, vam toplo priporočam, da poiščete vadnico. Binarne številke so temeljna veščina, če se želite naučiti več o programiranju.
Programska oprema preslika trenutno stanje senzorjev v en sam bajt, ki predstavlja trenutno potezo. Če ta številka ostane več ciklov, programska oprema deluje na to potezo.
Ker ultrazvočni senzorji niso super zanesljivi in med senzorji lahko pride do motenj, boste morali pri uporabi kretenj biti potrpežljivi. Poskusite spremeniti razdaljo, ki jo držite za roke od senzorjev, kot tudi kot, v katerem držite roke. Hladite tudi, da držite nekaj ravno in trdno nad senzorji, da bolje odražajo zvok.
9. korak: izdelava ohišja
Če želite to narediti za stalno razstavo in jo lahko pokazati ljudem, boste verjetno želeli narediti kakšno ograjo. Lahko je izdelan iz lesa, kartona ali mnogih drugih materialov. Tukaj je video, ki prikazuje ohišje, na katerem delamo za ta projekt. Ta je narejen iz lesa, z izvrtanimi luknjami za držanje ultrazvočnih senzorjev na mestu.
10. korak: Odpravljanje težav in naslednji koraki
Odpravljanje težav
Če projekt ne deluje, je to običajno posledica napake pri ožičenju. Vzemite si čas in dvakrat preverite vse povezave.
Druga pogosta težava je onemogočanje SPI in ponovni zagon pi.
Obiščite https://theotherandygrove.com/octasonic/ za popolno dokumentacijo, vključno z nasveti za odpravljanje težav, s članki, specifičnimi za Rust in Python, ter informacijami o tem, kako dobiti podporo.
Naslednji koraki
Ko projekt začne delovati, priporočam, da eksperimentirate s kodo in preizkusite različna glasbila. Kode instrumentov MIDI so med 1 in 127 in so dokumentirane tukaj.
Ali želite en sam glasbeni instrument, pri katerem vsak senzor igra drugačno oktavo? Morda bi želeli, da bi bil vsak senzor ločen instrument? Možnosti so skoraj neomejene!
Upam, da ste uživali v tem navodilu. Če vam je všeč, se všečkajte in se naročite na mene tukaj in na moj YouTube kanal, če si želite ogledati prihodnje projekte.
Priporočena:
Ultrazvočni sistem dostopa: 6 korakov (s slikami)
Sistem dostopa na osnovi ultrazvoka: Tokrat vam predstavljam sistem dostopa na osnovi ultrazvoka, za katerega menim, da bi lahko bil zanimiv. Temelji na ultrazvočnih valovih, zato je sistem brezstičnega dostopa, ki ne potrebuje nobene druge elektronske naprave, ampak kateri koli predmet, tudi vaše roke poskusiti t
Ultrazvočni merilnik nivoja rezervoarja: 5 korakov (s slikami)
Ultrazvočni merilnik nivoja rezervoarja: Ali morate spremljati nivo tekočine v vrtini velikega premera, rezervoarju ali odprti posodi? Ta priročnik vam bo pokazal, kako narediti brezkontaktni merilnik nivoja tekočine v sonarju s poceni elektroniko! Zgornja skica prikazuje pregled, kaj smo želeli s t
Preprost nadzor s potezami z IR senzorji: 7 korakov
Enostavno upravljanje s kretnjami z uporabo IR senzorjev: Upravljanje stvari s kretnjami je vedno vznemirljivo in zabavno, vendar so senzorji, ki so na voljo na trgu za prepoznavanje kretenj, precej dragi. Torej, kako lahko z nekaj dolarji naredimo preprost nadzor s kretnjami? No, IR senzorji ob pravilni uporabi
Ultrazvočni merilnik zmogljivosti rezervoarja za deževnico: 10 korakov (s slikami)
Ultrazvočni merilnik kapacitete rezervoarjev za deževnico: Če ste podobni meni in imate malo okoljske vesti (ali pa samo krhki, ki želijo prihraniti nekaj dolarjev - kar sem tudi jaz …), imate morda rezervoar za deževnico. Imam rezervoar za obiranje precej redkega dežja, ki nas obnese
Ultrazvočni daljinomer z vrati: 7 korakov (s slikami)
Ultrazvočni daljinomer z vrati: Ultrazvočni daljinomer zaznava, če mu kaj pade na pot, tako da oddaja visokofrekvenčni zvočni val. Poudarek tega poučevanja bo na tem, kako lahko vrata in ultrazvočni daljinomeri delujejo skupaj, natančneje, kako jih lahko uporabimo za zaznavanje, ko