Tartalomjegyzék:

Ultrahangos Pi zongora gesztusvezérléssel!: 10 lépés (képekkel)
Ultrahangos Pi zongora gesztusvezérléssel!: 10 lépés (képekkel)

Videó: Ultrahangos Pi zongora gesztusvezérléssel!: 10 lépés (képekkel)

Videó: Ultrahangos Pi zongora gesztusvezérléssel!: 10 lépés (képekkel)
Videó: 😂 This is how Viktor Orbán disposed of the Euronews reporter 👍Like OV 👍 2024, November
Anonim
Image
Image
Ultrahangos Pi zongora gesztusvezérléssel!
Ultrahangos Pi zongora gesztusvezérléssel!

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

Csatlakoztassa az ultrahangos érzékelőket az Octasonic panelhez
Csatlakoztassa az ultrahangos érzékelőket az Octasonic panelhez
Csatlakoztassa az ultrahangos érzékelőket az Octasonic panelhez
Csatlakoztassa az ultrahangos érzékelőket az Octasonic panelhez

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

Csatlakoztassa a logikai szintváltót az Octasonic kártyához
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

Csatlakoztassa a logikai szintváltót a Raspberry Pi -hez
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

Csatlakoztassa a Raspberry Pi 5V -ot az Octasonic 5V -hoz
Csatlakoztassa a Raspberry Pi 5V -ot az Octasonic 5V -hoz
Csatlakoztassa a Raspberry Pi 5V -ot az Octasonic 5V -hoz
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: