فهرست مطالب:

ساخت کنترلر MIDI آردوینو: 9 مرحله (همراه با تصاویر)
ساخت کنترلر MIDI آردوینو: 9 مرحله (همراه با تصاویر)

تصویری: ساخت کنترلر MIDI آردوینو: 9 مرحله (همراه با تصاویر)

تصویری: ساخت کنترلر MIDI آردوینو: 9 مرحله (همراه با تصاویر)
تصویری: آموزش ساخت دستگاه CNC ( قسمت دوم) لیزر حکاکی قوی 2024, نوامبر
Anonim

این دستورالعمل در ابتدا در وبلاگ من در 28 ژوئن 2020 منتشر شد

من از ساختن وسایل الکترونیکی لذت می برم و همیشه می خواستم چیزی را با استفاده از آردوینو بسازم.

یکی از رایج ترین سازه ها برای مبتدیان که پیدا کردم کنترلر MIDI بود. کنترلر MIDI هر سخت افزاری است که داده های MIDI (رابط دیجیتال ابزار موسیقی) را به دستگاه ارسال می کند تا صداها را ایجاد کرده و موسیقی ایجاد کند.

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

پروژه

با ساخت کنترلر MIDI آردوینو خودم ، قصد من این بود که یک پروژه لذت بخش ایجاد کنم و سر و صدا را در کمترین حد نگه دارم. چیزی که هر مبتدی می تواند دنبال کند. برای انجام این کار ، من از MIDI Fighter 3D به عنوان الهام اولیه استفاده کردم و هر ویژگی غیر ضروری را حذف کردم.

هزینه کل پروژه من زیر 30 دلار بود و لیست مواد واقعاً کوتاه بود (پیوندهای وابسته):

  • آردوینو لئوناردو (یا کلون): بین 10 تا 20 دلار.
  • 16 دکمه Sanwa 24 میلی متر (یا کلون): بین 1 دلار تا 2.50 دلار برای هر دکمه.
  • آهن لحیم کاری
  • 22 سیم برق AWG

برد آردوینو

وقتی این پروژه را شروع کردم ، متوجه شدم تعدادی مدل جدید آردوینو وجود دارد (شامل صدها تخته سازگار). و همه آنها قابلیت های کمی متفاوت ارائه می دهند.

من نیاز به ارسال سیگنال های MIDI به کامپیوتر داشتم و ساده ترین راه برای انجام این کار از طریق USB است. هر برد Arduino مبتنی بر میکروکنترلر ATmega32u4 دارای ارتباط USB داخلی است.

بردهای رسمی آردوینو با پشتیبانی USB بومی Arduino Due ، Arduino Zero ، Arduino Leonardo ، Arduino Micro هستند. این بردها دارای پشتیبانی USB یکپارچه هستند ، بدین معنی که می توانند به عنوان یک دستگاه USB MIDI عمل کنند.

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

اولین قدم ها

اگرچه نحوه اجرای کد این پروژه را مرحله به مرحله توضیح خواهم داد ، اما می توانید نسخه نهایی را بارگیری کنید.

برای بارگذاری کد روی برد باید از Arduino IDE استفاده کنید. آنها همچنین دارای یک ویرایشگر وب هستند که بسیار مفید است ، اما سهمیه محدودی در روزها دارند که می توانید کد را کامپایل کنید.

مرحله 1: چشمک زدن LED داخلی

خنده دار است که چگونه "Hello World" در دنیای سخت افزار یک LED چشمک می زند.

برای من تعجب آور بود که متوجه شدم آردوینو لئوناردو دارای LED داخلی است که می توانید برای تست کد چشمک بزنید. به این ترتیب نیازی به ایجاد یک مدار خارجی روی تخته نان با LED و مقاومت ندارید.

کد:

مرحله 2: چشمک زدن LED در ورودی دستی

گام منطقی بعدی این بود که هر زمان که سیگنالی ارسال می کنم ، همان LED را چشمک بزنم. روکش پلاستیکی یک سر دو سیم دوپونت را برداشته و سر دیگر آن را به برد وصل کردم:

  • پین شماره 2: یکی از ورودی های دیجیتال (مثبت). این می تواند هر پین دیجیتالی باشد.
  • پین GND: هر پین زمینی (منفی).

در حال حاضر ، هر بار که به انتهای نمایان شده سیمها می پیوندم ، مدار را می بندم و بنابراین می توانم در نتیجه کد را اجرا کنم

هر یک از 20 پین دیجیتالی لئوناردو دارای یک مقاومت داخلی است (به طور پیش فرض قطع شده است) که می تواند با استفاده از INPUT_PULLUP فعال شود. به خاطر داشته باشید که ورودی کشویی به این معناست که حالت دکمه معکوس است:

  • بالا هنگامی که مدار باز است (دکمه فشرده نشده است).
  • LOW وقتی مدار بسته است (دکمه فشار داده شده است).

کد:

مرحله 3: نصب کتابخانه MIDIUSB

این کتابخانه به یک برد آردوینو با قابلیت USB اجازه می دهد تا به عنوان یک ابزار MIDI از طریق USB عمل کند. برای اطلاعات بیشتر اسناد رسمی را بررسی کنید.

با استفاده از Arduino IDE ، می توانید کتابخانه های آردوینو اضافی را با استفاده از مدیر کتابخانه نصب کنید:

  1. IDE را باز کرده و روی منوی "Sketch" ، سپس "Include Library" ، سپس "Manage Libraries" کلیک کنید.
  2. MIDIUSB را جستجو کرده و روی نصب کلیک کنید.
  3. پس از اتمام کار ، یک برچسب نصب شده باید در کنار کتابخانه MIDIUSB ظاهر شود.
  4. مدیر کتابخانه را ببندید.

در حال حاضر لئوناردو می تواند پیام های MIDI را از طریق USB ارسال کند! اما ابتدا به برخی از بینش در مورد نحوه عملکرد MIDI نیاز است.

MIDI چگونه کار می کند

"MIDI (رابط دیجیتال ابزار موسیقی) یک پروتکل ارتباطی استاندارد است که آلات موسیقی الکترونیکی ، رایانه ها و دستگاه های صوتی مربوطه را برای پخش موسیقی متصل می کند." - ویکیپدیا

این برنامه پیامهای رویداد را با اطلاعات سرعت و سرعت نت پخش شده ، در میان دستورالعمل های دیگر ، مدیریت می کند

در این پروژه خاص ، ورودی 16 دکمه پیام های متفاوتی را از طریق USB ارسال می کند. این پیام ها را می توان با استفاده از هر نرم افزار مناسب مانند GarageBand یا Ableton Live در رایانه به صدا تبدیل کرد.

آناتومی پیام MIDI

برای ارسال پیام MIDI ، از روش sendMIDI () از کتابخانه MIDIUSB که در مرحله 3 نصب کرده بودم استفاده کردم.

این روش می تواند 4 پارامتر دریافت کند:

  • نوع رویداد: می تواند 0x09 برای یادداشت روشن (پخش نت) یا 0x08 برای یادداشت خاموش (توقف پخش نت).
  • توجه/خاموش: نوع رویداد همراه با کانال MIDI (1-16). من فقط از کانال 1 استفاده می کنم بنابراین برای یادداشت روشن 0x90 یا برای خاموش یادداشت 0x80 است.
  • شماره یادداشت: هر نت دارای گام عددی مرتبط (مقیاس فرکانس) است.
  • سرعت: از 0 (بدون سرعت) تا 127 (سریع ترین).

مرحله 4: ارسال پیام MIDI

من کتابخانه MIDIUSB را قرار دادم و به جای چشمک زدن LED داخلی ، یک یادداشت ارسال کردم.

کد:

⚠ مهم: از این مرحله به بعد ، آردوینو به یک کنترلر MIDI USB تبدیل می شود و دریافت کد از طریق USB متوقف می شود.

وقتی در موقعیتی گیر افتادید که دیگر نمی توان Arduino را برنامه ریزی کرد ، مراحل زیر را دنبال کنید:

  1. دکمه تنظیم مجدد گرد شده روی برد آردوینو را نگه دارید.
  2. روی بارگذاری در Arduino IDE کلیک کنید.
  3. دکمه تنظیم مجدد را رها کنید.
  4. کد به روز شده در صفحه بارگذاری می شود.

مرحله 5: ارسال یک پیام MIDI از هر دکمه

ارسال یک پیام MIDI از هر دکمه
ارسال یک پیام MIDI از هر دکمه

آخرین مرحله این بود که هر مرحله را روی یک دکمه ترسیم کنید. برای 16 دکمه ، من مقیاسی از C2 تا E3b را تعریف کردم ، که از 36 تا 51 به ترتیب به ترتیب از پایین به بالا و از چپ به راست است. این فایل را از Arduino Tutorials بررسی کنید تا ببینید که میزان صدای هر یادداشت مربوط است.

من از پین های دیجیتال از 2 تا 12 و پین های آنالوگ (با استفاده از آنها به عنوان دیجیتال) از A0 تا A4 استفاده کردم.

و به این ترتیب کد نهایی به نظر می رسد

مرحله 6: راه اندازی کانال یا بانک (اختیاری)

راه اندازی کانال یا بانک (اختیاری)
راه اندازی کانال یا بانک (اختیاری)

در صورتی که می خواهید دکمه های بیشتری با قابلیت تعویض کانال یا بانک اضافه کنید ، مانند MIDI Fighter 3D (تصویر را ببینید) ، Arduino Leonardo دارای چهار پین دیگر است که می توانید از آنها استفاده کنید. آردوینو لئوناردو دارای 20 پین ورودی/خروجی دیجیتالی است که از آنها فقط 16 پین برای پخش نت استفاده می شود.

می توانید از آن دکمه های اضافی برای به روز رسانی متغیر در کد استفاده کنید و مقدار آن را به عنوان پارامتر به روش MidiUSB.sendMIDI ارسال کنید:

gist.github.com/lean8086/ec8da7486ec3621f9f0b90542a06fcea

مرحله 7: مورد

مورد
مورد
مورد
مورد

برای ساده نگه داشتن این پروژه ، من در انتخاب ویژگی هایی که شامل آن می شود بسیار بی پروا بودم.

  • فقط دکمه ها: 16 دکمه بازی شبیه Sanwa ، در یک شبکه 4x4. بدون دستگیره ، بدون لغزنده ، بدون فیدر یا ورودی آنالوگ دیگر.
  • بدنه Unibody: از پیچ ، مهره ، پیچ و مهره یا چسب برای محفظه یا نگه داشتن برد آردوینو استفاده نکنید.
  • ابزارهای روزمره: به عنوان مثال ، من سیم ها را بجای خرید یک دستگاه برش سیم مخصوص دکمه های بازی لحیم کردم.

طراحی Unibody

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

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

پرونده سه بعدی قابل چاپ (322 کیلوبایت) را بارگیری کنید. تنظیمات توصیه شده: PLA ، لایه های 0.15 میلی متری ، 20٪ پر کردن ، پشتیبانی کننده ها حداقل برای سوراخ پایین گرد ، نگهدارنده های آردوینو و میکرو USB.

نگه داشتن آردوینو بدون پیچ

لئوناردو دارای 4 سوراخ برای پیچاندن تخته در هر کیس مناسب است ، اما ایده من این بود که به راحتی می توان تخته را از قاب جدا کرد.

یافتن یک نگهدارنده کلیپ برای Arduino در Thingiverse آسان بود ، و 5 بار طول کشید تا آن نگهدارنده را به طرز یکپارچه سازی یکپارچه کنم. مشکل ترین قسمت این بود که پایه های آن برای جلوگیری از سوراخ های دکمه ها و تراز وسط USB به قاب قرار بگیرد.

مرحله 8: مجمع

مجمع
مجمع
مجمع
مجمع
مجمع
مجمع

پس از قرار دادن همه دکمه ها در محل ، سیمهای مشکی کوتاه را لحیم کردم و تمام پایه های منفی دکمه ها را بین آنها متصل کردم.

سپس سیمهای قرمز بلند را از هر پایه مثبت لحیم کردم تا مستقیماً به تخته وصل شوم.

برای اتصال سیم ها به آردوینو ، برخی از انتهای Dupont را برش داده و لحیم کردم و آنها را با لوله های حرارتی کوچک پوشاندم.

من سیمها را به همان ترتیبی که در MIDI Fighter وجود داشت به برد وصل کردم. از پایین به بالا و از چپ به راست

مرحله 9: استفاده از کنترلر MIDI

استفاده از کنترلر MIDI
استفاده از کنترلر MIDI

از هر نرم افزار موسیقی (یا سخت افزار مناسب) می توان برای دریافت MIDI و ایجاد موسیقی استفاده کرد. بیشترین موارد توصیه شده Garage Band ، Ableton Live هستند و من می دانم که تعدادی برنامه برای نصب روی تلفن وجود دارد.

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

MIDI در مرورگر وب

برای ایجاد هماهنگی بیشتر با این پروژه و سادگی آن ، من یک ابزار وب ایجاد کردم که کاملاً روی کنترلرهای MIDI متمرکز بود.

Punchy: پیاده سازی WebMIDI و WebAudio برای کنترلرهای MIDI.

می تواند پیام های MIDI را در هر مرورگری که از API جاوا اسکریپت WebMIDI پشتیبانی می کند بخواند. سپس صداها را در سینتی سایزر (با استفاده از WebAudio API) یا در نمونه گیر پخش می کند و صداهای سفارشی را از هر بسته صوتی بارگیری می کند.

Ableton Live را راه اندازی کنید

برای اینکه کنترلر MIDI با Ableton Live کار کند ، این مراحل ساده را از اسناد رسمی آنها دنبال کنید.

به تنظیمات برگزیده → پیوند MIDI بروید و مطمئن شوید که "Input" دارای "Track" و "Remote" روشن و خروجی آن "Remote" ON و همچنین در راهنما ذکر شده است:

توصیه شده: