Tartalomjegyzék:
- 1. lépés: Hozzávalók
- 2. lépés: Csatlakoztassa az ultrahangos érzékelőket az Octasonic kártyához
- 3. lépés: Csatlakoztassa a logikai szintváltót az Octasonic kártyához
- 4. lépés: Csatlakoztassa a logikai szintváltót a Raspberry Pi -hez
- Lépés: Csatlakoztassa a Raspberry Pi 5V -ot az Octasonic 5V -hoz
- 6. lépés: Telepítse a szoftvert
- 7. lépés: Zenélj
- 8. lépés: Gesztusvezérlés
- 9. lépés: A burkolat elkészítése
- 10. lépés: Hibaelhárítás és további lépések
Videó: Ultrahangos Pi zongora gesztusvezérléssel!: 10 lépés (képekkel)
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:43
Ez a projekt olcsó HC-SR04 ultrahangos érzékelőket használ bemenetként, és MIDI-jegyzeteket állít elő, amelyeket a Raspberry Pi szintetizátorán keresztül lehet lejátszani a kiváló minőségű hangzás érdekében.
A projekt a gesztusvezérlés alapvető formáját is használja, ahol a hangszert úgy lehet megváltoztatni, hogy néhány másodpercig a két legkülső érzékelő felett tartja a kezét. Egy másik mozdulattal leállíthatja a Raspberry Pi -t, ha befejezte.
A fenti videó bemutatja a készterméket egy egyszerű lézervágásban. Ebben az oktatóanyagban később egy részletesebb videó található, amely elmagyarázza a projekt működését.
Ezt a projektet a The Gizmo Dojo -val (helyi készítői helyem, Broomfield, CO) közösen hoztam létre, hogy néhány interaktív kiállítást készítsünk, amelyeket elvihetünk a helyi STEM/STEAM eseményekre és a Maker Faires -re.
Kérjük, tekintse meg a legfrissebb dokumentációt és oktatóanyagokat is a https://theotherandygrove.com/octasonic/ címen, amely most tartalmaz információkat a projekt Python verziójáról (ez az útmutató a Rust verzióhoz készült).
1. lépés: Hozzávalók
Ehhez az utasításhoz a következő összetevőkre lesz szüksége:
- Raspberry Pi (2 vagy 3) SD kártyával
- 8 HC-SR04 ultrahangos érzékelő
- Octasonic Breakout Board
- Kétirányú logikai szintváltó
- 32 x 12 hüvelykes női-női jumper vezetékek az ultrahangos érzékelők csatlakoztatásához
- 13 x 6 hüvelykes női-női jumper vezetékek a Raspberry Pi, az Octasonic és a logikai szintváltó csatlakoztatásához
- Megfelelő tápegység a Raspberry Pi számára
- PC hangszórók vagy hasonló
Javaslom a Raspberry Pi 3 használatát, ha lehetséges, mivel nagyobb számítási kapacitással rendelkezik, így gyorsabb és kellemesebb hangzást eredményez. Jól működhet egy Raspberry Pi 2 -vel egy kis finomítással, de nem próbálnám meg az eredeti Raspberry Pi -t használni ehhez a projekthez.
A HC -SR04 ultrahangos érzékelők 4 csatlakozással rendelkeznek - 5V, GND, Trigger és Echo. Általában a Trigger és az Echo különálló tűkhöz van csatlakoztatva egy mikrokontroller vagy a Raspberry Pi segítségével, de ez azt jelenti, hogy 16 érintkezőt kell használnia 8 érzékelő csatlakoztatásához, és ez nem praktikus. Ez az a hely, ahol az Octasonic megszakítópanel jön be. Ez a kártya csatlakozik az összes érzékelőhöz, és rendelkezik egy dedikált mikrokontrollerrel, amely figyeli az érzékelőket, majd kommunikál a Raspberry Pi -vel az SPI -n keresztül.
A HC-SR04 5 V-ot igényel, a Raspberry Pi pedig csak 3,3 V-ot, ezért ezért szükségünk van a logikai szintváltóra is, amely a Raspberry Pi-t az Octasonic megszakító táblához csatlakoztatja.
2. lépés: Csatlakoztassa az ultrahangos érzékelőket az Octasonic kártyához
Használjon 4 női-női áthidaló vezetéket az egyes ultrahangos érzékelők csatlakoztatásához a táblához, ügyelve arra, hogy a megfelelő módon csatlakoztassa őket. A táblát úgy tervezték, hogy a csapok ugyanabban a sorrendben legyenek, mint az ultrahangos érzékelő csapjai. Balról jobbra a táblán a csapok GND, Trigger, Echo, 5V.
3. lépés: Csatlakoztassa a logikai szintváltót az Octasonic kártyához
A Raspberry Pi és az Octasonic Board SPI -n keresztül kommunikál. Az SPI 4 vezetéket használ:
- Master In, Slave Out (MISO)
- Master Out, Slave In (MOSI)
- Soros óra (SCK)
- Slave Select (SS)
Ezenkívül tápellátást kell csatlakoztatnunk (5V és GND).
A logikai szintváltónak két oldala van - alacsony feszültség (LV) és nagyfeszültség (HV). A Málna csatlakozik az LV oldalhoz, mivel 3.3V. Az Octasonic a HV oldalához csatlakozik, mivel 5 V -os.
Ez a lépés az Octasonic csatlakoztatása a logikai szintváltó HV oldalához
Lásd az ehhez a lépéshez mellékelt fotót, amely bemutatja, hogy mely csapokat kell csatlakoztatni a logikai szintváltóhoz.
Az Octasonic és a Logic Level konverter közötti kapcsolatok a következők:
- 5V -tól HV -ig
- SCK - HV4
- MISO - HV3
- MOSI - HV2
- SS - HV1
- GND - GND
4. lépés: Csatlakoztassa a logikai szintváltót a Raspberry Pi -hez
A Raspberry Pi és az Octasonic Board SPI -n keresztül kommunikál. Az SPI 4 vezetéket használ:
- Master In, Slave Out (MISO)
- Master Out, Slave In (MOSI)
- Soros óra (SCK)
- Slave Select (SS)
Ezenkívül áramot kell csatlakoztatnunk (3.3V és GND). A logikai szintváltónak két oldala van - alacsony feszültségű (LV) és nagyfeszültségű (HV). A Málna csatlakozik az LV oldalhoz, mivel 3.3V. Az Octasonic a HV oldalához csatlakozik, mivel 5 V -os.
Ez a lépés a Raspberry Pi csatlakoztatását jelenti a logikai szintváltó LV oldalához
A Raspbery Pi és a logikai szint átalakító közötti kapcsolatok a következők:
- 3.3V -tól LV -ig
- GPIO11 (SPI_SCLK) - LV4
- GPIO09 (SPI_MISO) - LV3
- GPIO10 (SPI_MOSI) - LV2
- GPIO08 (SPI_CE0_N) SS - LV1
- GND - GND
Az ehhez a lépéshez mellékelt diagram segítségével keresse meg a megfelelő csapokat a Raspberry Pi -n!
Lépés: Csatlakoztassa a Raspberry Pi 5V -ot az Octasonic 5V -hoz
Egy utolsó huzal van hozzá. Valójában 5 V -ról kell táplálnunk az Octasonic táblát, tehát ezt úgy tesszük meg, hogy a Raspberry Pi 5 V -os tűk egyikét az Octasonic AVR fejléc 5 V -os csatlakozójához csatlakoztatjuk. Ez az AVR fejléc bal alsó csapja (ez a tábla jobb felső sarkában található 2 x 3 -as blokk). Lásd a mellékelt fotót, amely bemutatja, hol található az AVR blokk.
Nézze meg a másik csatolt diagramot, hogy megtalálja az 5 V -os csatlakozót a Raspberry Pi -n.
6. lépés: Telepítse a szoftvert
Telepítse a Raspiant
Kezdje a Raspbian Jessie tiszta telepítésével, majd frissítse a legújabb verzióra:
sudo apt-get update
sudo apt-get upgrade
Az SPI engedélyezése
A projekt működéséhez engedélyeznie kell az SPI -t a Raspberry Pi -n! Ehhez használja a Raspberry Pi Configuration segédprogramot.
Az is fontos, hogy a Pi újraindítása után engedélyezze az SPI érvényességét
Telepítse a FluidSynth programot
A Fluidsynth egy csodálatos ingyenes szoftver MIDI szintetizátor. Ezt a paranccsal telepítheti a parancssorból:
sudo apt-get install fluidsynth
Telepítse a Rust programozási nyelvet
Az ultrahangos Pi Piano a Mozilla Rust programozási nyelvén valósul meg (olyan, mint a C ++, de a rossz részek nélkül). Manapság minden menő gyerek ezt használja.
Kövesse a https://rustup.rs/ oldalon található utasításokat a Rust telepítéséhez. Idő megtakarítása érdekében az utasítások szerint futtassa ezt az egy parancsot. A telepítés során minden kérdésre elfogadhatja az alapértelmezett válaszokat.
MEGJEGYZÉS: Az útmutató közzététele óta néhány probléma merül fel a Rust Raspberry Pi -re történő telepítésével. Rossz időzítés:-/ de módosítottam az alábbi parancsot a probléma kiküszöbölésére. Remélhetőleg ezt hamarosan kijavítják. Olyan kép létrehozásán dolgozom, amelyet az emberek letölthetnek és SD -kártyára írhatnak. Ha szeretné, vegye fel velem a kapcsolatot.
export RUSTUP_USE_HYPER = 1curl https://sh.rustup.rs -sSf | SH
Töltse le az Ultrahangos Pi Piano forráskódot
Az Ultrasonic Pi Piano forráskód forráskódját a github tárolja. Két lehetőség van a kód beszerzésére. Ha ismeri a git -et és a githubot, klónozhatja a repót:
git klón [email protected]: TheGizmoDojo/UltrasonicPiPiano.git
Alternatív megoldásként letöltheti a legújabb kód ZIP -fájlját.
Fordítsa össze a forráskódot
cd UltrasonicPiPiano
rakomány felépítése -kiadás
Tesztelje a kódot
Mielőtt továbblépnénk a zenéléshez a következő lépésben, győződjünk meg arról, hogy a szoftver fut, és hogy az érzékelőktől érvényes adatokat olvashatunk.
Az alkalmazás futtatásához használja a következő parancsot. Ez beolvassa az érzékelők adatait, és MIDI -jegyzetekké alakítja át, amelyeket ezután kinyomtat a konzolon. Amikor a kezét az érzékelők fölé mozgatja, látnia kell az adatok előállítását. Ha nem, akkor ugorjon a hibaelhárítási szakaszhoz az útmutató végén.
rakományfutás -kiadás
Ha kíváncsi, a "--release" jelző azt mondja Rustnak, hogy a lehető leghatékonyabban fordítsa le a kódot, szemben az alapértelmezett "--debug" beállítással.
7. lépés: Zenélj
Győződjön meg arról, hogy még mindig abban a könyvtárban van, ahonnan letöltötte a forráskódot, és futtassa a következő parancsot.
Ez a "run.sh" parancsfájl gondoskodik a kód fordításáról, majd futtatja a kódot, és a kimenetet fluidsynth -be vezeti.
./run.sh
Győződjön meg arról, hogy a Raspberry Pi 3,5 mm -es audio csatlakozójához erősített hangszórók vannak csatlakoztatva, és hallja a zenét, miközben a kezét az érzékelők fölé mozgatja.
Ha nem hall zenét, és HDMI -monitor van csatlakoztatva, akkor valószínűleg az audio kimenet megy oda. Ennek javításához egyszerűen futtassa ezt a parancsot, majd indítsa újra a Pi Piano-t:
sudo amixer cset numid = 3 1
A hangerő megváltoztatása
A hangerőt (vagy "erősítést") a "-g" paraméter határozza meg a fluidsynth számára. Módosíthatja a run.sh parancsfájlt, és módosíthatja ezt az értéket. Kérjük, vegye figyelembe, hogy e paraméter apró változtatásai nagy mennyiségváltozást eredményeznek, ezért próbálja meg kis mennyiséggel (például 0,1 vagy 0,2) növelni.
8. lépés: Gesztusvezérlés
Tekintse meg a lépéshez csatolt videót a projekt teljes bemutatásához, beleértve a gesztusvezérlők működését.
A koncepció nagyon egyszerű. A szoftver nyomon követi, hogy mely érzékelők vannak lefedve (10 cm -en belül) és melyek nem. Ez 8 bináris számot jelent (1 vagy 0). Ez nagyon kényelmes, mivel egy 8 bináris számból álló sorozat "bájt" -ot készít, amely 0 és 255 közötti számokat jelenthet. Ha még nem ismeri a bináris számokat, akkor javaslom, hogy keressen egy oktatóanyagot. A bináris számok alapvető készségek, amelyeket meg kell tanulni, ha többet szeretne megtudni a programozásról.
A szoftver az érzékelők aktuális állapotát egyetlen bájtra képezi le, amely az aktuális gesztust jelzi. Ha ez a szám több cikluson keresztül változatlan marad, akkor a szoftver erre a gesztusra hat.
Mivel az ultrahangos érzékelők nem túl megbízhatóak, és interferencia léphet fel az érzékelők között, némi türelemmel kell eljárnia a gesztusok használatakor. Próbálja meg megváltoztatni a kezek által tartott távolságot az érzékelőktől, valamint a kezek fogásának szögét. Hidegben is próbáljon valami laposat és szilárdat tartani az érzékelők felett, hogy jobban tükrözze a hangot.
9. lépés: A burkolat elkészítése
Ha azt szeretné, hogy ez állandó kiállítás legyen, és meg tudja mutatni az embereknek, akkor valószínűleg valamilyen zárt területet szeretne készíteni. Ez lehet fából, kartonból vagy sok más anyagból. Itt van egy videó, amely bemutatja a házat, amelyen ezen a projekten dolgozunk. Ez fából készült, lyukakat fúrnak ki, hogy az ultrahangos érzékelőket a helyükön tartsák.
10. lépés: Hibaelhárítás és további lépések
Hibaelhárítás
Ha a projekt nem működik, akkor általában a bekötési hibán múlik. Szánjon időt az összes csatlakozás ismételt ellenőrzésére.
Egy másik gyakori probléma az SPI engedélyezésének elmulasztása és a pi újraindítása.
Kérjük, látogasson el a https://theotherandygrove.com/octasonic/ oldalra, ahol teljes dokumentációt talál, beleértve a hibaelhárítási tippeket, a Rust és a Python specifikus cikkeivel, valamint a támogatással kapcsolatos információkat.
Következő lépések
Amint a projekt működik, azt javaslom, hogy kísérletezzen a kóddal, és próbáljon ki különböző hangszereket. A MIDI műszerkódok 1 és 127 között vannak, és itt vannak dokumentálva.
Szeretne egyetlen hangszert úgy, hogy minden érzékelő más oktávot játsszon? Talán szeretné, ha minden érzékelő külön műszer lenne? A lehetőségek szinte korlátlanok!
Remélem tetszett ez az oktatható. Kérlek, ha tetszett, lájkold, és mindenképpen iratkozz fel itt és a YouTube -csatornámra, hogy meglásd a jövőbeli projekteket.
Ajánlott:
Tanuljon zongora billentyűket a Makey Makey segítségével: 6 lépés (képekkel)
Ismerje meg a zongorakulcsokat a Makey Makey segítségével: Ezt az Instuctables éjszakára építettem a The Maker Station -en. Ez a játék segít megtanulni, hogy a zongora billentyűzeten hol találhatók a hangok játék közben. Csoportunkat meghívták a Maker Station Pavilion részeseivé egy oktatási kiállításra. Az oktatással beszélgetve
Billentyűzet modul zongora RGB LED -del: 5 lépés (képekkel)
Billentyűzet modul zongora RGB LED -del: IntroHello hölgyeim és uraim, üdvözöllek a legelső oktathatóban! Ma azt fogom megtanítani, hogyan kell zongorát készíteni, amelynek fő elemei egy billentyűzet modul és egy piezo zümmögő, és hogy képes legyen DO-RE-MI és így tovább játszani
SMD 555 időzítő zongora!: 4 lépés (képekkel)
SMD 555 időzítő zongora !: Üdv mindenkinek! Ebben az oktatható útmutatóban megmutatom, hogyan készíts egy kis zongorát a közös 555-ös időzítővel, de SMD-komponensekkel! Az SMD felületre szerelhető eszközt jelent, és ezeket az alkatrészeket közvetlenül a nyomtatott felületre szerelik fel vagy helyezik el
Elektromos analóg zongora: 10 lépés (képekkel)
Elektromos analóg zongora: A zene a kultúránk nagy része-mindenki szívesen hallgat zenét. De míg a zenehallgatás egy dolog, addig a zenélés megtanulása más dolog. Hasonlóképpen, bár a zenélés nehéz feladat, a hangszer építése egész
Egyszerű elektronikus zongora: 3 lépés (képekkel)
Egyszerű elektronikus zongora: Az elektronika nagyon könnyen tud hangokat hallani, mindössze néhány darabbal. Így készíthet egyszerű zongorát egy 555 -ös időzítő segítségével. Ezt az áramkört Tinkercad segítségével terveztem és teszteltem, majd felépítettem az igazit. Itt van minden, amire szüksége lesz: 1 x