Talaan ng mga Nilalaman:
- Hakbang 1: Mga Sangkap
- Hakbang 2: Ikonekta ang Mga Ultrasonikong Sensor sa Lupon ng Oktubre
- Hakbang 3: Ikonekta ang Converter ng Antas ng Logic sa Lupon ng Octasonic
- Hakbang 4: Ikonekta ang Logic Level Converter sa Raspberry Pi
- Hakbang 5: Ikonekta ang Raspberry Pi 5V sa Octasonic 5V
- Hakbang 6: I-install ang Software
- Hakbang 7: Gumawa ng Ilang Musika
- Hakbang 8: Pagkontrol sa Kilos
- Hakbang 9: Paggawa ng isang Enclosure
- Hakbang 10: Pag-troubleshoot at Mga Susunod na Hakbang
Video: Ultrasonic Pi Piano Na May Mga Kontrol sa Kilos !: 10 Hakbang (na may Mga Larawan)
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:14
Gumagamit ang proyektong ito ng murang HC-SR04 ultrasonic sensors bilang mga input at bumubuo ng mga tala ng MIDI na maaaring i-play sa pamamagitan ng isang synthesizer sa Raspberry Pi para sa isang mataas na kalidad ng tunog.
Gumagamit din ang proyekto ng isang pangunahing anyo ng pagkontrol sa kilos, kung saan ang instrumentong pangmusika ay maaaring mabago sa pamamagitan ng paghawak ng iyong mga kamay sa dalawang pinakamalabas na sensor sa loob ng ilang segundo. Ang isa pang kilos ay maaaring magamit upang isara ang Raspberry Pi sa sandaling tapos ka na.
Ipinapakita ng video sa itaas ang natapos na produkto sa isang simpleng enclosure ng laser-cut. Mayroong isang mas malalim na video sa paglaon sa itinuturo na ito na nagpapaliwanag kung paano gumagana ang proyekto.
Nilikha ko ang proyektong ito kasabay ng The Gizmo Dojo (aking lokal na makerspace sa Broomfield, CO) upang makagawa ng mga interactive na eksibit na maaari naming dalhin sa mga lokal na kaganapan sa STEM / STEAM at Maker Faires.
Mangyaring suriin din ang pinakabagong dokumentasyon at mga tutorial sa https://theotherandygrove.com/octasonic/ na kasama ngayon ang impormasyon sa isang bersyon ng Python ng proyektong ito (ang itinuturo na ito ay isinulat para sa bersyon ng Rust).
Hakbang 1: Mga Sangkap
Para sa pagtuturo na ito, kakailanganin mo ang mga sumusunod na sangkap:
- Raspberry Pi (2 o 3) na may SD card
- 8 HC-SR04 ultrasonic sensors
- Oktubre ng Breakout Board
- Bi-Directional Logic Level Converter
- 32 x 12 "Mga Babae-Babae na Jumper Wires para sa pagkonekta ng mga ultrasonic sensor
- 13 x 6 "Mga Wire ng Jumper ng Babae-Babae para sa pagkonekta sa Raspberry Pi, Octasonic, at Logic Level Converter
- Angkop na supply ng kuryente para sa Raspberry Pi
- Mga nagsasalita ng PC o katulad
Inirerekumenda ko ang paggamit ng isang Raspberry Pi 3 kung maaari dahil mayroon itong higit na lakas sa computing, na nagreresulta sa isang mas tumutugon at nakalulugod na tunog. Maaari itong gumana nang maayos sa isang Raspberry Pi 2 na may kaunting pag-aayos ngunit hindi ko susubukan na gamitin ang orihinal na Raspberry Pi para sa proyektong ito.
Ang mga HC-SR04 ultrasonic sensor ay may 4 na koneksyon - 5V, GND, Trigger, at Echo. Karaniwan, ang Trigger at Echo ay konektado sa magkakahiwalay na mga pin sa isang microcontroller o Raspberry Pi ngunit nangangahulugan ito na kakailanganin mong gumamit ng 16 na mga pin upang ikonekta ang 8 sensor, at hindi ito praktikal. Dito pumapasok ang board ng breakout ng Octasonic. Ang board na ito ay kumokonekta sa lahat ng mga sensor at mayroong isang nakalaang microcontroller na sinusubaybayan ang mga sensor at pagkatapos ay nakikipag-usap sa Raspberry Pi sa paglipas ng SPI.
Ang HC-SR04 ay nangangailangan ng 5V at ang Raspberry Pi ay 3.3V lamang, kaya ito rin ang dahilan kung bakit kailangan din namin ang converter ng antas ng lohika na magkokonekta sa Raspberry Pi sa board ng breakout ng Octonics.
Hakbang 2: Ikonekta ang Mga Ultrasonikong Sensor sa Lupon ng Oktubre
Gumamit ng 4 na mga babaeng babaeng lumulukso upang ikonekta ang bawat ultrasonic sensor sa board, maingat na ikonekta ang mga ito nang wastong paraan. Ang board ay idinisenyo upang ang mga pin ay nasa parehong pagkakasunud-sunod ng mga pin sa ultrasonic sensor. Mula kaliwa hanggang kanan sa pisara, ang mga pin ay GND, Trigger, Echo, 5V.
Hakbang 3: Ikonekta ang Converter ng Antas ng Logic sa Lupon ng Octasonic
Ang Raspberry Pi at Octonics Board ay nakikipag-usap sa SPI. Gumagamit ang SPI ng 4 na wires:
- Master In, Slave Out (MISO)
- Master Out, Slave In (MOSI)
- Serial Clock (SCK)
- Piliin ang Alipin (SS)
Bilang karagdagan, kailangan naming ikonekta ang lakas (5V at GND).
Ang converter ng antas ng lohika ay may dalawang panig - isang mababang boltahe (LV) at isang mataas na boltahe (HV). Ang Raspberry ay kumokonekta sa panig ng LV dahil ito ay 3.3V. Ang Octasonic ay kumokonekta sa panig ng HV dahil ito ay 5V.
Ang hakbang na ito ay para sa pagkonekta sa Octasonic sa panig ng HV ng converter ng antas ng lohika
Tingnan ang larawan na nakakabit sa hakbang na ito na ipinapakita kung aling mga pin ang dapat na konektado sa converter ng antas ng lohika.
Ang mga koneksyon mula sa Octasonic sa converter ng Antas ng Logic ay dapat na ang mga sumusunod:
- 5V sa HV
- SCK to HV4
- MISO sa HV3
- MOSI sa HV2
- SS hanggang HV1
- GND sa GND
Hakbang 4: Ikonekta ang Logic Level Converter sa Raspberry Pi
Ang Raspberry Pi at Octonics Board ay nakikipag-usap sa SPI. Gumagamit ang SPI ng 4 na wires:
- Master In, Slave Out (MISO)
- Master Out, Slave In (MOSI)
- Serial Clock (SCK)
- Piliin ang Alipin (SS)
Bilang karagdagan, kailangan naming ikonekta ang lakas (3.3V at GND). Ang converter ng antas ng lohika ay may dalawang panig - isang mababang boltahe (LV) at isang mataas na boltahe (HV). Ang Raspberry ay kumokonekta sa panig ng LV dahil ito ay 3.3V. Ang Octasonic ay kumokonekta sa panig ng HV dahil ito ay 5V.
Ang hakbang na ito ay para sa pagkonekta sa Raspberry Pi sa LV na bahagi ng converter ng antas ng lohika
Ang mga koneksyon mula sa Raspbery Pi sa Logic Level converter ay dapat na tulad ng sumusunod:
- 3.3V sa LV
- GPIO11 (SPI_SCLK) hanggang LV4
- GPIO09 (SPI_MISO) hanggang LV3
- GPIO10 (SPI_MOSI) hanggang LV2
- GPIO08 (SPI_CE0_N) SS hanggang LV1
- GND sa GND
Gamitin ang diagram na nakakabit sa hakbang na ito upang hanapin ang tamang mga pin sa Raspberry Pi!
Hakbang 5: Ikonekta ang Raspberry Pi 5V sa Octasonic 5V
Mayroong isang pangwakas na kawad upang idagdag. Kailangan naming aktwal na i-power ang board ng Octasonic na may 5V, kaya ginagawa namin iyon sa pamamagitan ng pagkonekta sa isa sa mga Raspberry Pi 5V na pin sa 5V pin sa header ng Octasonic AVR. Ito ang ibabang kaliwang pin sa block ng header ng AVR (ito ang bloke ng 2 x 3 sa kanang tuktok ng board). Tingnan ang nakalakip na larawan na nagpapakita kung nasaan ang AVR block.
Tingnan ang iba pang naka-attach na diagram upang hanapin ang 5V pin sa Raspberry Pi.
Hakbang 6: I-install ang Software
I-install ang Raspian
Magsimula sa isang malinis na pag-install ng Raspbian Jessie, pagkatapos ay i-update ito sa pinakabagong bersyon:
sudo apt-get update
sudo apt-get upgrade
Paganahin ang SPI
Dapat mong paganahin ang SPI sa Raspberry Pi para gumana ang proyektong ito! Gamitin ang utility na Pag-configure ng Raspberry Pi upang magawa ito.
Mahalaga rin na i-reboot ang Pi pagkatapos paganahin ang SPI upang magkabisa ito
I-install ang FluidSynth
Ang Fluidsynth ay isang kamangha-manghang libreng software MIDI synth. Maaari mong mai-install ito mula sa linya ng utos kasama ang utos na ito:
sudo apt-get install fluidsynth
I-install ang Wika sa Programming ng Rust
Ang Ultrasonic Pi Piano ay ipinatupad sa Rust Programming Language mula sa Mozilla (parang C ++ ngunit wala ang mga masamang piraso). Ito ang ginagamit ng lahat ng mga cool na bata sa mga panahong ito.
Sundin ang mga tagubilin sa https://rustup.rs/ upang mai-install ang Rust. Upang makatipid ng oras sa iyo, ang mga tagubilin ay upang patakbuhin ang isang utos na ito. Maaari mong tanggapin ang mga default na sagot sa anumang mga katanungan sa panahon ng pag-install.
TANDAAN: Dahil nai-post ang itinuturo na ito, maraming mga isyu sa pag-install ng Rust sa Raspberry Pi. Masamang tiyempo: - / ngunit binago ko ang utos sa ibaba upang maisaayos ang isyu. Sana ayusin nila ito sa lalong madaling panahon. Nagtatrabaho ako sa paglikha ng isang imahe na maaaring ma-download at masunog ng mga tao sa isang SD card. Kung nais mo iyan, mangyaring makipag-ugnay sa akin.
i-export ang RUSTUP_USE_HYPER = 1curl https://sh.rustup.rs -sSf | sh
I-download ang source code ng Ultrasonic Pi Piano
Ang source code para sa source code ng Ultrasonic Pi Piano ay naka-host sa github. Mayroong dalawang mga pagpipilian para sa pagkuha ng code. Kung pamilyar ka sa git at github, maaari mong i-clone ang repo:
git clone [email protected]: TheGizmoDojo / UltrasonicPiPiano.git
Bilang kahalili, maaari kang mag-download ng isang zip file ng pinakabagong code.
Compile ang source code
cd UltrasonicPiPiano
pagtatayo ng kargamento - palabasin
Subukan ang code
Bago kami magpatuloy sa paggawa ng musika sa susunod na hakbang, tiyakin na tumatakbo ang software at mababasa natin ang wastong data mula sa mga sensor.
Gamitin ang sumusunod na utos upang patakbuhin ang application. Magbabasa ito ng data mula sa mga sensor at isasalin ang mga ito sa mga tala ng MIDI na pagkatapos ay nai-print sa console. Habang inililipat mo ang iyong kamay sa mga sensor, dapat mong makita ang pagbuo ng data. Kung hindi, pagkatapos ay lumaktaw sa seksyon ng pag-troubleshoot sa dulo ng pagtuturo na ito.
pagpapatakbo ng kargamento - palabasin
Kung ikaw ay nagtataka, ang flag na "--release" ay nagsasabi sa Rust na ipagsama ang code nang mahusay hangga't maaari, taliwas sa default na setting na "--debug".
Hakbang 7: Gumawa ng Ilang Musika
Tiyaking nasa direktoryo ka pa rin kung saan mo na-download ang source code at patakbuhin ang sumusunod na utos.
Tinitiyak ng script na "run.sh" na ang code ay naipon at pagkatapos ay tatakbo ang code, piping ang output sa fluidsynth.
./run.sh
Tiyaking na-amplify mo ang mga speaker na konektado sa 3.5mm audio jack sa Raspberry Pi at dapat mong pakinggan ang musika habang igagalaw mo ang iyong mga kamay sa mga sensor.
Kung hindi ka nakakarinig ng musika at mayroon kang naka-attach na HDMI monitor, kung gayon ang audio output ay marahil ay pupunta doon sa halip. Upang ayusin ito, patakbuhin lamang ang utos na ito at pagkatapos ay muling simulan ang Pi Piano:
sudo amixer cset numid = 3 1
Pagbabago ng lakas ng tunog
Ang dami (o "makakuha") ay tinukoy na may parameter na "-g" sa fluidsynth. Maaari mong baguhin ang run.sh script at baguhin ang halagang ito. Mangyaring tandaan na ang maliliit na pagbabago sa parameter na ito ay nagreresulta sa isang malaking pagbabago sa dami, kaya subukang dagdagan ito ng maliit na halaga (tulad ng 0.1 o 0.2).
Hakbang 8: Pagkontrol sa Kilos
Tingnan ang video na naka-attach sa hakbang na ito para sa isang buong pagpapakita ng proyekto, kasama ang kung paano gumagana ang mga pagkontrol sa kilos.
Napaka-simple ng konsepto. Sinusubaybayan ng software kung aling mga sensor ang sakop (sa loob ng 10cm) at alin ang hindi. Isinalin ito sa 8 mga binary na numero (1 o 0). Ito ay napaka-maginhawa, dahil sa isang pagkakasunud-sunod ng 8 mga binary na numero ay gumagawa ng isang "byte" na maaaring kumatawan sa mga numero sa pagitan ng 0 at 255. Kung hindi mo pa alam ang tungkol sa mga binary number kung gayon inirerekumenda kong maghanap ng isang tutorial. Ang mga binary number ay isang pangunahing kasanayan upang malaman kung nais mong matuto nang higit pa tungkol sa programa.
Inilalagay ng software ang kasalukuyang estado ng mga sensor sa isang solong byte na kumakatawan sa kasalukuyang kilos. Kung ang numerong iyon ay mananatiling pareho para sa isang bilang ng mga cycle, pagkatapos ay kumikilos ang software sa kilos na iyon.
Dahil ang mga ultrasonic sensor ay hindi masyadong maaasahan at maaaring magkaroon ng pagkagambala sa pagitan ng mga sensor, kakailanganin mong magpakita ng ilang pasensya kapag gumagamit ng mga kilos. Subukang ibahin ang distansya na hawak mo ang iyong mga kamay mula sa mga sensor pati na rin ang anggulo na hinahawakan mo ang iyong mga kamay. Sinubukan mo ding malamig na humawak ng isang bagay na flat at solid sa mga sensor upang mas mahusay na maipakita ang tunog.
Hakbang 9: Paggawa ng isang Enclosure
Kung nais mong gawin itong isang permanenteng eksibit at maipakita ito sa mga tao, malamang na nais mong gumawa ng isang uri ng enclosure. Maaari itong gawin mula sa kahoy, karton, o maraming iba pang mga materyales. Narito ang isang video na ipinapakita ang enclosure na aming pinagtatrabahuhan para sa proyektong ito. Ginawa ito mula sa kahoy, na may mga butas na na-drill upang mailagay sa lugar ang mga ultrasonic sensor.
Hakbang 10: Pag-troubleshoot at Mga Susunod na Hakbang
Pag-troubleshoot
Kung hindi gumagana ang proyekto, kadalasang bumababa sa isang error sa mga kable. Dalhin ang iyong oras upang i-double check ang lahat ng mga koneksyon.
Ang isa pang karaniwang isyu ay ang pagkabigo upang paganahin ang SPI at muling pag-reboot ang pi.
Mangyaring bisitahin ang https://theotherandygrove.com/octasonic/ para sa buong dokumentasyon kabilang ang mga tip sa pagto-troubleshoot, kasama ang mga tiyak na artikulo ng Rust at Python, at impormasyon din kung paano makakuha ng suporta.
Mga Susunod na Hakbang
Kapag mayroon kang proyekto na gumagana, inirerekumenda kong mag-eksperimento sa code at subukan ang iba't ibang mga instrumentong pangmusika. Ang mga code ng instrumento ng MIDI ay nasa pagitan ng 1 at 127 at naidodokumento dito.
Nais mo ba ng isang solong instrumentong pangmusika sa bawat sensor na tumutugtog ng ibang oktave? Marahil ay nais mo ang bawat sensor na maging isang hiwalay na instrumento sa halip? Ang mga posibilidad ay halos walang hanggan!
Inaasahan kong nasiyahan ka sa pagtuturo na ito. Mangyaring magustuhan ito kung nagawa mo ito, at tiyaking mag-subscribe sa akin dito at sa aking channel sa YouTube upang makita ang mga proyekto sa hinaharap.
Inirerekumendang:
Kinokontrol ng Mouse ng Kilos: 6 na Hakbang (na may Mga Larawan)
Kinokontrol na Mouse ng Gesture: Nanonood ka ng isang pelikula kasama ang iyong mga kaibigan sa isang laptop at ang isa sa mga lalaki ay nakakuha ng acall. Ahh .. kailangan mong umalis sa iyong lugar upang i-pause ang pelikula. Nagbibigay ka ng isang pagtatanghal sa isang projector at kailangang lumipat sa pagitan ng mga application. Kailangan mong ilipat ang ac
Pinakamadaling Paraan upang Gumawa ng isang Robot ng Pagkontrol ng Kilos: 7 Hakbang (na may Mga Larawan)
Pinakamadaling Paraan upang Makagawa ng isang Gesture Control Robot: Kontrolin ang mga laruan tulad ng isang superHero. Alamin kung paano gumawa ng kotseng kinokontrol ng kilos. Ito ay tungkol sa kung paano gumawa ng isang kotseng kontrolado ng kilos nang mag-isa. Talaga ito ay isang simpleng aplikasyon ng MPU-6050 3-axis Gyroscope, Accelerometer. Maaari kang gumawa ng maraming bagay
Kilos sa pagsasalita / Teknolohiya na Nagko-convert ng Guwantes: 5 Mga Hakbang
Gesture to Speech / Text Converting Glove: Ang ideya / tulak sa likod ng pagpapatupad ng proyektong ito ay upang matulungan ang mga taong nahihirapang makipag-usap gamit ang pagsasalita at makipag-usap gamit ang mga kilos ng kamay o mas kilalang American sign language (ASL). Ang proyektong ito ay maaaring maging isang hakbang patungo sa Provi
Pagkontrol sa isang Neopixel Led Ring Na May Sensor ng Kilos: 3 Hakbang (na may Mga Larawan)
Pagkontrol sa isang Neopixel Led Ring Na May Sensor ng Kilos: Sa tutorial na ito maglalaro kami ng isang sensor ng kilos (APDS-9960) at isang singsing na neopixel upang malaman kung paano pagsamahin ang pareho sa paggamit ng isang Arduino UNO. kaliwa - kanang kilos sa pamamagitan ng animating humantong kilusan kanan o kaliwa, at sa u
Nevma: Pagkontrol sa Kilos para sa mga Masa: 3 Hakbang (na may Mga Larawan)
Nevma: Control ng Kilos para sa mga Masa: Ang pagtatrabaho sa Delphi (malapit nang Aptiv) ay nagbibigay-daan sa akin ng karangyaan na ma-immersed sa isang high-tech at makabagong kapaligiran na nagbibigay ng patuloy na inspirasyon para sa paglikha ng mga bago at kapanapanabik na mga gadget. Isang araw, binanggit ng ilang mga kasamahan ang pagkontrol sa kilos na isa sa