فهرست مطالب:

تولید کننده موسیقی مبتنی بر آب و هوا (ESP8266 Based Midi Generator): 4 مرحله (همراه با تصاویر)
تولید کننده موسیقی مبتنی بر آب و هوا (ESP8266 Based Midi Generator): 4 مرحله (همراه با تصاویر)

تصویری: تولید کننده موسیقی مبتنی بر آب و هوا (ESP8266 Based Midi Generator): 4 مرحله (همراه با تصاویر)

تصویری: تولید کننده موسیقی مبتنی بر آب و هوا (ESP8266 Based Midi Generator): 4 مرحله (همراه با تصاویر)
تصویری: قراره با این دستگاه کلی محتوا تولید کنم 🤩🥳 2024, جولای
Anonim
تولید کننده موسیقی مبتنی بر آب و هوا (مولد میدی بر اساس ESP8266)
تولید کننده موسیقی مبتنی بر آب و هوا (مولد میدی بر اساس ESP8266)
تولید کننده موسیقی مبتنی بر آب و هوا (مولد میدی بر اساس ESP8266)
تولید کننده موسیقی مبتنی بر آب و هوا (مولد میدی بر اساس ESP8266)

سلام ، امروز توضیح خواهم داد که چگونه می توانید مولد موسیقی کوچک خود را بر اساس آب و هوا بسازید.

این دستگاه بر اساس ESP8266 طراحی شده است که شبیه آردوینو است و به دما ، باران و شدت نور پاسخ می دهد.

انتظار نداشته باشید که کل آهنگ ها یا پیشرفت آکورد را ایجاد کند. این بیشتر شبیه افرادی است که گاهی اوقات با سینت سایزر Modular مردم را تولید می کنند. اما کمی تصادفی تر از آن نیست ، به عنوان مثال به مقیاس های خاصی می چسبد.

تدارکات

ESP8266 (من از Feather Huzzah ESP8266 از Adafruit استفاده می کنم)

سنسور دما ، رطوبت و فشارسنج BME280 (نسخه I2C)

سنسور باران آردوینو

25K LDR (مقاومت وابسته به نور)

برخی از مقاومتها (دو 47 ، یک 100 ، یک 220 و یک 1k اهم)

اتصال دهنده زن Midi (5 پین دین) مناسب برای نصب PCB

سیم های جامپر

تخته نان یا نوعی تخته نمونه سازی

کامپیوتر ، من از یکی از ویندوز 8.1 استفاده می کنم ، اما تا آنجا که من می دانم باید روی هر سیستم عامل کار کند.

اختیاری: باتری LiPo 1250 میلی آمپری با اتصال JST از Adafruit (فقط با برخی از ESP ها سازگار است)

مرحله 1: مرحله 1: نرم افزار

اول از همه به Arduino IDE نیاز دارید.

سپس به درایور SiLabs CP2104 و بسته هیئت مدیره ESP8266 نیاز دارید.

این به رایانه شما اجازه می دهد تا ESP را از طریق UART داخلی برنامه ریزی کند و به Arduino IDE امکان برنامه ریزی ESP را می دهد.

می توانید تمام اطلاعات مربوط به IDE ، Driver and Board Package را در این صفحه در وب سایت Adafruit پیدا کنید.

همچنین برای ارسال داده های Midi به کتابخانه Arduino Midi نیاز دارید. می توان بدون آن انجام داد ، اما این فقط همه چیز را بسیار آسان می کند.

برای ارتباط با BME280 از این کتابخانه BME280-I2C-ESP32 استفاده کردم. (این برای نسخه I2C BME280 است)

و آن کتابخانه به نوبه خود به راننده حسگر متحد Adafruit نیاز دارد. این اولین بار نیست که برای استفاده بدون نیاز به کتابخانه ای متفاوت به این کتابخانه نیاز دارم ، بنابراین من همیشه این کتابخانه را در جایی نشانه گذاری می کنم.

مرحله 2: مرحله 2: سخت افزار

مرحله 2: سخت افزار
مرحله 2: سخت افزار
مرحله 2: سخت افزار
مرحله 2: سخت افزار
مرحله 2: سخت افزار
مرحله 2: سخت افزار

بسیار خوب ، در نهایت به موارد خوب ، سخت افزار می رسیم.

همانطور که گفته شد من از این Adafruit ESP استفاده کردم ، اما فقط باید با NodeMCU خوب کار کند. من نسخه V2 را توصیه می کنم زیرا معتقدم روی تخته نان بسیار بهتر جا می گیرد و می توانید آنها را بسیار ارزان از eBay یا AliExpress تهیه کنید. من این واقعیت را دوست دارم که Adafruit ESP دارای CPU سریع تری است ، دارای یک کانکتور JST زن برای LiPo و یک مدار شارژ است. همچنین تشخیص اینکه از چه پینی استفاده می کنید کمی ساده تر است. من معتقدم که در NodeMCU پین دارای برچسب D1 در واقع GPIO5 است ، بنابراین شما همیشه به یک نمودار Pinout دستی نیاز دارید. به هیچ وجه مسئله بزرگی نیست ، اما برای مبتدیان بسیار مناسب است ، آنها به وضوح برچسب Adafruit را برچسب گذاری کردند.

ابتدا بیایید BME280 را متصل کنیم ، زیرا در این مدل تغییرات مختلفی وجود دارد. همانطور که از تصاویر مشاهده می کنید ، معدن من یک سوراخ بزرگ دارد ، اما برخی از آنها نیز دارای 2 سوراخ هستند. می بینید که 4 ورودی و خروجی دارد ، 1 عدد برای تغذیه ، یکی برای اتصال به زمین و SCL و SDA. این بدان معناست که از طریق I2C ارتباط برقرار می کند. من معتقدم مدلهای دیگر از طریق SPI ارتباط برقرار می کنند. و در برخی از آنها می توانید SPI یا I2C را انتخاب کنید. SPI ممکن است به کتابخانه دیگری یا حداقل کد متفاوت و سیم کشی متفاوت نیاز داشته باشد. من همچنین معتقدم که S در SPI مخفف Serial است و نمی توانم بگویم که آیا این امر در قسمت Midi این پروژه تداخل ایجاد می کند یا خیر ، زیرا از طریق اتصال سریال نیز کار می کند.

اتصال این BME بسیار مستقیم است. در ESP8266 می توانید پین 4 و 5 را به ترتیب SDA و SCL برچسب گذاری کنید. فقط آن پین ها را مستقیماً به پین SDA و SCL در BME وصل کنید. البته VIN را نیز به ریل مثبت Breadboard و GND را به ریل منفی متصل کنید. آنها به نوبه خود به پین 3V3 و GND ESP متصل می شوند.

در مرحله بعد ما LDR را متصل می کنیم. در مثال Fritzing می توانید ولتاژ 3.3 ولت را که از مقاومت عبور می کند مشاهده کنید ، سپس به LDR و مقاومت دیگر تقسیم می شود. سپس پس از LDR دوباره به یک مقاومت و به ADC تقسیم می شود.

این امر برای محافظت از ESP در برابر ولتاژهای زیاد و اطمینان از دریافت مقادیر قابل خواندن است. ADC می تواند 0-1 ولت را کنترل کند اما 3V3 3.3 ولت را ارائه می دهد. اگر از 1 ولت بالاتر بروید ، احتمالاً چیزی را منفجر نمی کند ، اما به خوبی کار نمی کند.

بنابراین ابتدا از تقسیم کننده ولتاژ با استفاده از مقاومتهای 220 و 100 اهم استفاده می کنیم تا ولتاژ را از 3.3 به 1.031 ولت کاهش دهیم. سپس LDR 25k اهم و مقاومت 1k اهم Voltage Devider دیگری را تشکیل می دهند که بسته به میزان نوری که LDR دریافت می کند ولتاژ را از هر نقطه بین 1.031 تا 0 ولت پایین می آورد.

سپس سنسور باران را داریم. در یک قسمت FC-37 و در قسمت دیگر HW-103 آمده است. من اولین دستگاهی را که در Ebay یافتم خریداری کردم که می گوید 3.3 و 5 ولت را تحمل می کند. (من فکر می کنم همه آنها می توانند).

این بسیار مستقیم است ، ما می توانیم از یک خروجی آنالوگ استفاده کنیم ، اما می توانیم Trimpot کوچک را بچرخانیم تا حسگر به حساسیت دلخواه ما تبدیل شود (و ما قبلاً از یک پین آنالوگ خود در ESP استفاده کرده ایم). مانند سایر سنسورها ، ما باید برق را از ریل مثبت تأمین کرده و آن را به ریل زمین متصل کنیم. گاهی اوقات ترتیب پین ها متفاوت است. در مورد من VCC ، Ground ، Digital ، Analog است ، اما در تصویر Fritzing متفاوت است. اما اگر فقط توجه داشته باشید ، باید به راحتی درست شود.

و در نهایت ، میدی جک. در Breadboard من نمی تواند در لبه تخته نان قرار بگیرد ، زیرا پین ها همه هم تراز نیستند. اگر این موضوع شما را ناراحت می کند ، سعی می کنم یک تخته نان در یک فروشگاه فیزیکی تهیه کنم. یا تصاویر را به خوبی بررسی کنید.

همانطور که در شکل می بینید ، ولتاژ مثبت و سیگنال سریال هر دو از یک مقاومت 47 اهم عبور می کنند.

اگر این پروژه را با Arduino Uno انجام می دهید ، به عنوان مثال مطمئن شوید که از مقاومتهای 220 اهم استفاده می کنید !! این ESP بر روی منطق 3.3 ولت کار می کند ، اما اکثر آردوینو از 5.0 ولت استفاده می کنند ، بنابراین شما باید جریان عبوری از کابل Midi را بیشتر محدود کنید.

و در نهایت پین وسط را به ریل Ground وصل کنید. 2 پین دیگر از 5 پین دین استفاده نمی شود.

مرحله 3: مرحله 3: کد

و در نهایت ما کد را داریم!

در این فایل Zip 2 طرح قرار دادم. "LightRainTemp" فقط همه سنسورها را آزمایش کرده و مقادیر آنها را ارسال می کند. (مطمئن شوید پنجره ترمینال را باز کنید!)

و البته ما طرح LRTGenerativeMidi (LRT مخفف Light، Rain، Temperature) را داریم.

در داخل شما می توانید دسته ای از توضیحات را در نظرات در مورد آنچه در حال رخ دادن است بیابید. من قصد ندارم به نحوه نوشتن کل مطلب بپردازم ، که ساعت ها طول می کشد. اگر می خواهید بدانید از کجا می توانید با چنین چیزی شروع کنید ، پروژه های دیگری را در ذهن دارم. یک مولد تصادفی کوچک Riff با چند دکمه و یک Sequencer با مجموعه ای از ویژگی ها که در مدلهای دیگر پیدا نمی کنم.

اما باید ابتدا طراحی و کد نویسی را تمام کنم. اگر می خواهید در مورد پروژه های دیگر به روز باشید ، به من اطلاع دهید. من تصمیم نگرفته ام که آموزش های بیشتری بسازم یا یک سری ویدیویی بسازم.

مرحله 4: مرحله 4: آن را بچسبانید و آزمایش کنید

و اکنون زمان آزمایش آن است!

به سادگی یک کابل Midi را وصل کنید ، مطمئن شوید که Synth/Keyboard خود را طوری تنظیم کرده اید که به کانال 1 پاسخ دهد یا کانال را در کد آردوینو تغییر دهید و ببینید آیا کار می کند!

من واقعاً کنجکاو هستم که ببینم و بشنوم که با آن چه می کنید. اگر تغییرات ، ارتقاء ، تغییراتی (مانند سنسور نور و مقادیر دما. در خارج از آن ممکن است بهتر یا بدتر از داخل) هر چیزی را اعمال کنید.

همچنین کنجکاو هستم ببینم آیا با همه سینتی سایزرها خوب کار می کند یا خیر. در Volca Bass من کاملاً کار می کند ، اما در نوترون من LFO به محض ارسال یک Midi Note گیر می کند. وقتی دوباره راه اندازی می کنم خوب است ، اما عجیب است. من مطمئن نیستم که چیزی در کتابخانه میدی یا کد من وجود دارد ، ممکن است به زودی آن را بدون کتابخانه انجام دهم و ببینم آیا بهتر می شود یا نه.

با تشکر از شما برای خواندن و تماشا و موفق باشید !!

توصیه شده: