Satura rādītājs:
- 1. solis: Sastāvdaļas
- 2. solis: pievienojiet ultraskaņas sensorus Octasonic Board
- 3. darbība. Pievienojiet loģiskā līmeņa pārveidotāju Octasonic Board
- 4. solis: savienojiet loģiskā līmeņa pārveidotāju ar Raspberry Pi
- 5. darbība: pievienojiet Raspberry Pi 5V pie Octasonic 5V
- 6. darbība: instalējiet programmatūru
- 7. solis: izveidojiet mūziku
- 8. darbība: žestu kontrole
- 9. solis: norobežojuma izgatavošana
- 10. darbība: problēmu novēršana un nākamās darbības
Video: Ultraskaņas pi klavieres ar žestu vadību!: 10 soļi (ar attēliem)
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:57
Šajā projektā tiek izmantoti lēti ultraskaņas sensori HC-SR04 un ģenerētas MIDI piezīmes, kuras var atskaņot, izmantojot Raspberry Pi sintezatoru, lai iegūtu augstas kvalitātes skaņu.
Projektā tiek izmantota arī žestu vadības pamata forma, kur mūzikas instrumentu var nomainīt, dažas sekundes turot rokas pār diviem attālākajiem sensoriem. Kad esat pabeidzis, Raspberry Pi var izslēgt ar citu žestu.
Iepriekš redzamais video parāda gatavo produktu vienkāršā lāzera griezuma korpusā. Vēlāk šajā pamācībā ir padziļināts video, kas izskaidro projekta darbību.
Es izveidoju šo projektu kopā ar The Gizmo Dojo (mana vietējā veidotāju telpa Broomfield, CO), lai izveidotu dažus interaktīvus eksponātus, kurus mēs varētu ņemt līdzi vietējiem STEM/STEAM pasākumiem un Maker Faires.
Lūdzu, pārbaudiet arī jaunāko dokumentāciju un apmācības vietnē https://theotherandygrove.com/octasonic/, kas tagad ietver informāciju par šī projekta Python versiju (šī pamācība tika uzrakstīta Rust versijai).
1. solis: Sastāvdaļas
Lai to izdarītu, jums būs nepieciešamas šādas sastāvdaļas:
- Raspberry Pi (2 vai 3) ar SD karti
- 8 HC-SR04 ultraskaņas sensori
- Octasonic Breakout Board
- Divvirzienu loģikas līmeņa pārveidotājs
- 32 x 12 "sieviešu un sieviešu džemperu vadi ultraskaņas sensoru pievienošanai
- 13 x 6 collu sieviešu un sieviešu džemperu vadi Raspberry Pi, Octasonic un loģikas līmeņa pārveidotāja savienošanai
- Raspberry Pi piemērots barošanas avots
- PC skaļruņi vai tamlīdzīgi
Es ieteiktu, ja iespējams, izmantot Raspberry Pi 3, jo tam ir lielāka skaitļošanas jauda, kā rezultātā skaņa ir atsaucīgāka un patīkamāka. Tas var labi darboties ar Raspberry Pi 2 ar nelielu pielāgošanu, bet es nemēģinātu šim projektam izmantot oriģinālo Raspberry Pi.
HC -SR04 ultraskaņas sensoriem ir 4 savienojumi - 5V, GND, Trigger un Echo. Parasti Trigger un Echo ir savienoti ar atsevišķām tapām mikrokontrollerī vai Raspberry Pi, bet tas nozīmē, ka, lai savienotu 8 sensorus, jums jāizmanto 16 tapas, un tas nav praktiski. Tieši šeit ir pieejams Octasonic sadalīšanas panelis. Šī plāksne savienojas ar visiem sensoriem, un tai ir īpašs mikrokontrolleris, kas uzrauga sensorus un pēc tam sazinās ar Raspberry Pi, izmantojot SPI.
HC-SR04 ir nepieciešami 5 V, un Raspberry Pi ir tikai 3,3 V, tāpēc mums ir nepieciešams arī loģikas līmeņa pārveidotājs, kas savienos Raspberry Pi ar Octasonic sadalīšanas paneli.
2. solis: pievienojiet ultraskaņas sensorus Octasonic Board
Izmantojiet 4 džemperu vadus, lai savienotu katru ultraskaņas sensoru ar plāksni, uzmanīgi savienojot tos pareizi. Tāfele ir veidota tā, lai tapas būtu tādā pašā secībā kā tapas uz ultraskaņas sensora. No kreisās uz labo pusi uz tāfeles tapas ir GND, Trigger, Echo, 5V.
3. darbība. Pievienojiet loģiskā līmeņa pārveidotāju Octasonic Board
Raspberry Pi un Octasonic Board sazinās, izmantojot SPI. SPI izmanto 4 vadus:
- Ievadiet, atlaidiet (MISO)
- Iziet, palīgdarboties (MOSI)
- Sērijas pulkstenis (SCK)
- Vergu izvēle (SS)
Turklāt mums ir jāpievieno barošana (5V un GND).
Loģikas līmeņa pārveidotājam ir divas puses - zemspriegums (LV) un augstspriegums (HV). Aveņu pieslēgsies LV pusei, jo tas ir 3.3V. Octasonic pieslēgsies HV pusei, jo tas ir 5V.
Šis solis ir paredzēts, lai savienotu Octasonic ar loģiskā līmeņa pārveidotāja HV pusi
Skatiet šim solim pievienoto fotoattēlu, kurā parādīts, kuras tapas jāpievieno loģikas līmeņa pārveidotājam.
Savienojumiem no Octasonic līdz loģikas līmeņa pārveidotājam jābūt šādam:
- 5V līdz HV
- SCK līdz HV4
- MISO uz HV3
- MOSI līdz HV2
- SS līdz HV1
- GND līdz GND
4. solis: savienojiet loģiskā līmeņa pārveidotāju ar Raspberry Pi
Raspberry Pi un Octasonic Board sazinās, izmantojot SPI. SPI izmanto 4 vadus:
- Ievadiet, atlaidiet (MISO)
- Iziet, palīgdarboties (MOSI)
- Sērijas pulkstenis (SCK)
- Vergu izvēle (SS)
Turklāt mums ir jāpievieno barošana (3.3V un GND). Loģikas līmeņa pārveidotājam ir divas puses - zemspriegums (LV) un augstspriegums (HV). Aveņu pieslēgsies LV pusei, jo tas ir 3.3V. Octasonic pieslēgsies HV pusei, jo tas ir 5V.
Šis solis ir paredzēts Raspberry Pi savienošanai ar loģiskā līmeņa pārveidotāja LV pusi
Savienojumiem no Raspbery Pi līdz loģikas līmeņa pārveidotājam jābūt šādam:
- 3.3V uz LV
- GPIO11 (SPI_SCLK) uz LV4
- GPIO09 (SPI_MISO) uz LV3
- GPIO10 (SPI_MOSI) uz LV2
- GPIO08 (SPI_CE0_N) no SS līdz LV1
- GND līdz GND
Izmantojiet šim solim pievienoto diagrammu, lai Raspberry Pi atrastu pareizās tapas!
5. darbība: pievienojiet Raspberry Pi 5V pie Octasonic 5V
Ir jāpievieno viens pēdējais vads. Mums faktiski ir jāieslēdz Octasonic plates barošana ar 5 V spriegumu, tāpēc mēs to darām, savienojot vienu no Raspberry Pi 5V tapām ar 5V tapu Octasonic AVR galvenē. Šī ir apakšējā kreisā tapa AVR galvenes blokā (tas ir 2 x 3 bloks paneļa augšējā labajā stūrī). Skatiet pievienoto fotoattēlu, kurā parādīts, kur atrodas AVR bloks.
Skatiet citu pievienoto diagrammu, lai atrastu 5V tapu uz Raspberry Pi.
6. darbība: instalējiet programmatūru
Instalējiet Raspian
Sāciet ar tīru Raspbian Jessie instalēšanu, pēc tam atjauniniet to uz jaunāko versiju:
sudo apt-get update
sudo apt-get jauninājums
Iespējot SPI
Lai šis projekts darbotos, Raspberry Pi ir jāiespējo SPI! Lai to izdarītu, izmantojiet utilītu Raspberry Pi Configuration.
Ir arī svarīgi restartēt Pi pēc SPI iespējošanas, lai tas stātos spēkā
Instalējiet FluidSynth
Fluidsynth ir pārsteidzošs bezmaksas programmatūras MIDI sintezators. To var instalēt no komandrindas, izmantojot šo komandu:
sudo apt-get install fluidsynth
Instalējiet Rust programmēšanas valodu
Ultraskaņas Pi klavieres ir ieviestas Mozilla Rust programmēšanas valodā (tas ir kā C ++, bet bez sliktajiem fragmentiem). To izmanto visi foršie bērni šajās dienās.
Lai instalētu Rust, izpildiet norādījumus vietnē https://rustup.rs/. Lai ietaupītu laiku, norādījumi ir palaist šo vienu komandu. Instalēšanas laikā jūs varat pieņemt noklusējuma atbildes uz visiem jautājumiem.
PIEZĪME: Kopš šīs pamācības ievietošanas ir dažas problēmas, instalējot Rust uz Raspberry Pi. Slikts laiks:-/ bet esmu mainījis zemāk esošo komandu, lai novērstu problēmu. Cerams, ka viņi drīz to novērsīs. Es strādāju pie tā, lai izveidotu attēlu, ko cilvēki var lejupielādēt un ierakstīt SD kartē. Ja vēlaties, lūdzu, sazinieties ar mani.
eksportēt RUSTUP_USE_HYPER = 1curl https://sh.rustup.rs -sSf | sh
Lejupielādējiet Ultrasonic Pi Piano avota kodu
Ultraskaņas Pi Piano avota koda avota kods tiek mitināts vietnē github. Koda iegūšanai ir divas iespējas. Ja esat iepazinies ar git un github, varat klonēt repo:
git klons [email protected]: TheGizmoDojo/UltrasonicPiPiano.git
Varat arī lejupielādēt jaunākā koda zip failu.
Apkopojiet avota kodu
cd UltrasonicPiPiano
kravas būve -izlaišana
Pārbaudiet kodu
Pirms nākamās darbības pāriešanas pie mūzikas, pārliecinieties, vai programmatūra darbojas un vai mēs varam nolasīt derīgus datus no sensoriem.
Lai palaistu lietojumprogrammu, izmantojiet šo komandu. Tas nolasīs datus no sensoriem un pārvērtīs tos MIDI piezīmēs, kuras pēc tam tiek izdrukātas konsolē. Pārvietojot roku virs sensoriem, vajadzētu redzēt, kā tiek ģenerēti dati. Ja nē, pārejiet uz problēmu novēršanas sadaļu šīs instrukcijas beigās.
kravas brauciens -atbrīvošana
Ja jūs interesē, karodziņš "--release" liek Rustam apkopot kodu pēc iespējas efektīvāk, atšķirībā no noklusējuma iestatījuma "--debug".
7. solis: izveidojiet mūziku
Pārliecinieties, vai joprojām atrodaties direktorijā, kurā lejupielādējāt avota kodu, un palaidiet šādu komandu.
Šis skripts "run.sh" nodrošina, ka kods ir apkopots, un pēc tam palaiž kodu, ievadot izvadi fluīdsintē.
./run.sh
Pārliecinieties, vai Raspberry Pi 3,5 mm audio ligzdai ir pievienoti pastiprinātie skaļruņi, un, pārvietojot rokas virs sensoriem, jums vajadzētu dzirdēt mūziku.
Ja jūs nedzirdat mūziku un jums ir pievienots HDMI monitors, tad audio izvade, iespējams, notiek tur. Lai to labotu, vienkārši palaidiet šo komandu un pēc tam restartējiet Pi Piano:
sudo amixer cset numid = 3 1
Skaļuma maiņa
Skaļums (vai "pastiprinājums") tiek norādīts ar parametru "-g", lai šķidrums tiktu sintezēts. Varat mainīt skriptu run.sh un mainīt šo vērtību. Lūdzu, ņemiet vērā, ka nelielas izmaiņas šajā parametrā izraisa lielas apjoma izmaiņas, tāpēc mēģiniet to palielināt par nelielām summām (piemēram, 0,1 vai 0,2).
8. darbība: žestu kontrole
Skatiet šim solim pievienoto video, lai pilnībā demonstrētu projektu, tostarp žestu vadīklu darbību.
Koncepcija ir ļoti vienkārša. Programmatūra izseko, kuri sensori ir pārklāti (10 cm robežās) un kuri nav. Tas nozīmē 8 binārus skaitļus (1 vai 0). Tas ir ļoti ērti, jo 8 bināro skaitļu secība veido “baitu”, kas var attēlot ciparus no 0 līdz 255. Ja jūs vēl nezināt par binārajiem skaitļiem, es ļoti iesaku meklēt pamācību. Binārie skaitļi ir pamatprasme, kas jāapgūst, ja vēlaties uzzināt vairāk par programmēšanu.
Programmatūra kartē sensoru pašreizējo stāvokli vienā baitā, kas attēlo pašreizējo žestu. Ja šis skaitlis paliek nemainīgs vairākus ciklus, tad programmatūra iedarbojas uz šo žestu.
Tā kā ultraskaņas sensori nav īpaši uzticami un var būt traucējumi starp sensoriem, žestu lietošanas laikā jums būs jābūt pacietīgam. Mēģiniet mainīt attālumu, kādā turat rokas no sensoriem, kā arī leņķi, kurā turat rokas. Jūs arī auksti mēģināt turēt kaut ko plakanu un cietu virs sensoriem, lai labāk atspoguļotu skaņu.
9. solis: norobežojuma izgatavošana
Ja vēlaties to padarīt par pastāvīgu eksponātu un parādīt to cilvēkiem, iespējams, vēlēsities izveidot sava veida norobežojumu. To var izgatavot no koka, kartona vai daudziem citiem materiāliem. Šeit ir video, kurā parādīts korpuss, pie kura mēs strādājam pie šī projekta. Tas ir izgatavots no koka, un tajā ir urbti caurumi, lai noturētu ultraskaņas sensorus.
10. darbība: problēmu novēršana un nākamās darbības
Traucējummeklēšana
Ja projekts nedarbojas, tas parasti ir saistīts ar elektroinstalācijas kļūdu. Nesteidzieties, lai vēlreiz pārbaudītu visus savienojumus.
Vēl viena izplatīta problēma ir SPI neiespējošana un pi restartēšana.
Lūdzu, apmeklējiet vietni https://theotherandygrove.com/octasonic/, lai iegūtu pilnu dokumentāciju, tostarp padomus par problēmu novēršanu, ar Rust un Python īpašiem rakstiem, kā arī informāciju par to, kā saņemt atbalstu.
Nākamie soļi
Kad projekts darbojas, es iesaku eksperimentēt ar kodu un izmēģināt dažādus mūzikas instrumentus. MIDI instrumentu kodi ir no 1 līdz 127 un ir dokumentēti šeit.
Vai vēlaties vienu mūzikas instrumentu, kurā katrs sensors spēlē citu oktāvu? Varbūt vēlaties, lai katrs sensors būtu atsevišķs instruments? Iespējas ir gandrīz neierobežotas!
Es ceru, ka jums patika šī pamācība. Lūdzu, atzīmējiet to ar Patīk, ja jums tas patika, un noteikti abonējiet mani šeit un manā YouTube kanālā, lai redzētu turpmākos projektus.
Ieteicams:
Žalūziju vadība ar ESP8266, Google mājas un Openhab integrāciju un tīmekļa vadību: 5 soļi (ar attēliem)
Žalūziju vadība Ar ESP8266, Google mājas un Openhab integrāciju un tīmekļa kontroli: šajā pamācībā es jums parādīšu, kā savām žalūzijām pievienoju automatizāciju. Es gribēju, lai to varētu pievienot un noņemt automatizācija, tāpēc visa instalācija ir ieslēgta. Galvenās detaļas ir šādas: Pakāpju motors Stepper vadītājs kontrolē ESP-01 Zobrati un stiprinājumi
Lokomotīves modelis ar soļu motoru vadību - Soļu motors kā rotācijas kodētājs: 11 soļi (ar attēliem)
Lokomotīves modelis ar soļu motoru vadību | Pakāpju motors kā rotācijas kodētājs: Vienā no iepriekšējām instrukcijām mēs uzzinājām, kā izmantot pakāpju motoru kā rotējošu kodētāju. Šajā projektā mēs tagad izmantosim šo pakāpju motoru pagriezto rotējošo kodētāju, lai vadītu lokomotīves modeli, izmantojot Arduino mikrokontrolleru. Tātad, bez fu
Kā izveidot elektrisko Longboard ar tālruņa vadību: 6 soļi (ar attēliem)
Kā izveidot elektrisko garo dēli ar tālruņa vadību: Elektriskie longboardi ir satriecoši! PĀRBAUDIET KĀRTĪBU VIDEO, KURU UZBŪVĒT ELEKTRISKO LONBOARDU, KONTROLĒTU NO TĀLRUNA AR BLUETOOTHUpdate #1: uzstādīta satvērējlente, daži ātruma regulatora uzlabojumi nozīmē, ka man ir lielāks ātrums no bo
Pārveidojiet BLE vadību lieljaudas slodzēm - nav nepieciešama papildu vadu pieslēgšana: 10 soļi (ar attēliem)
Modificēt BLE vadību lieljaudas slodzēm - nav nepieciešama papildu elektroinstalācija: Atjauninājums: 2018. gada 13. jūlijs - toroīdu padevei pievienots 3 termināļu regulators. Šī instrukcija aptver BLE (Bluetooth Low Energy) kontroli esošai slodzei diapazonā no 10 W līdz> 1000 W. Jauda tiek attālināti pārslēgta no jūsu Android Mobile, izmantojot pfodApp. Nē
Viedtālruņa spēļu simulators- spēlējiet Windows spēles, izmantojot žestu vadību IMU, akselerometru, žiroskopu, magnetometru: 5 soļi
Viedtālruņa spēļu simulators- spēlējiet Windows spēles, izmantojot žestu vadību IMU, akselerometru, žiroskopu, magnetometru: atbalstiet šo projektu: https://www.paypal.me/vslcreations, ziedojot atvērtā pirmkoda kodiem & atbalsts turpmākai attīstībai