Obsah:
- Zásoby
- Krok 1: Pochopenie toku
- Krok 2: Nastavenie servera - Ngrok
- Krok 3: Nastavenie servera - Node -Red
- Krok 4: Nastavenie servera - MQTT (Mosquitto)
- Krok 5: Kód
- Krok 6: Vytlačte 3D model
- Krok 7: Zostavenie a zváranie
- Krok 8: Zahrajte si niekoľko slučiek so svojimi priateľmi
Video: Melódia: 8 krokov (s obrázkami)
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:55
Popri mnohých výhodách a technologických riešeniach, ktoré umožňujú prácu z domu, zostáva obtiažnosť pri formulovaní a vytváraní podpory života medzi spolupracovníkmi. MELODY je digitálno-fyzické zariadenie, ktoré umožňuje vytváranie spoločných krátkych hudobných jamov. Spolupracovníci koordinujú čas a zariadenie nastaví jam session s odbočkami a rôznymi náhodnými zvukmi. Prvý účastník nastaví konkrétny rytmus, potom každý účastník pridá vlastnú hudobnú sekciu zodpovedajúcu nastavenému rytmu. Aby to bolo jednoduchšie pre používateľov bez hudobného pozadia, softvér im pomáha držať krok tým, že vzorkuje ich kliknutia a prispôsobuje sa príslušnému rytmu. Relácia sa skončí asi po 3 minútach, keď všetci účastníci dokončia nahrávanie svojej časti.
Ako to funguje?
Melody je založený na hardvéri ESP2866, ktorý komunikuje so serverom Node-Red prostredníctvom protokolu MQTT. Zariadenie preloží poznámky hráča do reťazca znakov, ktoré sa odošlú na server a zo servera späť ostatným hráčom. Vďaka tomu môže každý hrať a počuť melódiu bez prerušenia svojho sieťového pripojenia.
Melody má dva hlavné vizuálne indikátory. Prvým je LED pás, ktorý informuje hráča o tom, kedy sa slučka začína a kedy končí, a indikuje, či je na rade hráč. Druhým je LED displej v strede produktu, ktorý slúži na vizuálne zobrazenie existujúcej melódie. Odpočítavanie od 3 do 1 naznačuje, že sa má začať hrať, a displej s časovaním nasmeruje používateľa, kedy a ako chce prispieť k melódii skupiny. Záznam sa automaticky uloží do cloudu spoločnosti pre budúce použitie.
Tento projekt navrhli štyria študenti z laboratória mediálnych inovácií (MiLab) v interdisciplinárnom centre Herzliya (IDC): Shahar Agassy, Eden Bar-Tov, Gal Eshchar a Gad Stern. S pomocou Zvika Markfelda, Netty Ofer a Michala Leschinského a vedenia Noa Moraga a Orena Zuckermana.
ďakujem Tomovi Granotovi za vytvorenie skvelého návodu, ktorý mi pomohol naučiť sa implementovať niektoré veci tu (niektoré kroky tu sú modelované po tomto skvelom návode).
Zásoby
- 3D tlačiareň
- ESP8266
- 7 tlačidiel
- LED matica 8X8
- LED pás WS2812B
- Zosilňovač I2S
- 4 -pólový audio konektor 1/8 "(3,5 mm)
- 4X 1K odpor
- Rezistor 1X3K
Krok 1: Pochopenie toku
V rámci tohto projektu sme sa pokúsili vyriešiť niekoľko problémov:
- Ako to môžeme urobiť online, aby hráči mohli hrať súčasne?
- Ako môžeme obísť latencie internetu a vytvoriť bezproblémový zážitok?
- Ako môžeme zaistiť, aby hudba znela dobre aj pre ľudí bez hudobného pozadia?
Načasovanie a serializácia hudby
Aby sme vyriešili prvý problém, pozreli sme sa na protokol MIDI a pokúsili sme sa ho použiť, ale videli sme, že je robustnejší než to, čo sme v skutočnosti potrebovali. Tiež sme to skutočne chceli zjednodušiť, aby sme mohli postaviť prvý funkčný prototyp. Inšpirovali sme sa MIDI a urobili našu hudobnú slučku reprezentovanú reťazcom čísel (od 0 do 5) násobkom veľkosti slučiek a hracích časov (všetku hudobnú matematiku vysvetlíme neskôr).
V hudbe rozdeľujeme rytmy do hudobných taktov. Každý takt je v zásade malým segmentom, ktorý sa rozhodneme použiť 4/4 (čo znamená 4 údery v hudobnom bare) - najbežnejší.
Každý úder je potom rozdelený do 4 vzorkovacích okien, takže každá zahraná nota bude automaticky zarovnaná do dobrej polohy c a tiež nám umožní reprezentovať skladbu ako reťazec čísel, ktoré sa majú odoslať na server.
Aby sme boli priateľskí k hráčom bez hudobného pozadia, urobili sme tri veci:
- Obmedzte počet klávesov, aby sa hráč mohol zamerať na menej možností.
- Vybrali sme noty v rovnakom rozsahu, ktoré spolu dobre ladia, takže nebude znieť žiadny nesúlad.
- Každé stlačenie je nastavené na „okno“rytmu, čím sa hudba prehrávača odcudzuje
Komunikačné protokoly
Potom, čo sme pochopili logiku hudby, ako ju môžeme komunikovať medzi našimi hráčmi?
Na to používame MQTT, sieťový protokol na prihlásenie na odber, ktorý prenáša správy medzi zariadeniami.
každý hráč je prihlásený na odber dvoch tém: slučka (získať najaktuálnejšiu slučku) a odbočka (na účely synchronizácie získa ID aktuálneho hráča).
V poradí, keď hráč skončí s prehrávaním melódie, stlačí tlačidlo HORE a slučka (aktualizovaná) bude odoslaná maklérovi MQTT, ktorý ju pošle späť všetkým hráčom na kanáli slučky.
táto slučka zostane „nečinná“, kým sa aktuálna slučka neprehráva a potom ju nahradí. bude teda pre hráča transparentný. pretože nová slučka je v súčasnosti lokálne uložená na zariadení prehrávača, neexistuje pre hudbu žiadna latencia internetu, a preto sme vyriešili druhý problém.
Krok 2: Nastavenie servera - Ngrok
ngrok je služba tunelovania. Umožňuje nám odhaliť lokálne bežiacu službu (v našom prípade Node -RED) vonkajšiemu svetu - bez problémov s nastavovaním servera alebo riešením záznamov DNS. Jednoducho spustite Node-RED na počítači a potom spustite ngrok na rovnakom porte, na ktorom je spustený Node-RED.
To je všetko - získate webovú adresu, pomocou ktorej sa budete môcť pripojiť k Node -RED odkiaľkoľvek na svete bez ohľadu na to, k akej sieti je pripojený.
Inštalácia a konfigurácia
- Odtiaľ si stiahnite ngrok pre svoj operačný systém.
- Postupujte podľa krokov na stránke sťahovania, až kým nenastane krok „Spustiť“.
- V kroku „Zapáľte to“vymeňte 80 za 1883 - a http na tcp ako v./ngrok tcp 1883 v závislosti od vášho
- uložte adresu URL a číslo portu (zobrazené na obrázku), ktoré budeme potrebovať, neskôr.
Krok 3: Nastavenie servera - Node -Red
Serverová logika projektu Node-RED je vizuálne programovacie prostredie, ktoré vám umožňuje pripojiť rôzny softvér (a hardvér!).
Tu sme vytvorili logiku komunikácie medzi všetkými hráčmi (zdieľanie a prijímanie slučiek a koordinácia zákrut)
Inštalácia Node-Red
podľa nasledujúceho postupu načítajte náš tok Node-RED do miestneho počítača:
- Node-RED vyžaduje Node.js, nainštalujte ho odtiaľto
- nainštalujte samotný Node-RED podľa pokynov tu.
Teraz, keď máte Node-RED nainštalovaný, spustite ho podľa pokynov v predchádzajúcom kroku a potvrďte, že sa vám zobrazí prázdna stránka na plátne. Mal by byť umiestnený na adrese
Teraz budete musieť importovať postup, ktorý sme použili pre tento projekt, nájdete ho tu a stačí stlačiť importovať, pridať súbor JSON a stlačiť nasadiť.
Inštalácia Node-Red:
ak sa pozriete na obrázok, ktorý je priložený k tomuto kroku, môžete vidieť, že máme 2 hlavné „akcie“, od jedného z našich hráčov dostaneme aktuálnu slučku a potom ju odošleme všetkým ostatným hráčom. navyše nový turnus vysielame všetkým hráčom. takže hra zostane synchronizovaná.
Krok 4: Nastavenie servera - MQTT (Mosquitto)
Pretože Node-RED nemá vlastného brokera MQTT a budeme musieť komunikovať s našimi senzormi a aktivátormi prostredníctvom MQTT, použijeme vyhradeného makléra MQTT. Pretože spoločnosť Node-RED odporúča Mosquitto, použijeme práve tento. Tu nájdete niekoľko informácií o MQTT a prečo sa často používa v projektoch IoT.
Inštalácia a konfigurácia
- Stiahnite si Mosquitto odtiaľto a nainštalujte ho, všetko podľa vášho operačného systému.
- Normálne by ste pri pripájaní Node-RED k Mosquitto museli postupovať podľa týchto pokynov. Ak ste však využili náš postup, je už vopred nakonfigurovaný pre vás. Pokiaľ správne nainštalujete flow a Mosquitrro a Mosquitto pobeží na porte 1883 (na ktorom je štandardne spustený), malo by po vybalení fungovať.
- Všimnite si toho, že to znamená, že broker MQTT a váš server Node-RED bežia na rovnakom počítači. To je užitočné pre zjednodušenie komunikácie vo vnútri systému. Ďalšie informácie nájdete v poznámke nižšie.
Monitorovanie prevádzky MQTT
Na monitorovanie prevádzky som použil MQTTfx, je to skvelý nástroj s veľmi jednoduchým GUI.
Krok 5: Kód
kód nájdete v GitHub (so všetkými dátovými súbormi a konfiguráciou.h)
Závislosti:
Pred načítaním kódu do esp2866 budete musieť nainštalovať niekoľko knižníc:
- libmad-8266 (dekóduje hudbu zo SPIFF a do I2S)
- Klient EspMQTTC
- ESP8266 Wi -Fi
- Adafruit_NeoPixel
Nahrajte zvuky do ESP pomocou SPIFF:
- nasledujte tento skvelý návod.
- pridajte priečinok s údajmi do adresára zdrojového kódu.
- V IDE Arduino v časti Nástroje zmeňte veľkosť pamäte Flash na „4 MB (FS: 3 MB TOA: ~ 512 kB)“
- Tiež v časti Nástroje Stlačte tlačidlo ESP2866 Nahranie údajov skice
Nastavenie parametrov:
potom choďte do súboru config.h a pridajte požadované údaje, ako sú poverenia WIFI a adresa URL a port ngrok z predchádzajúceho kroku (referenčné informácie nájdete na priloženej fotografii).
p.s-Ešte som pridal funkciu automatického pripojenia, ktorá vám pomôže nastaviť údaje WIFI a ngrok z vášho smartfónu, pretože to bol len prvý dôkaz koncepcie, rád by som to jedného dňa pridal.
Nastavte požadovaný počet hráčov (táto hra funguje najlepšie pre 2-3 hráčov a po vybalení z krabice obsahuje množstvo zvukov pre 2 hráčov). ale dá sa ľahko prispôsobiť ďalším:
pre každého hráča pridajte ďalší tok v uzle-červená, aby ste publikovali slučku v rámci témy špecifickej pre používateľa.
tiež môžete upraviť hudobný zvuk prepojením tohto poľa s vašimi vlastnými zvukmi:
Tu môžete vidieť 3 druhy nástrojov (Chrods pre hráča 0, Lead pre hráča 1 a Bass pre hráča 2)
const char* cesty [NUMofNotes] = {"/blank1.wav", "/Chords_Am.wav", "/Chords_F.wav", "/Chords_C.wav", "/Chords_G.wav", "/Chords_Dm.wav", "/blank2.wav", "/Lead_C.wav", "/Lead_D.wav", "/Lead_E.wav", "/Lead_G.wav", "/Lead_A.wav", "/blank0.wav", "/Bass_C3.wav", "/Bass_D3.wav", "/Bass_F3.wav", "/Bass_G3.wav", "/Bass_A3.wav"};
Krok 6: Vytlačte 3D model
V prvom kroku si stiahnite STL a vytlačte ich.
po odstránení podpier a troche brúsenia (v závislosti od rozlíšenia tlačiarne)
namaľte ho na požadovanú farbu
Krok 7: Zostavenie a zváranie
V zásade tu dochádza k skutočnej mágii.
môžete postupovať podľa týchto schém a zvárať všetko dohromady.
pamätajte na to, že polohu PINov môžete zmeniť, nezabudnite to zmeniť aj v kóde.
A0 a I2S sú na svojom mieste celkom pevné:
pretože A0 je pre odporový mostík (rozdiel v prúde používame na to, aby sme vedeli, ktoré tlačidlo z 5 bolo stlačené - podobne ako v tomto návode na obsluhu.
I2S má špecifické kódovanie, ktoré nájdete tu
Krok 8: Zahrajte si niekoľko slučiek so svojimi priateľmi
Odporúča:
Ako: Inštalácia Raspberry PI 4 bezhlavého (VNC) s obrazovým procesorom Rpi a obrázkami: 7 krokov (s obrázkami)
Ako na to: Inštalácia Raspberry PI 4 bez hlavy (VNC) s obrázkom Rpi a obrázkami: Plánujem použiť tento nástroj Rapsberry PI v mnohých zábavných projektoch späť na mojom blogu. Neváhajte sa na to pozrieť. Chcel som sa vrátiť k používaniu svojho Raspberry PI, ale na novom mieste som nemal klávesnicu ani myš. Chvíľu to bolo, odkedy som nastavil Raspberry
Počítadlo krokov - mikro: bit: 12 krokov (s obrázkami)
Počítadlo krokov - mikro: bit: Tento projekt bude počítadlom krokov. Na meranie našich krokov použijeme senzor akcelerometra, ktorý je vstavaný v Micro: Bit. Zakaždým, keď sa Micro: Bit zatrasie, pridáme k počtu 2 a zobrazíme ho na obrazovke
Jednoduchá melódia Arduino: 3 kroky
Jednoduchá melódia Arduino: Jednoduchá melódia Arduino je spôsobom, ako začať s projektmi Arduino, pretože budete iba nahrávať kód zo softvéru Arduino priamo bez toho, aby ste museli čokoľvek písať
Bolt - Nočné hodiny pre bezdrôtové nabíjanie DIY (6 krokov): 6 krokov (s obrázkami)
Bolt - Nočné hodiny bezdrôtového nabíjania DIY (6 krokov): Indukčné nabíjanie (tiež známe ako bezdrôtové nabíjanie alebo bezdrôtové nabíjanie) je typ bezdrôtového prenosu energie. Na prenos elektriny do prenosných zariadení používa elektromagnetickú indukciu. Najbežnejšou aplikáciou je bezdrôtové nabíjanie Qi
Ako rozobrať počítač pomocou jednoduchých krokov a fotografií: 13 krokov (s obrázkami)
Ako rozobrať počítač jednoduchými krokmi a obrázkami: Toto je návod, ako rozobrať počítač. Väčšina základných komponentov je modulárna a dá sa ľahko odstrániť. Je však dôležité, aby ste o tom boli organizovaní. Pomôže to zabrániť strate súčiastok a tiež pri opätovnej montáži