Përmbajtje:
- Hapi 1: Përbërësit
- Hapi 2: Lidhni Sensorët tejzanor me Bordin Oktasonik
- Hapi 3: Lidhni Konvertuesin e Nivelit Logjik në Bordin Oktasonik
- Hapi 4: Lidhni Konvertuesin e Nivelit Logjik me Raspberry Pi
- Hapi 5: Lidhni Raspberry Pi 5V me Octasonic 5V
- Hapi 6: Instaloni Softuerin
- Hapi 7: Bëni pak muzikë
- Hapi 8: Kontrolli i gjesteve
- Hapi 9: Krijimi i një rrethimi
- Hapi 10: Zgjidhja e problemeve dhe hapat e ardhshëm
Video: Piano tejzanor Pi me kontrolle gjestesh !: 10 hapa (me fotografi)
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:26
Ky projekt përdor sensorë të lirë tejzanor HC-SR04 si hyrje dhe gjeneron shënime MIDI që mund të luhen përmes një sintetizuesi në Raspberry Pi për një tingull me cilësi të lartë.
Projekti përdor gjithashtu një formë bazë të kontrollit të gjesteve, ku instrumenti muzikor mund të ndryshohet duke mbajtur duart mbi dy sensorët më të jashtëm për disa sekonda. Një gjest tjetër mund të përdoret për të mbyllur Raspberry Pi pasi të keni mbaruar.
Videoja e mësipërme tregon produktin e përfunduar në një rrethim të thjeshtë të prerë me lazer. Ekziston një video më e thelluar më vonë në këtë udhëzues që shpjegon se si funksionon projekti.
Unë e krijova këtë projekt në lidhje me The Gizmo Dojo (hapësira ime krijuese lokale në Broomfield, CO) për të bërë disa ekspozita ndërvepruese që mund t'i marrim në ngjarjet lokale STEM/STEAM dhe Maker Faires.
Ju lutemi shikoni gjithashtu dokumentacionin dhe mësimet më të fundit në https://theotherandygrove.com/octasonic/ i cili tani përfshin informacion mbi një version Python të këtij projekti (ky udhëzues është shkruar për versionin Rust).
Hapi 1: Përbërësit
Për këtë udhëzues, do t'ju duhet përbërësit e mëposhtëm:
- Raspberry Pi (2 ose 3) me kartë SD
- 8 sensorë tejzanor HC-SR04
- Bordi Breakout Octasonic
- Konvertues i nivelit të logjikës me dy drejtime
- Tela bluzë 32 x 12 "Femra-Femra për lidhjen e sensorëve tejzanor
- Tela Jumper Femër-Femër 13 x 6 "për lidhjen e Konvertuesit të Raspberry Pi, Octasonic dhe Logic Level
- Furnizimi me energji i përshtatshëm për Raspberry Pi
- Folës PC ose të ngjashme
Unë do të rekomandoja përdorimin e një Raspberry Pi 3 nëse është e mundur pasi ka më shumë fuqi llogaritëse, duke rezultuar në një tingull më të përgjegjshëm dhe të këndshëm. Mund të funksionojë mirë me një Raspberry Pi 2 me pak ndryshime, por unë nuk do të përpiqesha të përdor Raspberry Pi origjinale për këtë projekt.
Sensorët tejzanor HC -SR04 kanë 4 lidhje - 5V, GND, Trigger dhe Echo. Në mënyrë tipike, Trigger dhe Echo janë të lidhura me kunja të ndara në një mikrokontrollues ose Raspberry Pi, por kjo do të thotë që do t'ju duhet të përdorni 16 kunja për të lidhur 8 sensorë, dhe kjo nuk është praktike. Këtu hyn bordi i daljes Octasonic. Ky bord lidhet me të gjithë sensorët dhe ka një mikrokontrollues të dedikuar që monitoron sensorët dhe më pas komunikon me Raspberry Pi mbi SPI.
HC-SR04 kërkon 5V dhe Raspberry Pi është vetëm 3.3V, kështu që kjo është arsyeja pse ne gjithashtu kemi nevojë për konvertuesin e nivelit logjik që do të lidhë Raspberry Pi me bordin e daljes Octasonic.
Hapi 2: Lidhni Sensorët tejzanor me Bordin Oktasonik
Përdorni 4 tela kërcyese femra-femra për të lidhur çdo sensor tejzanor me tabelën, duke qenë të kujdesshëm për t'i lidhur ato në mënyrë korrekte përreth. Bordi është krijuar në mënyrë që kunjat të jenë në të njëjtin rend si kunjat në sensorin tejzanor. Nga e majta në të djathtë në tabelë, kunjat janë GND, Trigger, Echo, 5V.
Hapi 3: Lidhni Konvertuesin e Nivelit Logjik në Bordin Oktasonik
Raspberry Pi dhe Bordi Octasonic komunikojnë përmes SPI. SPI përdor 4 tela:
- Master In, Slave Out (MISO)
- Master Out, Slave In (MOSI)
- Ora Seriale (SCK)
- Zgjedhja e skllevërve (SS)
Për më tepër, ne duhet të lidhim energjinë (5V dhe GND).
Konvertuesi i nivelit logjik ka dy anë - një tension të ulët (LV) dhe një tension të lartë (HV). Mjedra do të lidhet me anën e LV pasi është 3.3V. Octasonic do të lidhet me anën e HV pasi është 5V.
Ky hap është për lidhjen e Octasonic me anën HV të konvertuesit të nivelit logjik
Shihni foton bashkangjitur këtij hapi që tregon se cilat kunja duhet të lidhen me konvertuesin e nivelit logjik.
Lidhjet nga konvertuesi Octasonic në nivelin logjik duhet të jenë si më poshtë:
- 5V në HV
- SCK në HV4
- MISO në HV3
- MOSI në HV2
- SS në HV1
- GND në GND
Hapi 4: Lidhni Konvertuesin e Nivelit Logjik me Raspberry Pi
Raspberry Pi dhe Bordi Octasonic komunikojnë përmes SPI. SPI përdor 4 tela:
- Master In, Slave Out (MISO)
- Master Out, Slave In (MOSI)
- Ora Seriale (SCK)
- Zgjedhja e skllevërve (SS)
Për më tepër, ne duhet të lidhim energjinë (3.3V dhe GND). Konvertuesi i nivelit logjik ka dy anë - një tension të ulët (LV) dhe një tension të lartë (HV). Mjedra do të lidhet me anën LV pasi është 3.3V. Octasonic do të lidhet me anën e HV pasi është 5V.
Ky hap është për lidhjen e Raspberry Pi me anën LV të konvertuesit të nivelit logjik
Lidhjet nga Raspbery Pi me konvertuesin e Nivelit Logjik duhet të jenë si më poshtë:
- 3.3V në LV
- GPIO11 (SPI_SCLK) në LV4
- GPIO09 (SPI_MISO) në LV3
- GPIO10 (SPI_MOSI) në LV2
- GPIO08 (SPI_CE0_N) SS në LV1
- GND në GND
Përdorni diagramin e bashkangjitur në këtë hap për të gjetur kunjat e sakta në Raspberry Pi!
Hapi 5: Lidhni Raspberry Pi 5V me Octasonic 5V
Ka një tel përfundimtar për të shtuar. Ne duhet të fuqizojmë në të vërtetë bordin Octasonic me 5V, kështu që ne e bëjmë këtë duke lidhur një nga kunjat e Raspberry Pi 5V me pinin 5V në kokën Octasonic AVR. Ky është kunja e poshtme e majtë në bllokun e kokës AVR (ky është blloku 2 x 3 në pjesën e sipërme të djathtë të tabelës). Shihni foton e bashkangjitur që tregon se ku është blloku AVR.
Shihni diagramin tjetër të bashkangjitur për të gjetur pin 5V në Raspberry Pi.
Hapi 6: Instaloni Softuerin
Instaloni Raspian
Filloni me një instalim të pastër të Raspbian Jessie, pastaj azhurnojeni atë në versionin e fundit:
përditësim sudo apt-get
sudo apt-get upgrade
Aktivizo SPI
Ju duhet të aktivizoni SPI në Raspberry Pi që ky projekt të funksionojë! Përdorni mjetin Raspberry Pi Configuration për ta bërë këtë.
Alsoshtë gjithashtu e rëndësishme të rindizni Pi pasi të aktivizoni SPI që ai të hyjë në fuqi
Instaloni FluidSynth
Fluidsynth është një softuer mahnitës falas MIDI synth. Mund ta instaloni nga linja e komandës me këtë komandë:
sudo apt-get install fluidsynth
Instaloni gjuhën e programimit Rust
Piano tejzanor zbatohet në gjuhën e programimit Rust nga Mozilla (është si C ++, por pa pjesët e këqija). Whatshtë ajo që të gjithë fëmijët e mrekullueshëm po përdorin këto ditë.
Ndiqni udhëzimet në https://rustup.rs/ për të instaluar Rust. Për të kursyer kohë, udhëzimet janë që të ekzekutoni këtë komandë. Ju mund të pranoni përgjigjet e paracaktuara për çdo pyetje gjatë instalimit.
SHENIM: Që nga postimi i këtij udhëzimi, ka disa çështje me instalimin e Rust në Raspberry Pi. Koha e keqe:-/ por unë kam modifikuar komandën më poshtë për të zgjidhur çështjen. Shpresoj se ata do ta rregullojnë këtë së shpejti. Unë jam duke punuar në krijimin e një imazhi që njerëzit mund ta shkarkojnë dhe ta djegin në një kartë SD. Nëse ju pëlqen kjo, ju lutem më kontaktoni.
eksport RUSTUP_USE_HYPER = 1 rrotullim https://sh.rustup.rs -sSf | sh
Shkarkoni kodin burimor Ultrasonic Pi Piano
Kodi burimor për kodin burimor Ultrasonic Pi Piano është i vendosur në github. Ekzistojnë dy mundësi për marrjen e kodit. Nëse jeni të njohur me git dhe github, mund të klononi repon:
git clone [email protected]: TheGizmoDojo/UltrasonicPiPiano.git
Përndryshe, mund të shkarkoni një skedar zip të kodit të fundit.
Përpiloni kodin burimor
cd UltratingujPiPiano
ndërtimi i ngarkesave -lëshimi
Provoni kodin
Para se të kalojmë në krijimin e muzikës në hapin tjetër, le të sigurohemi që programi të funksionojë dhe se mund të lexojmë të dhëna të vlefshme nga sensorët.
Përdorni komandën e mëposhtme për të ekzekutuar aplikacionin. Kjo do të lexojë të dhënat nga sensorët dhe do t'i përkthejë ato në shënime MIDI që shtypen më pas në tastierë. Ndërsa lëvizni dorën mbi sensorët, duhet të shihni që të dhënat po gjenerohen. Nëse jo, atëherë kaloni në seksionin e zgjidhjes së problemeve në fund të këtij udhëzimi.
drejtimi i ngarkesave -lëshimi
Nëse jeni kurioz, flamuri "-lirimi" i thotë Rustit të përpilojë kodin në mënyrë sa më efikase, në krahasim me cilësimin e paracaktuar të "--debug".
Hapi 7: Bëni pak muzikë
Sigurohuni që jeni ende në drejtorinë ku keni shkarkuar kodin burimor dhe ekzekutoni komandën e mëposhtme.
Ky skenar "run.sh" sigurohet që kodi është përpiluar dhe më pas drejton kodin, duke e futur daljen në fluidsynth.
./run.sh
Sigurohuni që keni altoparlantë të përforcuar të lidhur me folenë audio 3.5 mm në Raspberry Pi dhe duhet të dëgjoni muzikë ndërsa lëvizni duart mbi sensorë.
Nëse nuk dëgjoni muzikë dhe keni një monitor HDMI të bashkangjitur, atëherë dalja audio ndoshta do të shkojë atje. Për ta rregulluar këtë, thjesht ekzekutoni këtë komandë dhe pastaj rifilloni Pi Piano:
sudo amixer cset numid = 3 1
Ndryshimi i volumit
Vëllimi (ose "fitimi") specifikohet me parametrin "-g" në fluidsynth. Mund të modifikoni skriptin run.sh dhe ta ndryshoni këtë vlerë. Ju lutemi vini re se ndryshimet e vogla në këtë parametër rezultojnë në një ndryshim të madh në vëllim, kështu që provoni ta rrisni me sasi të vogla (si 0.1 ose 0.2).
Hapi 8: Kontrolli i gjesteve
Shikoni videon bashkangjitur këtij hapi për një demonstrim të plotë të projektit, përfshirë mënyrën se si funksionojnë kontrollet e gjesteve.
Koncepti është shumë i thjeshtë. Softueri mban shënime se cilët sensorë janë të mbuluar (brenda 10cm) dhe cilët jo. Kjo përkthehet në 8 numra binarë (1 ose 0). Kjo është shumë e përshtatshme, pasi një sekuencë prej 8 numrash binarë bën një "bajt" i cili mund të përfaqësojë numra midis 0 dhe 255. Nëse nuk i dini tashmë për numrat binarë, atëherë ju rekomandoj shumë të kërkoni një tutorial. Numrat binarë janë një aftësi themelore për të mësuar nëse doni të mësoni më shumë rreth programimit.
Softueri harton gjendjen aktuale të sensorëve në një bajt të vetëm që përfaqëson gjestin aktual. Nëse ai numër qëndron i njëjtë për një numër ciklesh, atëherë softueri vepron në atë gjest.
Për shkak se sensorët tejzanor nuk janë super të besueshëm dhe mund të ketë ndërhyrje midis sensorëve, do t'ju duhet të ushtroni pak durim kur përdorni gjestet. Provoni të ndryshoni distancën që mbani nga duart nga sensorët, si dhe këndin që mbani duart. Ju gjithashtu përpiqeni të mbani diçka të sheshtë dhe të fortë mbi sensorët për të pasqyruar më mirë tingullin.
Hapi 9: Krijimi i një rrethimi
Nëse doni ta bëni këtë një ekspozitë të përhershme dhe të jeni në gjendje ta shfaqni atë para njerëzve, me siguri do të dëshironi të bëni një lloj rrethimi. Kjo mund të bëhet prej druri, kartoni ose shumë materiale të tjera. Këtu është një video që tregon rrethimin në të cilin po punojmë për këtë projekt. Kjo është bërë prej druri, me vrima të shpuara për të mbajtur sensorët tejzanor në vend.
Hapi 10: Zgjidhja e problemeve dhe hapat e ardhshëm
Zgjidhja e problemeve
Nëse projekti nuk po funksionon, zakonisht është për shkak të një gabimi në instalime elektrike. Merrni kohën tuaj për të kontrolluar dy herë të gjitha lidhjet.
Një çështje tjetër e zakonshme është dështimi për të mundësuar SPI dhe rindezjen e pi.
Ju lutemi vizitoni https://theotherandygrove.com/octasonic/ për dokumentacion të plotë duke përfshirë këshilla për zgjidhjen e problemeve, me artikuj të veçantë për Rust dhe Python, si dhe informacione se si të merrni mbështetje.
Hapat e ardhshëm
Pasi ta keni projektin në punë, unë rekomandoj të eksperimentoni me kodin dhe të provoni instrumente të ndryshëm muzikorë. Kodet e instrumenteve MIDI janë midis 1 dhe 127 dhe dokumentohen këtu.
Dëshironi një instrument të vetëm muzikor me secilin sensor që luan një oktavë të ndryshme? Ndoshta ju dëshironi që secili sensor të jetë një instrument i veçantë? Mundësitë janë pothuajse të pakufizuara!
Shpresoj se ju ka pëlqyer kjo udhëzues. Ju lutemi pëlqeni nëse e keni bërë, dhe sigurohuni që të abonoheni tek unë këtu dhe në kanalin tim në YouTube për të parë projektet e ardhshme.
Recommended:
Mushkonja tejzanor: 3 hapa (me fotografi)
Vrasësi i mushkonjave tejzanor: Mushkonjat thithin! Përveç gungave të bezdisshme të kruajtjes, këta paganë që thithin gjak sjellin disa nga sëmundjet më vdekjeprurëse për njerëzit; Dengue, Malaria, Chikungunya Virus … lista vazhdon! Çdo vit afërsisht një milion njerëz vdesin për shkak të
Redbear BLE Nano V2 Kontrolle të personalizuara me PfodApp - Nuk kërkohet kodim: 6 hapa
Kontrolle të personalizuara Redbear BLE Nano V2 Me PfodApp - Nuk kërkohet kodim: Përditësim: 15 shtator 2017 - Ky udhëzues është përditësuar për të përdorur versionin më të fundit të RedBear BLE Nano, V2. Versioni i mëparshëm i këtij udhëzuesi, i cili synonte RedBear BLE Nano V1.5 është i disponueshëm këtu. Përditësoni 15 Nëntor - 2017 Pra
Një shirit LED me shumë kontrolle: 3 hapa
Një shirit me shumë kontrolle LED: Kam 5 mobilje në të cilat doja të instaloja dritat me shirita LED. LED -të duhej të kontrolloheshin nga distanca me një opsion për Alexa ON/OFF. GJITH LEDS duhej të ndizeshin & ndryshoni ngjyrën në sinkron me vetëm një shtypje të telekomandës. Ata gjithashtu
Adafruit Feather NRF52 Kontrolle të personalizuara, nuk kërkohet kodim: 8 hapa (me fotografi)
Adafruit Feather NRF52 Kontrolle të personalizuara, nuk kërkohet kodim: Përditësoni 23 Prill 2019 - Për komplotet e datës/kohës duke përdorur vetëm Arduino millis () shihni Arduino Data/Time Plotting/Regjistrimi duke përdorur Millis () dhe PfodApp PfodDesigner më i fundit falas V3.0.3610+ i krijuar kompletoni skicat Arduino për të komplotuar të dhënat sipas datës/kohës
Kontrolli i një unaze të udhëhequr nga Neopixel me një sensor gjestesh: 3 hapa (me fotografi)
Kontrolli i një unaze të udhëhequr nga Neopixel me një sensor gjestesh: Në këtë tutorial ne do të luajmë me një sensor gjestesh (APDS-9960) dhe një unazë neopixel për të mësuar se si t'i kombinojmë të dy duke përdorur një Arduino UNO. Produkti përfundimtar do t'i përgjigjet gjeste majtas - djathtas duke animuar lëvizjen e udhëhequr djathtas ose majtas, dhe drejt u