جدول المحتويات:

مولد الموسيقى المعتمد على الطقس (مولد ميدي ESP8266): 4 خطوات (بالصور)
مولد الموسيقى المعتمد على الطقس (مولد ميدي ESP8266): 4 خطوات (بالصور)

فيديو: مولد الموسيقى المعتمد على الطقس (مولد ميدي ESP8266): 4 خطوات (بالصور)

فيديو: مولد الموسيقى المعتمد على الطقس (مولد ميدي ESP8266): 4 خطوات (بالصور)
فيديو: مايا رجيل مادخلتش للحفلة تاع طارق العربي 🥹 2024, يوليو
Anonim
مولد الموسيقى القائم على الطقس (مولد ميدي ESP8266)
مولد الموسيقى القائم على الطقس (مولد ميدي ESP8266)
مولد الموسيقى القائم على الطقس (مولد ميدي ESP8266)
مولد الموسيقى القائم على الطقس (مولد ميدي ESP8266)

مرحبًا ، سأشرح اليوم كيفية إنشاء مولد الموسيقى الصغير الخاص بك المستند إلى الطقس.

يعتمد على ESP8266 ، والذي يشبه نوعًا ما Arduino ، ويستجيب لدرجة الحرارة والمطر وشدة الضوء.

لا تتوقع أن تقوم بعمل أغانٍ كاملة أو تعاقب وتر. إنها أشبه بالموسيقى التوليدية التي يصنعها الأشخاص أحيانًا باستخدام أجهزة توليف معيارية. لكنها أقل عشوائية من ذلك ، فهي تلتزم بمقاييس معينة على سبيل المثال.

اللوازم

ESP8266 (أنا أستخدم Feather Huzzah ESP8266 من Adafruit)

جهاز استشعار درجة الحرارة والرطوبة والضغط الجوي BME280 (إصدار I2C)

جهاز استشعار المطر اردوينو

25K LDR (مقاوم يعتمد على الضوء)

بعض المقاومات (اثنان 47 ، واحد 100 ، واحد 220 وواحد 1 كيلو أوم)

موصل أنثى ميدي (5 سنون دين) مناسب لتركيب ثنائي الفينيل متعدد الكلور

أسلاك العبور

اللوح أو نوع من لوحة النماذج الأولية

الكمبيوتر ، سأستخدم واحدًا يعمل بنظام التشغيل Windows 8.1 ، لكن يجب أن يعمل على أي نظام تشغيل على حد علمي.

اختياري: بطارية LiPo بسعة 1250 مللي أمبير في الساعة مع موصل JST من Adafruit (متوافق فقط مع بعض ESP)

الخطوة 1: الخطوة 1: البرنامج

بادئ ذي بدء ، تحتاج إلى Arduino IDE.

إذن فأنت بحاجة إلى برنامج تشغيل SiLabs CP2104 وحزمة اللوحة ESP8266.

هذا يسمح لجهاز الكمبيوتر الخاص بك ببرمجة ESP عبر UART المدمج ويسمح لـ Arduino IDE ببرمجة ESP.

يمكنك العثور على جميع المعلومات حول حزمة IDE و Driver و Board في هذه الصفحة على موقع Adafruit على الويب.

ستحتاج أيضًا إلى مكتبة Arduino Midi لتتمكن من إرسال بيانات Midi. يمكن القيام بذلك بدون ، لكن هذا يجعل كل شيء أسهل كثيرًا.

للتواصل مع BME280 استخدمت مكتبة BME280-I2C-ESP32 هذه. (هذا لنسخة I2C من BME280)

وهذه المكتبة بدورها تتطلب Adafruit Unified Sensor Driver. هذه ليست المرة الأولى التي أحتاج فيها إلى هذه المكتبة من أجل استخدام مكتبة مختلفة دون مشاكل ، لذلك لدي دائمًا إشارة مرجعية لهذه المكتبة في مكان ما.

الخطوة 2: الخطوة 2: الأجهزة

الخطوة 2: الأجهزة
الخطوة 2: الأجهزة
الخطوة 2: الأجهزة
الخطوة 2: الأجهزة
الخطوة 2: الأجهزة
الخطوة 2: الأجهزة

حسنًا ، وصلنا أخيرًا إلى الأشياء الجيدة ، الأجهزة.

كما ذكرنا ، استخدمت Adafruit ESP ، لكن يجب أن تعمل بشكل جيد مع NodeMCU. أوصي بإصدار V2 لأنني أعتقد أنه مناسب بشكل أفضل على اللوح ويمكنك الحصول عليه بسعر رخيص جدًا من eBay أو AliExpress. أنا أحب حقيقة أن Adafruit ESP يحتوي على وحدة معالجة مركزية أسرع ، ويأتي مع موصل JST أنثى لـ LiPo ودائرة شحن. من الأسهل أيضًا معرفة رقم Pin الذي تستخدمه. أعتقد في NodeMCU أن الدبوس المسمى D1 هو في الواقع GPIO5 على سبيل المثال ، لذلك تحتاج دائمًا إلى مخطط Pinout سهل الاستخدام. ليست مشكلة كبيرة على الإطلاق ، ولكنها مناسبة فقط للمبتدئين الذين وصفوا Adafruit بشكل واضح.

أولاً ، دعنا نربط BME280 ، لأن هناك بعض الاختلافات في هذا النموذج. كما ترون من الصور ، يحتوي المنجم على ثقب واحد كبير ، ولكن يوجد أيضًا البعض به فتحتان. يمكنك أن ترى أنه يحتوي على 4 مداخل ومخرجات ، 1 للطاقة ، وواحد للأرضي و SCL و SDA. هذا يعني أنه يتواصل عبر I2C. أعتقد أن النماذج الأخرى تتواصل عبر SPI. وفي بعض الحالات يمكنك اختيار إما SPI أو I2C. قد يتطلب SPI مكتبة مختلفة أو على الأقل كود مختلف وأسلاك مختلفة. أعتقد أيضًا أن S في SPI تعني Serial ولا يمكنني القول ما إذا كان هذا سيتداخل مع جزء Midi من هذا المشروع حيث يعمل أيضًا عبر الاتصال التسلسلي.

إن ربط هذا BME هو أمر واضح ومباشر. في ESP8266 ، يمكنك رؤية الدبوس 4 و 5 المسمى SDA و SCL على التوالي. ما عليك سوى توصيل هذه المسامير مباشرة بمسمار SDA و SCL على BME. بالطبع قم أيضًا بتوصيل VIN بالسكة الموجبة للوحة البريد و GND بالسكك الحديدية السلبية. هذه بدورها متصلة بـ 3V3 و GND pin الخاص بـ ESP.

بعد ذلك سنقوم بتوصيل LDR. في مثال Fritzing ، يمكنك رؤية 3.3 فولت تمر عبر المقاوم ، ثم يتم تقسيمها إلى LDR ومقاوم آخر. ثم بعد LDR ينقسم مرة أخرى إلى المقاوم وإلى ADC.

هذا لحماية ESP من الحصول على الفولتية العالية جدًا وللتأكد من حصوله على قيم قابلة للقراءة. يمكن لـ ADC التعامل مع 0-1 فولت ولكن 3V3 يسلم 3.3 فولت. من المحتمل ألا تنفجر أي شيء إذا تجاوزت 1 فولت ، لكنها لن تعمل بشكل جيد.

لذلك نستخدم أولاً مقسم جهد باستخدام مقاومات 220 و 100 أوم لخفض الجهد من 3.3 إلى 1.031 فولت. ثم يشكل 25k ohm LDR والمقاوم 1k ohm مقسم جهد آخر يخفض الجهد من أي مكان بين 1.031 و 0 فولت اعتمادًا على كمية الضوء التي يحصل عليها LDR.

ثم لدينا مستشعر المطر. جزء واحد يقول FC-37 ، والجزء الآخر يقول HW-103. لقد اشتريت للتو أول جهاز وجدته على موقع Ebay قال إنه يمكنه التعامل مع 3.3 و 5 فولت. (أعتقد أنهم جميعًا يستطيعون).

هذا أمر مباشر جدًا ، يمكننا استخدام إخراج تناظري ، ولكن يمكننا فقط تشغيل Trimpot الصغير لجعل المستشعر حساسًا كما نريد (وقد استخدمنا بالفعل دبوسنا التناظري على ESP). كما هو الحال مع المستشعرات الأخرى ، يتعين علينا توفير الطاقة من السكة الموجبة وتوصيلها بالسكك الحديدية الأرضية. في بعض الأحيان يختلف ترتيب الدبابيس. بالنسبة لي ، يكون VCC ، و Ground ، و Digital ، و Analog ، ولكن في صورة Fritzing ، الأمر مختلف. ولكن إذا كنت تهتم فقط ، فسيكون من السهل القيام بذلك بشكل صحيح.

وأخيراً ، جاك ميدي. على لوح التوصيل الخاص بي ، لا يمكنه الجلوس على حافة اللوح ، حيث لا تتماشى جميع المسامير. إذا كان هذا يزعجك ، فسأحاول الحصول على لوح تجارب في متجر مادي. أو تفقد الصور جيدًا.

كما ترون من التخطيطي ، يمر كل من الجهد الموجب والإشارة التسلسلية عبر المقاوم 47 أوم.

إذا قمت بهذا المشروع باستخدام Arduino Uno على سبيل المثال ، فتأكد من استخدام مقاومات 220 أوم !! يعمل هذا المرساب الكهروستاتيكي على منطق 3.3 فولت ، لكن معظم Arduino يستخدم 5.0 فولت ، لذا عليك الحد من التيار الذي يمر عبر كابل ميدي أكثر.

وأخيرًا قم بتوصيل الدبوس الأوسط بالسكة الأرضية. لا يتم استخدام الدبابيس 2 الأخرى من 5 Pin Din.

الخطوة 3: الخطوة 3: الكود

وأخيرا لدينا الكود!

في هذا الملف المضغوط أضع رسمين تخطيطيين. يختبر برنامج LightRainTemp ببساطة جميع المستشعرات ويرسل قيمها (تأكد من فتح النافذة الطرفية!)

وبالطبع لدينا مخطط LRTGenerativeMidi (يرمز LRT للضوء والمطر ودرجة الحرارة).

في الداخل ، يمكنك العثور على مجموعة من التفسيرات في التعليقات حول ما يحدث. لن أخوض في كيفية كتابتي لكل شيء ، فقد يستغرق ذلك ساعات. إذا كنت تريد أن تعرف من أين تبدأ بشيء مثل هذا ، فلدي بعض المشاريع الأخرى في الاعتبار. منشئ Random Riff صغير مع بضعة أزرار وجهاز التسلسل مع مجموعة من الميزات التي لا يمكنني العثور عليها في الطرز الأخرى.

ولكن سيتعين علي إنهاء التصميم والترميز أولاً. اسمحوا لي أن أعرف إذا كنت تريد أن تظل على اطلاع دائم بالمشاريع الأخرى. لم أقرر ما إذا كنت سأقدم المزيد من التعليمات أو أقوم بعمل سلسلة فيديو.

الخطوة 4: الخطوة 4: اربطها واختبرها

والآن حان الوقت لاختباره!

ما عليك سوى توصيل كبل Midi ، وتأكد من ضبط Synth / Keyboard للاستجابة للقناة 1 أو تغيير القناة في كود Arduino ومعرفة ما إذا كانت تعمل!

أنا فضولي حقًا لرؤية وسماع ما تفعله به. إذا قمت بإجراء تغييرات أو ترقيات أو تعديلات (مثل مستشعر الضوء وقيم درجة الحرارة. في الخارج قد يعمل بشكل أفضل أو أسوأ من الداخل) أي شيء.

كما أنني أشعر بالفضول لمعرفة ما إذا كانت تعمل بشكل جيد مع جميع المركِّبات. في Volca Bass الخاص بي ، يعمل بشكل مثالي ، ولكن على جهاز Neutron الخاص بي ، يتعطل LFO بمجرد إرسال مذكرة Midi. لا بأس عندما أعيد تشغيله ، لكنه غريب. لست متأكدًا مما إذا كان هناك شيء ما في مكتبة Midi أو في الكود الخاص بي ، فقد أحاول القيام بذلك بدون مكتبة قريبًا ومعرفة ما إذا كان سيتحسن.

شكرا على القراءة والمشاهدة ونتمنى لك التوفيق !!

موصى به: