Obsah:
- Krok 1: Prísady
- Krok 2: Pripojte ultrazvukové snímače k doske Octasonic
- Krok 3: Pripojte prevodník logickej úrovne k doske Octasonic
- Krok 4: Pripojte prevodník logickej úrovne k Raspberry Pi
- Krok 5: Pripojte Raspberry Pi 5V k Octasonic 5V
- Krok 6: Nainštalujte softvér
- Krok 7: Vytvorte nejakú hudbu
- Krok 8: Ovládanie gestami
- Krok 9: Vytvorenie prílohy
- Krok 10: Riešenie problémov a ďalšie kroky
Video: Ultrazvukový pi klavír s ovládaním gestami: 10 krokov (s obrázkami)
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 12:00
Tento projekt používa ako vstupy lacné ultrazvukové senzory HC-SR04 a generuje MIDI noty, ktoré je možné prehrávať prostredníctvom syntetizátora na Raspberry Pi, a dosiahnuť tak vysoko kvalitný zvuk.
Projekt tiež používa základnú formu ovládania gestami, kde je možné hudobný nástroj zmeniť tak, že na niekoľko sekúnd podržíte ruky nad dvoma najvzdialenejšími senzormi. Ďalším gestom môžete vypnúť Raspberry Pi, keď skončíte.
Video vyššie ukazuje hotový výrobok v jednoduchom kryte rezanom laserom. Neskôr v tomto návode je podrobnejšie video, ktoré vysvetľuje, ako projekt funguje.
Tento projekt som vytvoril v spolupráci s The Gizmo Dojo (môj miestny makerspace v Broomfielde, CO), aby som vytvoril niekoľko interaktívnych exponátov, ktoré môžeme vziať na miestne akcie STEM/STEAM a Maker Faires.
Pozrite si tiež najnovšiu dokumentáciu a návody na https://theotherandygrove.com/octasonic/, ktoré teraz obsahujú informácie o verzii tohto projektu v jazyku Python (tento návod bol napísaný pre verziu Rust).
Krok 1: Prísady
Na tento pokyn budete potrebovať nasledujúce zložky:
- Raspberry Pi (2 alebo 3) s kartou SD
- 8 ultrazvukových senzorov HC-SR04
- Octasonic Breakout Board
- Obojsmerný prevodník logickej úrovne
- 32 x 12 "prepojovacie vodiče pre ženy a ženy na pripojenie ultrazvukových senzorov
- 13 x 6 "prepojovacie vodiče pre ženy a ženy na pripojenie prevodníka úrovní Raspberry Pi, Octasonic a Logic
- Vhodný napájací zdroj pre Raspberry Pi
- Reproduktory k PC alebo podobné
Odporúčam používať Raspberry Pi 3, ak je to možné, pretože má väčší výpočtový výkon, čo má za následok pohotovejší a príjemnejší zvuk. Môže to fungovať dobre s Raspberry Pi 2 s malým vyladením, ale nepokúšal by som sa použiť pôvodný Raspberry Pi na tento projekt.
Ultrazvukové snímače HC -SR04 majú 4 pripojenia - 5 V, GND, spúšť a ozvenu. Trigger a Echo sú zvyčajne pripojené k oddeleným kolíkom na mikrokontroléri alebo Raspberry Pi, ale to znamená, že na pripojenie 8 senzorov budete potrebovať 16 pinov, čo nie je praktické. Tu prichádza na rad palubná doska Octasonic. Táto doska sa pripája ku všetkým senzorom a má k dispozícii špeciálny mikrokontrolér, ktorý monitoruje senzory a potom komunikuje s Raspberry Pi cez SPI.
HC-SR04 vyžaduje 5 V a Raspberry Pi je iba 3,3 V, preto potrebujeme aj logický prevodník úrovní, ktorý prepojí Raspberry Pi s oddeľovacou doskou Octasonic.
Krok 2: Pripojte ultrazvukové snímače k doske Octasonic
Na prepojenie každého ultrazvukového senzora s doskou použite 4 prepojovacie vodiče žena-žena, dávajte pozor, aby ste ich zapojili správnym spôsobom. Doska je navrhnutá tak, aby boli kolíky v rovnakom poradí ako kolíky na ultrazvukovom senzore. Na doske zľava doprava sú kolíky GND, Trigger, Echo, 5V.
Krok 3: Pripojte prevodník logickej úrovne k doske Octasonic
Raspberry Pi a Octasonic Board komunikujú prostredníctvom SPI. SPI používa 4 vodiče:
- Master In, Slave Out (MISO)
- Master Out, Slave In (MOSI)
- Sériové hodiny (SCK)
- Slave Select (SS)
Okrem toho musíme pripojiť napájanie (5 V a GND).
Logický prevodník úrovní má dve strany - nízke napätie (NN) a vysoké napätie (VN). Malina sa pripojí na stranu NN, pretože je 3,3 V. Octasonic sa pripojí na stranu VN, pretože je 5V.
Tento krok je pre pripojenie Octasonicu na VN stranu prevodníka logickej úrovne
Pozrite si fotografiu priloženú k tomuto kroku, ktorá ukazuje, ktoré piny by mali byť pripojené k prevodníku logickej úrovne.
Pripojenia z prevodníka Octasonic na logickú úroveň by mali byť nasledujúce:
- 5V až HV
- SCK až HV4
- MISO až HV3
- MOSI až HV2
- SS na HV1
- GND až GND
Krok 4: Pripojte prevodník logickej úrovne k Raspberry Pi
Raspberry Pi a Octasonic Board komunikujú prostredníctvom SPI. SPI používa 4 vodiče:
- Master In, Slave Out (MISO)
- Master Out, Slave In (MOSI)
- Sériové hodiny (SCK)
- Slave Select (SS)
Okrem toho musíme pripojiť napájanie (3,3 V a GND). Logický prevodník úrovní má dve strany - nízke napätie (NN) a vysoké napätie (VN). Malina sa pripojí na stranu NN, pretože je 3,3 V. Octasonic sa pripojí na stranu VN, pretože je 5V.
Tento krok je pre pripojenie Raspberry Pi na NN stranu prevodníka logickej úrovne
Pripojenia z prevodníka Raspbery Pi na logickú úroveň by mali byť nasledujúce:
- 3,3 V až NN
- GPIO11 (SPI_SCLK) na LV4
- GPIO09 (SPI_MISO) až LV3
- GPIO10 (SPI_MOSI) na LV2
- GPIO08 (SPI_CE0_N) SS na LV1
- GND až GND
Pomocou diagramu priloženého k tomuto kroku vyhľadajte správne piny na Raspberry Pi!
Krok 5: Pripojte Raspberry Pi 5V k Octasonic 5V
Je potrebné pridať jeden posledný drôt. Potrebujeme skutočne napájať dosku Octasonic s 5V, takže to urobíme pripojením jedného z pinov Raspberry Pi 5V k pinu 5V na hlavičke Octasonic AVR. Toto je dolný ľavý kolík v bloku záhlavia AVR (toto je blok 2 x 3 v pravom hornom rohu dosky). Pozrite sa na priloženú fotografiu, ktorá ukazuje, kde je blok AVR.
Pozrite sa na ďalší priložený diagram, kde nájdete 5V pin na Raspberry Pi.
Krok 6: Nainštalujte softvér
Nainštalujte Raspian
Začnite čistou inštaláciou Raspbian Jessie a potom ju aktualizujte na najnovšiu verziu:
sudo apt-get aktualizácia
sudo apt-get upgrade
Povoliť SPI
Aby tento projekt fungoval, musíte na Raspberry Pi povoliť SPI! Na to použite konfiguračný nástroj Raspberry Pi.
Je tiež dôležité reštartovať Pi po povolení SPI, aby sa prejavilo
Nainštalujte program FluidSynth
Fluidsynth je úžasný bezplatný softvér MIDI syntetizátor. Môžete ho nainštalovať z príkazového riadka pomocou tohto príkazu:
sudo apt-get install fluidsynth
Nainštalujte programovací jazyk Rust
Ultrasonic Pi Piano je implementovaný v programovacom jazyku Rust od Mozilly (je to ako C ++, ale bez zlých bitov). Práve to dnes používajú všetky skvelé deti.
Rust nainštalujte podľa pokynov na https://rustup.rs/. Aby ste ušetrili čas, pokyny sú na spustenie tohto jedného príkazu. Počas inštalácie môžete prijať predvolené odpovede na všetky otázky.
POZNÁMKA: Od uverejnenia tohto návodu na používanie existujú určité problémy s inštaláciou hry Rust na Raspberry Pi. Zlé načasovanie:-/ ale na vyriešenie problému som upravil nižšie uvedený príkaz. Dúfam, že to čoskoro napravia. Pracujem na vytvorení obrázka, ktorý si ľudia môžu stiahnuť a napáliť na kartu SD. Ak by ste to chceli, prosím kontaktujte ma.
export RUSTUP_USE_HYPER = 1 curl https://sh.rustup.rs -sSf | sh
Stiahnite si zdrojový kód Ultrasonic Pi Piano
Zdrojový kód pre zdrojový kód Ultrasonic Pi Piano je hostený na github. Existujú dve možnosti získania kódu. Ak poznáte git a github, môžete klonovať repo:
git clone [email protected]: TheGizmoDojo/UltrasonicPiPiano.git
Prípadne si môžete stiahnuť súbor zip s najnovším kódom.
Zostavte zdrojový kód
cd UltrasonicPiPiano
stavba nákladu -uvoľniť
Otestujte kód
Predtým, ako v nasledujúcom kroku prejdeme k tvorbe hudby, uistite sa, že softvér beží a že môžeme zo senzorov čítať platné údaje.
Na spustenie aplikácie použite nasledujúci príkaz. Tým sa načítajú údaje zo senzorov a prevedú sa do MIDI poznámok, ktoré sa potom vytlačia na konzolu. Keď presuniete ruku nad senzory, mali by ste vidieť generovanie údajov. Ak nie, preskočte na časť návodu na riešenie problémov na konci tohto návodu.
nákladný beh -uvoľnenie
Ak vás to zaujíma, príznak „--release“hovorí Rustovi, aby kód zostavil čo najefektívnejšie, na rozdiel od predvoleného nastavenia „--debug“.
Krok 7: Vytvorte nejakú hudbu
Uistite sa, že ste stále v adresári, kam ste stiahli zdrojový kód, a spustite nasledujúci príkaz.
Tento skript „run.sh“zaisťuje, že bol kód skompilovaný, a potom spustí kód a prepojí výstup do súboru fluidsynth.
./run.sh
Uistite sa, že máte zosilnené reproduktory pripojené k 3,5 mm zvukovému konektoru na Raspberry Pi a pri pohybe rukami po senzoroch by ste mali počuť hudbu.
Ak nepočujete hudbu a máte pripojený monitor HDMI, pravdepodobne bude namiesto toho smerovať zvukový výstup. Ak to chcete opraviť, jednoducho spustite tento príkaz a potom znova spustite Pi Piano:
sudo amixer cset numid = 3 1
Zmena hlasitosti
Objem (alebo "zisk") je zadaný pomocou parametra "-g" pre fluidnú syntézu. Môžete upraviť skript run.sh a zmeniť túto hodnotu. Upozorňujeme, že malé zmeny v tomto parametri majú za následok veľkú zmenu objemu, skúste ho teda zvýšiť o malé množstvá (napríklad 0,1 alebo 0,2).
Krok 8: Ovládanie gestami
Vo videu priloženom k tomuto kroku nájdete úplnú ukážku projektu vrátane toho, ako fungujú ovládacie prvky gest.
Koncept je veľmi jednoduchý. Softvér sleduje, ktoré snímače sú zakryté (do 10 cm) a ktoré nie. To sa premieta do 8 binárnych čísel (1 alebo 0). Je to veľmi výhodné, pretože postupnosť 8 binárnych čísel vytvára „bajt“, ktorý môže predstavovať čísla od 0 do 255. Ak ešte o binárnych číslach neviete, dôrazne odporúčam vyhľadať návod. Binárne čísla sú základnou zručnosťou, ktorú sa musíte naučiť, ak sa chcete dozvedieť viac o programovaní.
Softvér mapuje aktuálny stav senzorov do jedného bajtu predstavujúceho aktuálne gesto. Ak toto číslo zostane po niekoľko cyklov rovnaké, softvér na základe tohto gesta koná.
Pretože ultrazvukové senzory nie sú veľmi spoľahlivé a medzi senzormi môže dochádzať k rušeniu, budete musieť pri gestách používať trocha trpezlivosti. Skúste zmeniť vzdialenosť, v ktorej sa ruky držíte od senzorov, ako aj uhol, v ktorom sa držíte za ruky. Tiež sa pokúšate držať niečo ploché a pevné nad senzormi, aby lepšie odrážali zvuk.
Krok 9: Vytvorenie prílohy
Ak chcete, aby to bola trvalá expozícia a mohli ju predvádzať ľuďom, pravdepodobne budete chcieť urobiť nejaký druh ohrady. Mohlo by to byť vyrobené z dreva, lepenky alebo z mnohých ďalších materiálov. Tu je video, ktoré ukazuje prílohu, na ktorej pracujeme pre tento projekt. Je vyrobený z dreva s vyvŕtanými otvormi, ktoré držia ultrazvukové senzory na mieste.
Krok 10: Riešenie problémov a ďalšie kroky
Riešenie problémov
Ak projekt nefunguje, zvyčajne ide o chybu zapojenia. Nájdite si čas a dôkladne skontrolujte všetky pripojenia.
Ďalším bežným problémom je neschopnosť povoliť SPI a reštartovanie súboru pi.
Na stránke https://theotherandygrove.com/octasonic/ nájdete kompletnú dokumentáciu vrátane tipov na riešenie problémov s článkami špecifickými pre Rust a Python a tiež informácie o tom, ako získať podporu.
Ďalšie kroky
Keď už máte projekt za sebou, odporúčam experimentovať s kódom a vyskúšať rôzne hudobné nástroje. Kódy MIDI nástrojov sú medzi 1 a 127 a sú tu zdokumentované.
Chcete jeden hudobný nástroj s každým senzorom hrať inú oktávu? Možno by ste chceli, aby bol každý senzor namiesto toho samostatným nástrojom? Možnosti sú takmer neobmedzené!
Dúfam, že sa vám tento návod páčil. Páči sa vám to, ak sa vám to páči, a nezabudnite sa prihlásiť na odber môjho kanála tu a na mojom kanáli YouTube, aby ste videli budúce projekty.
Odporúča:
Myš ovládaná gestami: 6 krokov (s obrázkami)
Myš ovládaná gestami: Sledujete film s priateľmi na prenosnom počítači a jeden z chlapcov dostane hovor. Ahh .. musíte vypadnúť zo svojho miesta, aby ste film pozastavili. Prezentujete na projektore a musíte prepínať medzi aplikáciami. Musíte sa pohnúť
Skeleton Bot s ovládaním gestami - mobilná robotická platforma 4WD Hercules - Arduino IDE: 4 kroky (s obrázkami)
Skeleton Bot pre ovládanie gestami - Mobilná robotická platforma Hercules 4WD - Arduino IDE: Vozidlo na ovládanie gestami vyrobené spoločnosťou Seeedstudio Skeleton Bot - Mobilná robotická platforma 4WD Hercules. Zažil som veľa zábavy počas obdobia riadenia epidémie koronárnych vírusov doma. Môj priateľ mi ako novému daroval mobilnú robotickú platformu 4WD Hercules
Auto ovládané gestami: 5 krokov (s obrázkami)
Auto ovládané gestami: Roboty hrajú dôležitú úlohu v automatizácii vo všetkých odvetviach, ako je stavebníctvo, armáda, zdravotníctvo, výroba atď. Po vyrobení niekoľkých základných robotov, ako je riadené auto pomocou Bluetooth, som vyvinul tento ges založený na akcelerometri
Gesture Hawk: Robot ovládaný gestami pomocou rozhrania založeného na spracovaní obrazu: 13 krokov (s obrázkami)
Gesture Hawk: Ručne ovládaný robot gestami pomocou rozhrania založeného na spracovaní obrazu: Gesture Hawk bol predstavený v TechEvince 4.0 ako jednoduché rozhranie človek-stroj založené na spracovaní obrazu. Jeho užitočnosť spočíva v tom, že na ovládanie robotického auta, ktoré beží na rôznych
Robotický invalidný vozík ovládaný gestami DTMF a gestami: 7 krokov (s obrázkami)
Robotický invalidný vozík ovládaný gestami DTMF a gestami: V tomto svete je veľa ľudí zdravotne postihnutých. Ich život sa točí okolo kolies. Tento projekt predstavuje prístup k ovládaniu pohybu invalidného vozíka pomocou rozpoznávania gest rúk a DTMF smartfónu