Orodha ya maudhui:

Melody: Hatua 8 (na Picha)
Melody: Hatua 8 (na Picha)

Video: Melody: Hatua 8 (na Picha)

Video: Melody: Hatua 8 (na Picha)
Video: Jay Melody_Nitasema (Official Video) 2024, Novemba
Anonim
Image
Image
Kuelewa Mtiririko
Kuelewa Mtiririko

Pamoja na faida nyingi na suluhisho za kiteknolojia zinazoruhusu kazi kutoka nyumbani, ugumu wa kuunda na kuunda msaada wa maisha kati ya wafanyikazi wenza unabaki. MELODY ni kifaa cha kidijiti-kimaumbile kinachowezesha uundaji wa jam za muziki fupi za kushirikiana. Wafanyakazi wenza wanaratibu wakati na kifaa huweka kikao cha jam na zamu na sauti tofauti tofauti. Mshiriki wa kwanza huweka densi maalum, baada ya hapo kila mshiriki anaongeza sehemu yao ya muziki inayolingana na densi iliyowekwa. Ili kurahisisha watumiaji wasio na asili ya muziki, programu huwasaidia kushika kasi kwa kuchukua sampuli za mibofyo yao na kurekebisha kwa densi inayofaa. Kipindi kinaisha baada ya kama dakika 3 wakati washiriki wote wamemaliza kurekodi sehemu yao.

Inafanyaje kazi?

Melody inategemea vifaa vya ESP2866, ambavyo huwasiliana na seva ya Node-Nyekundu juu ya itifaki ya MQTT. Kifaa hutafsiri maelezo ya mchezaji kuwa safu ya herufi ambazo zinatumwa kwa seva na kutoka kwa seva kurudi kwa wachezaji wengine. Hii inaruhusu kila mtu kucheza na kusikia sauti bila usumbufu kutoka kwa unganisho la mtandao wao.

Melody ina viashiria kuu viwili vya kuona. Ya kwanza ni ukanda wa LED ambao unamruhusu mchezaji kujua wakati Kitanzi kinaanza na kinapoisha na inaonyesha ikiwa ni zamu ya mchezaji. Ya pili ni onyesho la LED katikati ya bidhaa, ambayo hutumiwa kuibua tune iliyopo. Kuhesabu kutoka 3 hadi 1 kunaonyesha kuanza kucheza na onyesho la nyakati linaelekeza mtumiaji wakati na jinsi anataka kuchangia Melody ya kikundi. Kurekodi huhifadhiwa moja kwa moja kwenye wingu la kampuni hiyo kwa matumizi ya baadaye.

Mradi huu ulibuniwa na wanafunzi wanne katika maabara ya uvumbuzi wa Media (MiLab) katika Kituo cha Taaluma za Herzliya (IDC): Shahar Agassy, Eden Bar-Tov, Gal Eshchar, na Gad Stern. Kwa msaada wa Zvika Markfeld, Netta Ofer na Michal Leschinsky na mwongozo wa Noa Morag na Oren Zuckerman.

shukrani kwa Tom Granot kwa kuunda mafunzo mazuri ambayo yalinisaidia kujifunza jinsi ya kutekeleza baadhi ya mambo hapa (baadhi ya hatua hapa zinaonyeshwa baada ya kufundishwa sana).

Vifaa

  • Printa ya 3D
  • ESP8266
  • Vifungo 7
  • Tumbo la LED la 8X8
  • Ukanda wa LED wa WS2812B
  • Am2 amplifier
  • Kike 1/8 "(3.5mm) 4 Pole Audio Jack
  • Kinga ya 4X 1K
  • Kinyume cha 1X3K

Hatua ya 1: Kuelewa Mtiririko

Kuelewa Mtiririko
Kuelewa Mtiririko
Kuelewa Mtiririko
Kuelewa Mtiririko

Katika mradi huu tulijaribu kushughulikia maswala kadhaa:

  1. Je! Tunawezaje kuifanya mtandaoni, ili wachezaji wacheze kwa wakati mmoja?
  2. Je! Tunawezaje kuzunguka latiti za mtandao na kuunda hali isiyo na mshono?
  3. Je! Tunawezaje kufanya muziki uwe mzuri hata kwa watu wasio na asili ya muziki?

Wakati na uingizaji wa muziki

Ili kutatua suala la kwanza tuliangalia itifaki ya MIDI na kujaribu kuitumia, lakini tukaona kuwa ina nguvu zaidi basi kile tunachohitaji pia tulitaka kuifanya iwe rahisi ili tuweze kujenga mfano wa kwanza wa kufanya kazi. Kwa hivyo tulichukua msukumo kutoka kwa MIDI na tukafanya kitanzi chetu cha muziki kuwakilishwa na safu ya nambari (kutoka 0-5) mara wakati wa saizi ya wachezaji (tutaelezea hesabu zote za muziki baadaye).

Katika muziki, tuligawanya midundo katika baa za muziki. Kila bar kimsingi ni sehemu ndogo ya wakati tunachagua kutumia 4/4 (kumaanisha viboko 4 kwenye upau wa muziki) - ile ya kawaida.

Kila kipigo hugawanywa katika windows 4 za sampuli ili kila noti iliyochezwa italinganishwa kiotomatiki na nafasi nzuri ya c na pia ituruhusu kuwakilisha wimbo kama safu ya nambari za kutuma kwa seva.

Ili kuwa marafiki wa wachezaji bila historia ya muziki tulifanya mambo matatu:

  1. Punguza idadi ya funguo ili kumfanya mchezaji azingatie chaguo chache.
  2. Tulichagua maelezo kwa kiwango sawa ambayo hucheza vizuri pamoja kwa hivyo hakutakuwa na sauti yoyote ya dissonance.
  3. Kila vyombo vya habari vimewekwa kwenye "dirisha" la densi na hivyo kupeleka muziki wa mchezaji kwa dansi

Itifaki za mawasiliano

Kwa hivyo baada ya kuelewa mantiki nyuma ya muziki, tunawezaje kuwasiliana kati ya wachezaji wetu?

kwa hilo, tunatumia MQTT, itifaki ya mtandao wa kuchapisha-inayosafirisha ujumbe kati ya vifaa.

kila mchezaji amesajiliwa kwa mada mbili: kitanzi (pata kitanzi cha sasa zaidi) na zamu (hupata kitambulisho cha mchezaji wa sasa kwa madhumuni ya usawazishaji).

Kwa upande wao mchezaji akimaliza kucheza tune atabonyeza kitufe cha UP na kitanzi (kilichosasishwa) kitatumwa kwa broker wa MQTT, ambayo itasambaza kwa wachezaji wote kwenye kituo cha kitanzi.

kitanzi hiki kitakaa "kimya" hadi kitanzi cha sasa kitakapoisha kucheza na kisha kitachukua nafasi yake. kwa hivyo itakuwa wazi kwa mchezaji. pia kwa kuwa kitanzi kipya kwa sasa kimehifadhiwa ndani ya kifaa cha kichezaji hakuna ucheleweshaji wa mtandao wa muziki na kwa hivyo tukatatua suala la pili.

Hatua ya 2: Kuweka Seva - Ngrok

Kuweka Seva - Ngrok
Kuweka Seva - Ngrok
Kuweka Seva - Ngrok
Kuweka Seva - Ngrok

ngrok ni huduma ya usindikaji. Inaturuhusu kufunua huduma inayoendesha ndani (kwa upande wetu, Node-RED) kwa ulimwengu wa nje - bila shida ya kuanzisha seva au kushughulika na rekodi za DNS. Wewe tu kukimbia Node-RED kwenye kompyuta yako, na kisha kukimbia ngrok kwenye bandari hiyo hiyo Node-RED inaendelea.

Ndio tu - utapata URL ambayo unaweza kutumia kufikia Node-RED kutoka mahali popote ulimwenguni, bila kujali ni mtandao gani umeunganishwa.

Ufungaji na Usanidi

  1. Pakua ngrok kwa mfumo wako wa uendeshaji kutoka hapa.
  2. Fuata hatua kwenye ukurasa wa kupakua, hadi hatua ya "Moto it up".
  3. Katika "Moto it up hatua", badilisha 80 kwa 1883 - na http kwa tcp kama in,./ngrok tcp 1883 kulingana na yako
  4. ila URL na nambari ya bandari (imeonekana kwenye picha) tutahitaji, baadaye.

Hatua ya 3: Kuweka Seva - Node-Nyekundu

Kuweka Seva - Node-Nyekundu
Kuweka Seva - Node-Nyekundu

Mantiki ya Seva ya mradi huo, Node-RED ni mazingira ya programu ya kuona ambayo hukuruhusu kuunganisha programu anuwai (na vifaa!).

Hapa tulifanya mantiki ya mawasiliano kati ya wachezaji wote (kugawana na kupokea matanzi na kuratibu zamu)

Sakinisha ya Node-Red

fuata hatua zifuatazo kupakia mtiririko wetu wa Node-RED kwenye kompyuta yako ya karibu:

  1. Node-RED inahitaji Node.js, isakinishe kutoka hapa
  2. weka Node-RED yenyewe kwa kutumia maagizo hapa.

Sasa kwa kuwa umeweka Node-RED, tumia kwa kutumia maagizo kwenye hatua iliyo hapo juu na uthibitishe unaweza kuona ukurasa tupu wa turubai. Inapaswa kuwa iko katika https:// 127.0.0.1: 1880

Sasa utahitaji kuagiza mtiririko ambao tulitumia kwa mradi huu, unaweza kuupata hapa na bonyeza tu kuingiza ongeza faili ya JSON na ubonyeze Tumia.

Sakinisha Node-Nyekundu:

ukiangalia picha ambayo imeambatishwa kwa hatua hii unaweza kuona tuna 2 "vitendo" kuu tunapokea kitanzi cha sasa kutoka kwa mmoja wa wachezaji wetu na kisha tunaipeleka kwa wachezaji wengine wote. kwa kuongeza, tunatangaza zamu mpya kwa wachezaji wote. kwa hivyo mchezo unakaa katika usawazishaji.

Hatua ya 4: Kuweka Seva - MQTT (Mosquitto)

Kuweka Seva - MQTT (Mosquitto)
Kuweka Seva - MQTT (Mosquitto)

Kwa kuwa Node-RED haina dalali yake ya MQTT, na tutahitaji kuwasiliana na sensorer zetu na watekelezaji juu ya MQTT, tutatumia wakala wa kujitolea wa MQTT. Kwa kuwa Node-RED inapendekeza Mosquitto, hii ndio tutatumia. Tazama hapa kwa habari kadhaa juu ya MQTT na kwa nini hutumiwa mara nyingi katika miradi ya IoT.

Ufungaji na Usanidi

  1. Pakua Mosquitto kutoka hapa na uiweke, yote kulingana na mfumo wako wa uendeshaji.
  2. Kwa kawaida, utahitaji kufuata maagizo hapa ili kuunganisha Node-RED na Mosquitto. Walakini, ikiwa ulitumia mtiririko wetu, tayari umesanidiwa tayari kwako. Kwa kadri unavyoweka mtiririko na Mosquitrro vizuri, na Mosquitto inaendesha bandari ya 1883 (ambayo inaendesha kwa chaguo-msingi), inapaswa kufanya kazi nje ya sanduku.
  3. Kumbuka kuwa hii inamaanisha kuwa broker wa MQTT na seva yako ya Node-RED huendesha kwenye mashine moja. Hii ni muhimu kwa kurahisisha mawasiliano ndani ya mfumo. Tazama dokezo hapa chini kwa habari zaidi.

Kufuatilia trafiki ya MQTT

Nilitumia MQTTfx kufuatilia trafiki, ni zana nzuri na GUI rahisi sana.

Hatua ya 5: Kanuni

Kanuni
Kanuni

unaweza kupata nambari katika GitHub (na faili zote za data na usanidi.h)

Utegemezi:

kabla ya kupakia nambari kwa esp2866 utahitaji kusanikisha maktaba kadhaa:

  1. libmad-8266 (amua muziki kutoka SPIFF na uwe I2S)
  2. Mteja wa EspMQTTC
  3. ESP8266WiFi
  4. Adafruit_NeoPixel

Pakia sauti kwenye ESP ukitumia SPIFF:

  1. fuata mafundisho haya makubwa.
  2. ongeza folda ya data kwenye saraka ya nambari ya chanzo.
  3. Katika IDE ya Arduino chini ya Zana badilisha saizi ya Flash kuwa "4MB (FS: 3MB TOA: ~ 512KB)"
  4. Pia chini ya Zana za Vyombo vya habari ESP2866 Sketch Data Pakia

Kuweka vigezo:

baada ya hapo nenda kwenye faili ya config.h na ongeza data inayohitajika kama vile vitambulisho vya WIFI na ngrok URL na bandari kutoka hatua ya awali (angalia picha iliyoambatanishwa kwa kumbukumbu).

p.s - Bado nimeongeza kipengee cha unganisho kiotomatiki kukusaidia kuweka WIFI na data ya ngrok kutoka kwa simu yako mahiri, kwani ilikuwa tu uthibitisho wa kwanza wa dhana, ningependa kuiongeza siku fulani.

Weka kiwango cha mchezaji unayetaka (mchezo huu unafanya kazi bora kwa wachezaji 2-3 na nje ya sanduku umesheheni safu ya sauti kwa wachezaji 2). lakini inaweza kubadilishwa kwa urahisi zaidi:

kwa kila mchezaji huongeza mtiririko mwingine kwenye node nyekundu ili kuchapisha kitanzi chini ya mada maalum ya mtumiaji.

pia, unaweza kuhariri sauti ya muziki kwa kubadilisha safu hii kwa sauti zako za kawaida:

hapa unaweza kuona aina 3 za vyombo (Chrods kwa mchezaji 0, Kiongozi wa mchezaji 1, na Bass kwa mchezaji 2)

const char * njia [NUMofNotes] = {"/blank1.wav", "/ Chords_Am.wav", "/ Chords_F.wav", "/ Chords_C.wav", "/ Chords_G.wav", "/ Chords_Dm.wav", "/blank2.wav", "/ Kiongozi_C.wav", "/ Kiongozi_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"};

Hatua ya 6: Chapisha Mfano wa 3D

Chapisha Mfano wa 3D
Chapisha Mfano wa 3D
Chapisha Mfano wa 3D
Chapisha Mfano wa 3D
Chapisha Mfano wa 3D
Chapisha Mfano wa 3D
Chapisha Mfano wa 3D
Chapisha Mfano wa 3D

Kwa hatua ya kwanza, pakua STL na uzichapishe.

baada ya kuondoa msaada na labda mchanga kidogo (kulingana na azimio la printa)

rangi kwa rangi inayotaka

Hatua ya 7: Kukusanyika na Kulehemu

Kukusanyika na Kulehemu
Kukusanyika na Kulehemu

Kwa hivyo kimsingi hapa ndipo uchawi wa kweli hufanyika.

unaweza kufuata hesabu hizi na unganisha kila kitu pamoja.

fikiria kuwa unaweza kubadilisha msimamo wa PIN tu kumbuka kuibadilisha katika nambari pia.

A0 na I2S zimepangwa vizuri mahali:

kwa kuwa A0 ni ya daraja la kupinga (tunatumia tofauti katika sasa kujua ni kitufe gani kati ya 5 kilichobanwa - sawa na Maagizo haya.

I2S ina uandishi maalum unaweza kuipata hapa

Hatua ya 8: Cheza Matanzi na marafiki wako

Ilipendekeza: