Sadržaj:
- Korak 1: Sastojci
- Korak 2: Priključite ultrazvučne senzore na Octasonic ploču
- Korak 3: Priključite pretvarač logičkog nivoa na Octasonic ploču
- Korak 4: Povežite pretvarač logičkog nivoa na Raspberry Pi
- Korak 5: Spojite Raspberry Pi 5V na Octasonic 5V
- Korak 6: Instalirajte softver
- Korak 7: Napravite muziku
- Korak 8: Kontrola pokreta
- Korak 9: Izrada kućišta
- Korak 10: Rješavanje problema i sljedeći koraci
Video: Ultrazvučni Pi klavir sa kontrolom pokreta! 10 koraka (sa slikama)
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:08
Ovaj projekt koristi jeftine ultrazvučne senzore HC-SR04 kao ulaze i generira MIDI note koje se mogu reproducirati putem sintisajzera na Raspberry Pi-u za zvuk visoke kvalitete.
Projekt također koristi osnovni oblik upravljanja pokretima, gdje se muzički instrument može promijeniti držanjem ruku nad dva krajnja senzora na nekoliko sekundi. Još jedna gesta može se koristiti za gašenje Raspberry Pi -a kada završite.
Gornji video prikazuje gotov proizvod u jednostavnom laserski izrezanom kućištu. Kasnije u ovom uputstvu postoji detaljniji video koji objašnjava kako projekt funkcionira.
Ovaj projekt sam stvorio zajedno sa The Gizmo Dojo (mojim lokalnim proizvođačkim prostorom u Broomfieldu, CO) kako bih napravio neke interaktivne izložbe koje možemo odnijeti na lokalne STEM/STEAM događaje i Maker Faires.
Molimo pogledajte i najnoviju dokumentaciju i vodiče na https://theotherandygrove.com/octasonic/ koji sada sadrže informacije o Python verziji ovog projekta (ovo uputstvo je napisano za verziju Rust).
Korak 1: Sastojci
Za ovu instrukciju trebat će vam sljedeći sastojci:
- Raspberry Pi (2 ili 3) sa SD karticom
- 8 HC-SR04 ultrazvučni senzori
- Octasonic Breakout Board
- Dvosmjerni pretvarač logičke razine
- 32 x 12 "žensko-ženske kratkospojnice za povezivanje ultrazvučnih senzora
- 13 x 6 "žensko-ženske kratkospojne žice za povezivanje Raspberry Pi, Octasonic i pretvarača logičkog nivoa
- Prikladno napajanje za Raspberry Pi
- PC zvučnici ili slično
Preporučio bih upotrebu Raspberry Pi 3 ako je moguće jer ima veću računalnu snagu, što rezultira osjetljivijim i ugodnijim zvukom. Može raditi dobro s Raspberry Pi 2 uz malo dotjerivanja, ali ne bih pokušao koristiti originalni Raspberry Pi za ovaj projekt.
HC -SR04 ultrazvučni senzori imaju 4 veze - 5V, GND, Trigger i Echo. Obično su Trigger i Echo spojeni na zasebne pinove na mikrokontroleru ili Raspberry Pi, ali to znači da ćete za povezivanje 8 senzora morati koristiti 16 pinova, što nije praktično. Ovdje dolazi Octasonic ploča za probijanje. Ova ploča se povezuje sa svim senzorima i ima namjenski mikrokontroler koji nadgleda senzore i zatim komunicira s Raspberry Pi preko SPI.
HC-SR04 zahtijeva 5V, a Raspberry Pi samo 3.3V, pa nam je zato potreban i pretvarač logičkog nivoa koji će povezati Raspberry Pi s Octasonic probojnom pločom.
Korak 2: Priključite ultrazvučne senzore na Octasonic ploču
Upotrijebite 4 žice žensko-ženski kratkospojnik za povezivanje svakog ultrazvučnog senzora na ploču, pazeći da ih pravilno povežete. Ploča je dizajnirana tako da pinovi budu u istom redoslijedu kao i pinovi na ultrazvučnom senzoru. S lijeva na desno na ploči, pinovi su GND, Trigger, Echo, 5V.
Korak 3: Priključite pretvarač logičkog nivoa na Octasonic ploču
Raspberry Pi i Octasonic Board komuniciraju preko SPI -ja. SPI koristi 4 žice:
- Master In, Slave Out (MISO)
- Master Out, Slave In (MOSI)
- Serijski sat (SCK)
- Slave Select (SS)
Dodatno, moramo spojiti napajanje (5V i GND).
Pretvarač logičkog nivoa ima dvije strane - niskonaponski (LV) i visoki naponski (HV). Raspberry će se spojiti na niskonaponsku stranu budući da je 3.3V. Octasonic će se spojiti na HV stranu budući da je 5V.
Ovaj korak služi za povezivanje Octasonica na HV stranu pretvarača logičkog nivoa
Pogledajte fotografiju priloženu ovom koraku koja prikazuje koje pinove treba spojiti na pretvarač logičkog nivoa.
Priključci s pretvarača Octasonic na logički nivo trebali bi biti sljedeći:
- 5V na HV
- SCK do HV4
- MISO do HV3
- MOSI u HV2
- SS do HV1
- GND u GND
Korak 4: Povežite pretvarač logičkog nivoa na Raspberry Pi
Raspberry Pi i Octasonic Board komuniciraju preko SPI -ja. SPI koristi 4 žice:
- Master In, Slave Out (MISO)
- Master Out, Slave In (MOSI)
- Serijski sat (SCK)
- Slave Select (SS)
Dodatno, moramo spojiti napajanje (3,3 V i GND). Pretvarač logičkog nivoa ima dvije strane - niskonaponski (LV) i visoki naponski (HV). Raspberry će se spojiti na niskonaponsku stranu budući da je 3.3V. Octasonic će se spojiti na HV stranu budući da je 5V.
Ovaj korak služi za povezivanje Raspberry Pi na LV stranu pretvarača logičkog nivoa
Veze s Raspbery Pi -a na pretvarač logičkog nivoa trebale bi biti sljedeće:
- 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 u GND
Pomoću dijagrama priloženog ovom koraku locirajte ispravne pinove na Raspberry Pi!
Korak 5: Spojite Raspberry Pi 5V na Octasonic 5V
Postoji još jedna posljednja žica za dodavanje. Moramo zapravo napajati Octasonic ploču sa 5V, pa to radimo spajanjem jednog od Raspberry Pi 5V pinova na 5V pin na Octasonic AVR zaglavlju. Ovo je donji lijevi pin u AVR bloku zaglavlja (ovo je 2 x 3 blok u gornjem desnom kutu ploče). Pogledajte priloženu fotografiju koja prikazuje gdje se nalazi AVR blok.
Pogledajte drugi priloženi dijagram kako biste pronašli pin od 5 V na Raspberry Pi.
Korak 6: Instalirajte softver
Instalirajte Raspian
Počnite s čistom instalacijom Raspbian Jessie, a zatim je ažurirajte na najnoviju verziju:
sudo apt-get update
sudo apt-get nadogradnja
Omogući SPI
Morate omogućiti SPI na Raspberry Pi da bi ovaj projekt funkcionirao! Za to upotrijebite uslužni program za konfiguraciju Raspberry Pi.
Također je važno ponovno pokrenuti Pi nakon omogućavanja SPI -a da bi stupio na snagu
Instalirajte FluidSynth
Fluidsynth je nevjerojatan besplatni softverski MIDI sintisajzer. Možete ga instalirati iz naredbenog retka pomoću ove naredbe:
sudo apt-get install fluidsynth
Instalirajte jezik za programiranje Rust
Ultrazvučni Pi klavir implementiran je u programskom jeziku Rust iz Mozille (to je kao C ++, ali bez loših bitova). To je ono što sva cool djeca koriste ovih dana.
Slijedite upute na https://rustup.rs/ da biste instalirali Rust. Da biste uštedjeli vrijeme, upute su da pokrenete ovu jednu naredbu. Možete prihvatiti zadane odgovore na sva pitanja tokom instalacije.
NAPOMENA: Od objavljivanja ovog uputstva postoje neki problemi s instaliranjem Rusta na Raspberry Pi. Loše vrijeme:-/ ali izmijenio sam naredbu ispod kako bih zaobišao problem. Nadam se da će to uskoro popraviti. Radim na stvaranju slike koju ljudi mogu preuzeti i snimiti na SD karticu. Ako želite, kontaktirajte me.
izvoz RUSTUP_USE_HYPER = 1curl https://sh.rustup.rs -sSf | sh
Preuzmite izvorni kod za ultrazvučni Pi Piano
Izvorni kod za ultrazvučni izvorni klavir Pi Piano nalazi se na githubu. Postoje dvije mogućnosti za dobijanje koda. Ako ste upoznati s git -om i github -om, možete klonirati repo:
git clone [email protected]: TheGizmoDojo/UltrasonicPiPiano.git
Alternativno, možete preuzeti zip datoteku najnovijeg koda.
Sastavite izvorni kod
cd UltrasonicPiPiano
izrada tereta --izdavanje
Testirajte kod
Prije nego što krenemo sa stvaranjem muzike u sljedećem koraku, provjerimo radi li softver i možemo li čitati valjane podatke sa senzora.
Koristite sljedeću naredbu za pokretanje aplikacije. Ovo će očitati podatke sa senzora i prevesti ih u MIDI bilješke koje se zatim ispisuju na konzoli. Dok pomičete ruku preko senzora, trebali biste vidjeti generiranje podataka. Ako nije, preskočite odjeljak za rješavanje problema na kraju ovog uputstva.
cargo run --izdavanje
Ako ste znatiželjni, zastavica "--release" govori Rustu da kompajlira kôd što je moguće efikasnije, za razliku od zadane postavke "--debug".
Korak 7: Napravite muziku
Provjerite jeste li još uvijek u direktoriju u koji ste preuzeli izvorni kod i pokrenite sljedeću naredbu.
Ova "run.sh" skripta osigurava da je kôd preveden, a zatim pokreće kôd, prenoseći izlaz u fluidsynth.
./run.sh
Uverite se da imate pojačane zvučnike povezane na 3,5 -milimetarski audio priključak na Raspberry Pi -u i da biste trebali čuti muziku dok pomerate ruke preko senzora.
Ako ne čujete muziku i imate priključen HDMI monitor, tada će vjerojatno ići audio izlaz. Da biste to riješili, jednostavno pokrenite ovu naredbu, a zatim ponovno pokrenite Pi Piano:
sudo amixer cset numid = 3 1
Promena jačine zvuka
Jačina zvuka (ili "pojačanje") je specificirana parametrom "-g" do fluidsynth. Možete izmijeniti skriptu run.sh i promijeniti ovu vrijednost. Imajte na umu da male promjene u ovom parametru rezultiraju velikom promjenom volumena, pa ga pokušajte povećati za male količine (poput 0,1 ili 0,2).
Korak 8: Kontrola pokreta
Pogledajte videozapis priložen ovom koraku za potpunu demonstraciju projekta, uključujući kako funkcioniraju kontrole pokreta.
Koncept je vrlo jednostavan. Softver prati koji su senzori pokriveni (unutar 10 cm), a koji nisu. To znači 8 binarnih brojeva (1 ili 0). Ovo je vrlo zgodno, jer niz od 8 binarnih brojeva čini "bajt" koji može predstavljati brojeve između 0 i 255. Ako već ne znate o binarnim brojevima, toplo preporučujem da potražite vodič. Binarni brojevi su osnovna vještina koju treba naučiti ako želite naučiti više o programiranju.
Softver preslikava trenutno stanje senzora u jedan bajt koji predstavlja trenutni pokret. Ako taj broj ostane isti tijekom brojnih ciklusa, softver djeluje na tu gestu.
Budući da ultrazvučni senzori nisu super pouzdani i može doći do smetnji među senzorima, morat ćete biti strpljivi pri upotrebi pokreta. Pokušajte promijeniti udaljenost koju držite rukama od senzora, kao i kut držanja ruku. Hladno vam je i da pokušate držati nešto ravno i čvrsto iznad senzora kako bi bolje odražavali zvuk.
Korak 9: Izrada kućišta
Ako želite da ovo bude stalna postavka i moći ćete to pokazati ljudima, vjerojatno ćete htjeti napraviti neku vrstu ograde. To se može napraviti od drveta, kartona ili mnogih drugih materijala. Evo videozapisa koji prikazuje kućište na kojem radimo za ovaj projekt. Napravljen je od drveta, sa izbušenim rupama za držanje ultrazvučnih senzora na mjestu.
Korak 10: Rješavanje problema i sljedeći koraci
Rješavanje problema
Ako projekt ne funkcionira, obično se radi o grešci ožičenja. Odvojite vrijeme da dvaput provjerite sve veze.
Još jedan uobičajen problem je nemogućnost omogućavanja SPI -a i ponovno pokretanje pi.
Posjetite https://theotherandygrove.com/octasonic/ za potpunu dokumentaciju, uključujući savjete za rješavanje problema, sa člancima specifičnim za Rust i Python, kao i informacije o tome kako dobiti podršku.
Sljedeći koraci
Nakon što projekt počne raditi, preporučujem da eksperimentirate s kodom i isprobate različite muzičke instrumente. MIDI kodovi instrumenata su između 1 i 127 i ovdje su dokumentirani.
Želite li jedan muzički instrument sa svakim senzorom koji svira drugu oktavu? Možda biste umjesto toga željeli da svaki senzor bude zaseban instrument? Mogućnosti su gotovo neograničene!
Nadam se da ste uživali u ovom uputstvu. Molimo vas da vam se sviđa ako jeste, i obavezno se pretplatite na mene ovdje i na moj YouTube kanal da vidite buduće projekte.
Preporučuje se:
Ultrazvučni ubica komaraca: 3 koraka (sa slikama)
Ultrazvučni ubica komaraca: Komarci su sisali! Osim dosadnih svrbežnih udaraca, ovi pogani koji sišu krv donose ljudima neke od najsmrtonosnijih bolesti; Denga, malarija, virus Chikungunya … popis se može nastaviti! Svake godine približno milion ljudi će umrijeti zbog t
RC automobil sa Bluetooth kontrolom i kontrolom brzine i mjerenjem udaljenosti: 8 koraka
RC automobil sa Bluetooth kontrolom i kontrolom brzine i mjerenjem udaljenosti: Kao dijete, uvijek su me fascinirali RC automobili. Danas možete pronaći mnoge vodiče za izradu jeftinih RC automobila s Bluetooth -om uz pomoć Arduina. Napravimo korak dalje i upotrijebimo svoje praktično znanje o kinematici za izračunavanje
Ultrazvučni pištolj za zvuk (parametarski zvučnik): 3 koraka (sa slikama)
Ultrazvučni pištolj za zvuk (parametarski zvučnik): Za ovaj projekt napravio sam pištolj koji ispušta uski snop ultrazvučnog zvuka. Zvuk mogu čuti samo ljudi unutar uskog snopa ili kroz obližnji izvor kada se zvuk demodulira. Bio sam inspiriran za izgradnju ovog projekta nakon
Ultrazvučni pregled tijela s Arduinom: 3 koraka (sa slikama)
Sonografija ultrazvuka tijela s Arduinom: Zdravo! Moj hobi i strast je realizirati fizičke projekte. Jedan od mojih posljednjih radova je o ultrazvučnoj sonografiji. Kao i uvijek, pokušao sam pojednostaviti dijelove koje možete nabaviti na ebayu ili aliexpressu. Pa pogledajmo dokle mogu stići
Timelapse s kontrolom pokreta: 7 koraka (sa slikama)
Timelapse s kontrolom pokreta: Timelapses su odlični! Oni nam pomažu da zavirimo u svijet koji se sporo kreće i zaboravili bismo cijeniti njegovu ljepotu. No, ponekad stabilan timelapse video zapis može biti dosadan ili se oko njega događa toliko stvari da samo jedan kut nije