Obsah:

Melódia: 8 krokov (s obrázkami)
Melódia: 8 krokov (s obrázkami)

Video: Melódia: 8 krokov (s obrázkami)

Video: Melódia: 8 krokov (s obrázkami)
Video: 15 Способов Пронести ЕДУ в РЕСТОРАН ! 2024, November
Anonim
Image
Image
Pochopenie toku
Pochopenie toku

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

Pochopenie toku
Pochopenie toku
Pochopenie toku
Pochopenie toku

V rámci tohto projektu sme sa pokúsili vyriešiť niekoľko problémov:

  1. Ako to môžeme urobiť online, aby hráči mohli hrať súčasne?
  2. Ako môžeme obísť latencie internetu a vytvoriť bezproblémový zážitok?
  3. 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:

  1. Obmedzte počet klávesov, aby sa hráč mohol zamerať na menej možností.
  2. Vybrali sme noty v rovnakom rozsahu, ktoré spolu dobre ladia, takže nebude znieť žiadny nesúlad.
  3. 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

Nastavenie servera - Ngrok
Nastavenie servera - Ngrok
Nastavenie servera - Ngrok
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

  1. Odtiaľ si stiahnite ngrok pre svoj operačný systém.
  2. Postupujte podľa krokov na stránke sťahovania, až kým nenastane krok „Spustiť“.
  3. 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
  4. uložte adresu URL a číslo portu (zobrazené na obrázku), ktoré budeme potrebovať, neskôr.

Krok 3: Nastavenie servera - Node -Red

Nastavenie servera - Node -Red
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:

  1. Node-RED vyžaduje Node.js, nainštalujte ho odtiaľto
  2. 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)

Nastavenie servera - MQTT (Mosquitto)
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

  1. Stiahnite si Mosquitto odtiaľto a nainštalujte ho, všetko podľa vášho operačného systému.
  2. 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ť.
  3. 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
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:

  1. libmad-8266 (dekóduje hudbu zo SPIFF a do I2S)
  2. Klient EspMQTTC
  3. ESP8266 Wi -Fi
  4. Adafruit_NeoPixel

Nahrajte zvuky do ESP pomocou SPIFF:

  1. nasledujte tento skvelý návod.
  2. pridajte priečinok s údajmi do adresára zdrojového kódu.
  3. V IDE Arduino v časti Nástroje zmeňte veľkosť pamäte Flash na „4 MB (FS: 3 MB TOA: ~ 512 kB)“
  4. 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

Vytlačte si 3D model
Vytlačte si 3D model
Vytlačte si 3D model
Vytlačte si 3D model
Vytlačte si 3D model
Vytlačte si 3D model
Vytlačte si 3D model
Vytlačte si 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

Montáž a zváranie
Montáž 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: