ዝርዝር ሁኔታ:

ዜማ - 8 ደረጃዎች (ከስዕሎች ጋር)
ዜማ - 8 ደረጃዎች (ከስዕሎች ጋር)

ቪዲዮ: ዜማ - 8 ደረጃዎች (ከስዕሎች ጋር)

ቪዲዮ: ዜማ - 8 ደረጃዎች (ከስዕሎች ጋር)
ቪዲዮ: ጎበዝ ተማሪዎች የደበቁን የአጠናን ዘዴዎች | Students have hidden from us Methods of study |Kalabe 2024, ሀምሌ
Anonim
Image
Image
ፍሰቱን መረዳት
ፍሰቱን መረዳት

ከቤት ውስጥ ሥራን ከሚፈቅዱ ብዙ ጥቅሞች እና የቴክኖሎጂ መፍትሄዎች ጎን ለጎን ፣ በስራ ባልደረቦች መካከል የህይወት ድጋፍን የመቅረፅ እና የመፍጠር ችግር አሁንም ይቀራል። MELODY የትብብር አጫጭር የሙዚቃ መጨናነቆችን ለመፍጠር የሚያስችል ዲጂታል-አካላዊ መሣሪያ ነው። የሥራ ባልደረቦች ጊዜን ያስተባብራሉ እና መሣሪያው በተራ እና በተለያዩ የዘፈቀደ ድምፆች የጃም ክፍለ ጊዜን ያዘጋጃል። የመጀመሪያው ተሳታፊ አንድ የተወሰነ ምት ያዘጋጃል ፣ ከዚያ እያንዳንዱ ተሳታፊ ከተቀመጠው ምት ጋር የሚዛመድ የራሳቸውን የሙዚቃ ክፍል ያክላል። ምንም የሙዚቃ ዳራ ለሌላቸው ተጠቃሚዎች ቀላል ለማድረግ ፣ ሶፍትዌሩ ጠቅታዎቻቸውን በመለየት እና ከተገቢው ምት ጋር በማስተካከል ፍጥነት እንዲኖራቸው ይረዳቸዋል። ሁሉም ተሳታፊዎች የድርሻቸውን መዝግበው ከጨረሱ ከ 3 ደቂቃዎች ገደማ በኋላ ክፍለ ጊዜው ይጠናቀቃል።

እንዴት ነው የሚሰራው?

ዜማ በ MQTT ፕሮቶኮል ላይ ከኖድ-ቀይ አገልጋይ ጋር በሚገናኝ በ ESP2866 ሃርድዌር ላይ የተመሠረተ ነው። መሣሪያው የተጫዋቹን ማስታወሻዎች ወደ አገልጋዩ እና ከአገልጋዩ ወደ ሌሎች ተጫዋቾች በተላኩ የቁምፊዎች ሕብረቁምፊ ይተረጉመዋል። ይህ ሁሉም ከአውታረ መረብ ግንኙነታቸው ሳይቋረጥ ዜማውን እንዲጫወት እና እንዲሰማ ያስችለዋል።

ሜሎዲ ሁለት ዋና የእይታ አመልካቾች አሉት። የመጀመሪያው ተጫዋቹ ሎፕ ሲጀምር እና ሲጨርስ ተጫዋቹ እንዲያውቅ የሚያደርግ እና የተጫዋቹ ተራ መሆኑን የሚጠቁም የ LED ንጣፍ ነው። ሁለተኛው በምርቱ መሃል ላይ የ LED ማሳያ ሲሆን ፣ ነባሩን ዜማ በምስል ለማሳየት የሚያገለግል ነው። ከ 3 እስከ 1 ያለው ቆጠራ መጫወት መጀመርን የሚያመለክት ሲሆን የሰዓት ማሳያ ተጠቃሚው ለቡድኑ ሜሎዲ መቼ እና እንዴት ማበርከት እንደምትፈልግ ይመራታል። ቀረጻው ለወደፊቱ አገልግሎት በኩባንያው ደመና ላይ ይቀመጣል።

ይህ ፕሮጀክት በአራት ተማሪዎች የተነደፈው በመገናኛ ብዙሃን ፈጠራ ላብራቶሪ (ሚላብ) ሁለገብ ማእከል ሄርሊያሊያ (አይዲሲ) ውስጥ ነው-ሻሃር ኤምባሲ ፣ ኤደን ባር ቶቭ ፣ ጋል ኤሽቻር እና ጋድ ስተርን። በዜቪካ ማርክፌልድ ፣ በኔታ ኦፈር እና ሚካል ሌስቺንስኪ እርዳታ እና በኖአ ሞራግ እና በኦረን ዙከርማን መሪነት።

አንዳንድ ነገሮችን እዚህ እንዴት መተግበር እንዳለብኝ እንድማር የረዳኝ ታላቅ አስተማሪ በመፍጠር ለቶም ግራኖት አመሰግናለሁ (እዚህ ያሉት አንዳንድ እርምጃዎች ከዚህ ታላቅ አስተማሪ ተምሳሌት ናቸው)።

አቅርቦቶች

  • 3 ዲ አታሚ
  • ESP8266 እ.ኤ.አ.
  • 7 አዝራሮች
  • 8X8 LED ማትሪክስ
  • WS2812B LED ስትሪፕ
  • I2S ማጉያ
  • ሴት 1/8 ኢንች (3.5 ሚሜ) 4 ዋልታ ኦዲዮ ጃክ
  • 4X 1 ኬ resistor
  • 1X3K ተከላካይ

ደረጃ 1 - ፍሰቱን መረዳት

ፍሰቱን መረዳት
ፍሰቱን መረዳት
ፍሰቱን መረዳት
ፍሰቱን መረዳት

በዚህ ፕሮጀክት ውስጥ አንዳንድ ችግሮችን ለመፍታት ሞክረናል-

  1. ተጫዋቾች በተመሳሳይ ጊዜ መጫወት እንዲችሉ በመስመር ላይ እንዴት ማድረግ እንችላለን?
  2. በበይነመረብ መዘግየቶች ዙሪያ እንዴት እንዞራለን እና እንከን የለሽ ተሞክሮ መፍጠር እንችላለን?
  3. የሙዚቃ ዳራ ለሌላቸው ሰዎች እንኳን ሙዚቃውን እንዴት ጥሩ ማድረግ እንችላለን?

የሙዚቃው ጊዜ እና ተከታታይነት

የመጀመሪያውን ጉዳይ ለመፍታት እኛ የሚዲአይ ፕሮቶኮልን ተመልክተን ለመጠቀም ሞከርን ፣ ግን የበለጠ ጠንካራ መሆኑን አየን ከዚያ እኛ የምንፈልገው ነገር እኛ ደግሞ የመጀመሪያውን ቀለል ያለ ፕሮቶታይፕ ለመገንባት እንድንችል በእርግጥ ቀላል ለማድረግ ፈልገን ነበር። ስለዚህ እኛ ከ MIDI አነሳሽነት ወስደን የሙዚቃ ቀለበታችንን በቁጥር ሕብረቁምፊ (ከ 0-5) እጥፍ ያህል ቀለበቶችን መጠን ተጫዋቾችን (ሁሉንም የሙዚቃ ሂሳብ በኋላ እናብራራለን)።

በሙዚቃ ውስጥ ፣ ዜማዎቹን በሙዚቃ አሞሌዎች እንከፍላለን። እያንዳንዱ አሞሌ በመሠረቱ የአነስተኛ ጊዜ ክፍል ነው 4/4 ን ለመጠቀም እንመርጣለን (በሙዚቃ አሞሌ ውስጥ 4 ድብደባዎችን ማለት ነው) - በጣም የተለመደው።

እያንዳንዱ ድብደባ በ 4 ናሙና መስኮቶች ይከፈላል ፣ ስለዚህ የተጫወተው እያንዳንዱ ማስታወሻ በራስ -ሰር ወደ ጥሩ ቦታ እንዲዛመድ እና እንዲሁም ዘፈኑን እንደ የቁጥሮች ሕብረቁምፊ እንድንወክል ያስችለናል።

የሙዚቃ ዳራ ለሌላቸው ተጫዋቾች ወዳጃዊ ለመሆን ሦስት ነገሮችን አደረግን-

  1. ተጫዋቹ በአነስተኛ አማራጮች ላይ እንዲያተኩር የቁልፍ ብዛት ይገድቡ።
  2. ምንም ዓይነት የተዛባ ድምጽ እንዳይኖር በአንድ ላይ በጥሩ ሁኔታ የሚጫወቱ ማስታወሻዎችን መርጠናል።
  3. እያንዳንዱ ፕሬስ ወደ ምትው “መስኮት” ተቀናብሯል ፣ ስለዚህ የተጫዋቹን ሙዚቃ ወደ ምት ያራግፋል

የግንኙነት ፕሮቶኮሎች

ስለዚህ ከሙዚቃው በስተጀርባ ያለውን አመክንዮ ከተረዳን በኋላ በተጫዋቾቻችን መካከል እንዴት ልንግባባ እንችላለን?

ለዚያ ፣ በመሣሪያዎች መካከል መልዕክቶችን የሚያስተላልፍ የህትመት ደንበኝነት ምዝገባ አውታረ መረብ ፕሮቶኮል MQTT ን እንጠቀማለን።

እያንዳንዱ ተጫዋች ለሁለት ርዕሶች ተመዝግቧል - loop (በጣም የአሁኑን loop ያግኙ) እና ተራ (የአሁኑን ተጫዋች መታወቂያ ለማመሳሰል ዓላማዎች ያገኛል)።

አንድ ተጫዋች ዜማውን መጫወት ሲጨርስ እሱ/እሷ የ UP ቁልፍን ይጫኑ እና loop (የዘመነው) ወደ MQTT ደላላ ይላካል ፣ ይህም በሉፕ ሰርጡ ላይ ላሉት ሁሉም ተጫዋቾች መልሰው ያስተላልፋል።

የአሁኑ loop መጫወት እስኪያልቅ ድረስ ይህ loop “ተኝቶ” ይቆያል እና ከዚያ ይተካዋል። ስለዚህ ለተጫዋቹ ግልፅ ይሆናል። እንዲሁም አዲሱ ሉፕ በአሁኑ ጊዜ በአጫዋቹ መሣሪያ በአከባቢው ስለሚቀመጥ ለሙዚቃው የበይነመረብ መዘግየት የለም ስለዚህ እኛ ሁለተኛውን ጉዳይ ፈታነው።

ደረጃ 2 - አገልጋዩን ማቀናበር - Ngrok

አገልጋዩን ማቀናበር - Ngrok
አገልጋዩን ማቀናበር - Ngrok
አገልጋዩን ማቀናበር - Ngrok
አገልጋዩን ማቀናበር - Ngrok

ngrok የመተላለፊያ መስመር አገልግሎት ነው። የአገልጋዩን ማቀናበር ወይም ከዲ ኤን ኤስ መዛግብት ጋር መገናኘት ሳያስፈልግ - በአከባቢው የሚሮጥ አገልግሎት (በእኛ ሁኔታ ፣ መስቀለኛ -ቀይ) ወደ ውጭው ዓለም ለማጋለጥ ያስችለናል። በቀላሉ በኮምፒተርዎ ላይ መስቀለኛ-RED ን ያሂዱ እና ከዚያ በተመሳሳይ ወደብ ngrok ን ያሂዱ ኖድ-RED እየሰራ ነው።

ያ ብቻ ነው - ከየትኛው አውታረ መረብ ጋር ቢገናኝ ኖድ -አርድን ከየትኛውም የዓለም ክፍል ለመድረስ የሚጠቀሙበት ዩአርኤል ያገኛሉ።

ጭነት እና ውቅር

  1. Ngrok ን ለእርስዎ ስርዓተ ክወና ከዚህ ያውርዱ።
  2. “እስኪያቃጥለው” ደረጃ ድረስ በማውረጃ ገጹ ላይ ያለውን ደረጃ ይከተሉ።
  3. በ “ደረጃ ከፍ ያድርጉት” ውስጥ 80 ን ለ 1883 ይለውጡ - እና http እንደ tcp ፣./ngrok tcp 1883 በእርስዎ ላይ በመመስረት
  4. ዩአርኤሉን እና የወደብ ቁጥሩን ያስቀምጡ (በምስሉ ላይ ታይቷል) እኛ ፣ በኋላ ላይ ያስፈልገናል።

ደረጃ 3 - አገልጋዩን ማቀናበር - መስቀለኛ -ቀይ

አገልጋዩን ማቀናበር - መስቀለኛ -ቀይ
አገልጋዩን ማቀናበር - መስቀለኛ -ቀይ

የፕሮጀክቱ የአገልጋይ አመክንዮ ፣ ኖድ- RED የተለያዩ ሶፍትዌሮችን (እና ሃርድዌር!) ለማገናኘት የሚያስችል የእይታ ፕሮግራም አከባቢ ነው።

እዚህ በሁሉም ተጫዋቾች መካከል ያለውን የግንኙነት አመክንዮ አድርገናል (ቀለበቶችን ማጋራት እና መቀበል እና ተራዎችን ማስተባበር)

የመስቀለኛ-ቀይ መጫኛ

በአከባቢዎ ኮምፒተር ላይ የእኛን የመስቀለኛ-ሬድ ፍሰት ለመጫን የሚከተሉትን ደረጃዎች ይከተሉ

  1. Node-RED Node.js ን ይፈልጋል ፣ ከዚህ ይጫኑት
  2. እዚህ መመሪያዎችን በመጠቀም Node-RED ን ራሱ ይጫኑ።

አሁን Node-RED ን ስለጫኑ ከላይ ባለው ደረጃ ላይ ያሉትን መመሪያዎች በመጠቀም ያሂዱ እና ያረጋግጡ ባዶ የሸራ ገጽ ማየት ይችላሉ። በ https://127.0.0.1:1880 ውስጥ መቀመጥ አለበት

አሁን ለዚህ ፕሮጀክት የተጠቀምነውን ፍሰት ከውጭ ማስመጣት ያስፈልግዎታል ፣ እዚህ ሊያገኙት እና የ JSON ፋይልን ማከል ብቻ ይጫኑ እና ማሰማራት ይጫኑ።

የመስቀለኛ-ቀይ መጫኛ;

ከዚህ እርምጃ ጋር የተገናኘውን ምስል ከተመለከቱ 2 ዋና “ድርጊቶች” እንዳለን ማየት እንችላለን ከአንዱ ተጫዋቾቻችን የአሁኑን ዙር እንቀበላለን ከዚያም ለሌሎቹ ተጫዋቾች ሁሉ እናስተላልፋለን። በተጨማሪም ፣ አዲሱን ተራ ለሁሉም ተጫዋቾች እናሰራጫለን። ስለዚህ ጨዋታው በስምምነት ይቆያል።

ደረጃ 4 - አገልጋዩን ማቀናበር - MQTT (Mosquitto)

አገልጋዩን ማቀናበር - MQTT (Mosquitto)
አገልጋዩን ማቀናበር - MQTT (Mosquitto)

Node-RED የራሱ የ MQTT ደላላ ስለሌለው ፣ እና በ MQTT ላይ ከአነፍናፊዎቻችን እና ከአንቀሳቃሾቻችን ጋር መገናኘት ያስፈልገናል ፣ እኛ የወሰነ MQTT ደላላን እንጠቀማለን። Node-RED Mosquitto ን ስለሚመክር ፣ እኛ የምንጠቀመው ይህ ነው። ስለ MQTT አንዳንድ መረጃ እና ለምን በ IoT ፕሮጄክቶች ውስጥ ብዙውን ጊዜ ጥቅም ላይ እንደዋለ እዚህ ይመልከቱ።

ጭነት እና ውቅር

  1. Mosquitto ን ከዚህ ያውርዱ እና ይጫኑት ፣ ሁሉም በእርስዎ ስርዓተ ክወና መሠረት።
  2. በመደበኛነት ፣ ኖድ- RED ን ከ Mosquitto ጋር ለማገናኘት እዚህ ያሉትን መመሪያዎች መከተል ያስፈልግዎታል። ሆኖም ፣ የእኛን ፍሰት ከተጠቀሙ ፣ አስቀድሞ ለእርስዎ አስቀድሞ ተዋቅሯል። ፍሰቱን እና Mosquitrro ን በትክክል እስካልጫኑ እና ሞስኮት ወደብ 1883 (በነባሪ በሚሠራበት) እስከሚሠራ ድረስ ከሳጥኑ ውጭ መሥራት አለበት።
  3. ያስተውሉ ይህ ማለት የ MQTT ደላላ እና የእርስዎ የመስቀለኛ-አርድ አገልጋይ በአንድ ማሽን ላይ ይሰራሉ ማለት ነው። ይህ በሲስተሙ ውስጥ ያለውን ግንኙነት ለማቃለል ጠቃሚ ነው። ለበለጠ መረጃ ከዚህ በታች ያለውን ማስታወሻ ይመልከቱ።

የ MQTT ትራፊክን መከታተል

ትራፊክን ለመቆጣጠር MQTTfx ን እጠቀም ነበር ፣ በጣም ቀላል GUI ያለው ጥሩ መሣሪያ ነው።

ደረጃ 5 - ኮዱ

ኮዱ
ኮዱ

በ GitHub ውስጥ (በሁሉም የውሂብ ፋይሎች እና config.h) ውስጥ ኮዱን ማግኘት ይችላሉ

ጥገኛዎች ፦

ወደ esp2866 ኮዱን ከመጫንዎ በፊት ጥቂት ቤተ -ፍርግሞችን መጫን ያስፈልግዎታል

  1. libmad-8266 (ሙዚቃውን ከ SPIFF እና ወደ I2S ዲኮድ)
  2. የ EspMQTTC ደንበኛ
  3. ESP8266 ዋይፋይ
  4. Adafruit_NeoPixel

SPIFF ን በመጠቀም ድምጾቹን ወደ ESP ይስቀሉ

  1. ይህንን ታላቅ አስተማሪ ይከተሉ።
  2. የውሂብ አቃፊውን ወደ ምንጭ ኮድ ማውጫ ያክሉ።
  3. በመሳሪያዎች ስር በአርዲኖ አይዲኢ ውስጥ የፍላሽ መጠንን ወደ “4 ሜባ (ኤፍኤስኤ: 3 ሜባ ቶአ ~ 512 ኪባ)” ይለውጡ
  4. እንዲሁም በመሳሪያዎች ስር ESP2866 Sketch Data Upload ን ይጫኑ

ግቤቶችን ማቀናበር;

ከዚያ በኋላ ወደ config.h ፋይል ይሂዱ እና አስፈላጊውን መረጃ እንደ WIFI ምስክርነቶች እና የ ngrok ዩአርኤል እና ወደብ ካለፈው ደረጃ ያክሉ (ለማጣቀሻ የተያያዘውን ፎቶ ይመልከቱ)።

p.s-የ WIFI ን እና የ ngrok ውሂቦችን ከስማርት ስልክዎ እንዲያዋቅሩ ለማገዝ የራስ-አገናኝ ባህሪን አክዬአለሁ ፣ ምክንያቱም እሱ የመጀመሪያው የፅንሰ-ሀሳብ ማረጋገጫ ስለሆነ ፣ አንድ ቀን ማከል እፈልጋለሁ።

የፈለጉትን የተጫዋች መጠን ያዘጋጁ (ይህ ጨዋታ ለ2-3 ተጫዋቾች በተሻለ ሁኔታ ይሠራል እና ከሳጥኑ ውስጥ ለ 2 ተጫዋቾች በድምፅ ድርድር ተጭኗል)። ግን ለተጨማሪ በቀላሉ ሊስተካከል ይችላል-

ለእያንዳንዱ ተጫዋች በተጠቃሚ-ተኮር ርዕስ ውስጥ አንድ ዙር ለማተም በመስቀለኛ-ቀይ ውስጥ ሌላ ፍሰት ይጨምሩ።

እንዲሁም ፣ ይህንን ድርድር ወደ ብጁ ድምፆችዎ በመለጠፍ የሙዚቃውን ድምጽ ማርትዕ ይችላሉ-

እዚህ 3 ዓይነት መሳሪያዎችን (ክሮድስ ለተጫዋች 0 ፣ መሪ ለአጫዋች 1 ፣ እና ባስ ለተጫዋች 2) ማየት ይችላሉ

const char* ዱካዎች [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", "/Read_A.wav", "/blank0.wav", "/ባስ_C3.wav" ፣ "/Bass_D3.wav" ፣ "/Bass_F3.wav" ፣ "/Bass_G3.wav" ፣ "/Bass_A3.wav"};

ደረጃ 6: 3 ዲ አምሳያውን ያትሙ

3 ዲ አምሳያውን ያትሙ
3 ዲ አምሳያውን ያትሙ
3 ዲ አምሳያውን ያትሙ
3 ዲ አምሳያውን ያትሙ
3 ዲ አምሳያውን ያትሙ
3 ዲ አምሳያውን ያትሙ
3 ዲ አምሳያውን ያትሙ
3 ዲ አምሳያውን ያትሙ

ለመጀመሪያው ደረጃ ፣ STL ን ያውርዱ እና ያትሟቸው።

ድጋፎቹን ካስወገዱ በኋላ እና ምናልባት ትንሽ አሸዋ (በአታሚው ጥራት ላይ በመመስረት)

በሚፈለገው ቀለም ቀቡት

ደረጃ 7 መሰብሰብ እና ብየዳ

መሰብሰብ እና ብየዳ
መሰብሰብ እና ብየዳ

ስለዚህ በመሠረቱ እውነተኛው አስማት የሚከሰትበት እዚህ አለ።

እነዚህን መርሃግብሮች መከተል እና ሁሉንም በአንድ ላይ ማያያዝ ይችላሉ።

የፒንቹን አቀማመጥ መለወጥ እንደሚችሉ ልብ ይበሉ ፣ እንዲሁም በኮዱ ውስጥ እሱን ለመለወጥ ያስታውሱ።

A0 እና I2S በቦታው ቆንጆ ተስተካክለዋል-

A0 ለተቃዋሚ ድልድይ ስለሆነ (ከ 5 ቱ ውስጥ የትኛው አዝራር እንደተጫነ ለማወቅ የአሁኑን ልዩነት እንጠቀማለን - ከዚህ አስተማሪዎች ጋር ይመሳሰላል።

I2S እዚህ ሊያገኙት የሚችሉት የተወሰነ ኮድ አለው

ደረጃ 8 ከጓደኞችዎ ጋር አንዳንድ ቀለበቶችን ይጫወቱ

የሚመከር: