فهرست مطالب:

Arduino Uno Midi Fighter: 5 مرحله
Arduino Uno Midi Fighter: 5 مرحله

تصویری: Arduino Uno Midi Fighter: 5 مرحله

تصویری: Arduino Uno Midi Fighter: 5 مرحله
تصویری: I built an Arcade DIY MIDI controller with an Arduino Pro Micro: The Fliper 2024, جولای
Anonim
آردوینو اونو میدی فایتر
آردوینو اونو میدی فایتر

این دستورالعمل برای برآوردن الزامات پروژه Makecourse در دانشگاه فلوریدا جنوبی ایجاد شده است (www.makecourse.com)

براساس کنترل محبوب MidiFighter توسط DJ Techtools ، این کنترلر خانگی دارای رابط کاربری موزیکال دیجیتال (MIDI) دارای آردوینو می تواند به عنوان یک دستگاه MIDI در هر نرم افزار Digital Audio Workstation (DAW) استفاده شود. یک کنترلر MIDI می تواند پیام های MIDI را از رایانه ارسال و دریافت کند و می تواند برای کنترل مستقیم هر کدام از نرم افزارهای مورد استفاده مورد استفاده قرار گیرد. علاوه بر این ، کنترل های یک کنترلر MIDI کاملاً قابل تنظیم هستند - بدین معنی که هر دکمه ، نوار لغزنده و دستگیره را می توان به هر عملکردی در DAW ترسیم کرد. به عنوان مثال ، با فشار دادن یک دکمه می توانید یک نت خاص را پخش کنید یا برای تغییر سرعت پروژه صوتی خود برنامه ریزی کنید.

github.com/jdtar/Arduino-Midi-Controller

مرحله 1: مواد

در زیر لیستی از مواد و ابزار مورد استفاده در این پروژه آمده است.

آردوینو اونو

تخته نان

4051/4067 مالتی پلکسر

سیم های بلوز

سیم اضافی

پتانسیومترهای کشویی خطی 2x 10k اهم

16 دکمه Sanwa 24 میلی متری

انقباض حرارتی

آهن لحیم کاری

تیغ ریش تراش

مقاومت 4.7 کیلو وات

ورق اکریلیک (برای درب)

مسکن برای دکمه ها و آردوینو

چاپگر سه بعدی

دستگاه برش لیزری

مرحله 2: طراحی

طرح
طرح
طرح
طرح

پیش از شروع پروژه ، مسکن کنترلر MIDI خود را در اختیار من قرار داده بودند ، بنابراین من یک طرح برای درپوش را مورد تمسخر قرار دادم تا بتوانم جایی را که قرار است همه چیز در آن قرار گیرد ، تجسم کنم. من می دانستم که حداقل 16 دکمه و چند پتانسیومتر به عنوان یک ویژگی می خواهم ، بنابراین سعی کردم اجزاء را تا حد ممکن به طور مساوی از هم جدا کنم.

پس از طراحی طرح درپوش ، فایل را به صورت PDF 1: 1 صادر کردم و برای برش یک ورق اکریلیک به برش لیزری ارسال کردم. برای سوراخ های پیچ ، جایی را که می خواهم سوراخ ها با نشانگر باشد ، مشخص کردم و اکریلیک را با یک رشته داغ ذوب کردم.

پیوست PDF 1: 1 است که می توانید بصورت 1: 1 چاپ کنید و در صورت عدم وجود برش لیزری ، با ابزارهای برقی برش دهید.

مرحله 3: ساخت و ساز و سیم کشی

ساخت و ساز و سیم کشی
ساخت و ساز و سیم کشی
ساخت و ساز و سیم کشی
ساخت و ساز و سیم کشی
ساخت و ساز و سیم کشی
ساخت و ساز و سیم کشی

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

سیم کشی اجزا کمی آزمایش و خطا می برد اما منجر به طرح Fritzing می شود. من ابتدا سیم های زمین و مقاومت 4.7 کیلو وات را سیم کشی کردم ، اتصالات روی دکمه ها را لحیم کردم و حرارت منقبض شد. برای نصب دو پتانسیومتر کشویی به سوراخ های ذوب پیچ های اکریلیک نیاز بود. پس از پیچ شدن دو پتانسیومتر ، آنها را به پین های آنالوگ A0 و A1 متصل کرد. پس از اتمام سیم کشی ، به خاطر آوردم که هیچ کلید درپوش برای فیدرهای من وجود ندارد ، بنابراین به جای خرید آنها ، با استفاده از چاپگر سه بعدی ، برخی از درپوش های دستگیره را با ترسیم آن در Autodesk Fusion 360 و صادر کردن به فایل STL چاپ کردم. دی

Arduino Uno فقط 12 پین ورودی دیجیتالی در دسترس دارد اما 16 دکمه قرار بود وصل شوند. برای جبران این امر ، من یک Multiplexer 74HC4051 را روی تخته نورد نصب کردم که از 4 پین ورودی دیجیتال استفاده می کند و چندین سیگنال را قادر می سازد تا از یک خط مشترک استفاده کنند و در نتیجه 8 پین ورودی دیجیتالی در مجموع 16 پین دیجیتالی برای استفاده در دسترس است.

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

ماتریس توجه

[C2] [C#2] [D2] [D#2]

[G#2] [A1] [A#2] [B1]

[E1] [F1] [F#1] [G1]

[C2] [C#2] [D2] [D#2]

ماتریس پین (M = MUX ورودی)

[6] [7] [8] [9]

[10] [11] [12] [13]

[M0] [M1] [M2] [M3]

[M4] [M5] [M6] [M7]

مرحله 4: برنامه نویسی

برنامه نويسي
برنامه نويسي

پس از اتمام مونتاژ ، برنامه نویسی Arduino تنها چیزی است که باقی مانده است. اسکریپت پیوست به گونه ای نوشته شده است که به راحتی قابل تنظیم است.

ابتدای اسکریپت شامل کتابخانه MIDI.h و یک کتابخانه کنترل کننده است که از وبلاگ Notes and Volts وام گرفته شده است که هر دو در فایل زیپ کد قرار دارند. با استفاده از کتابخانه کنترل کننده ، می توان اشیایی را برای دکمه ها ، پتانسیومترها و دکمه های چندگانه ایجاد کرد که شامل مقادیر داده شامل شماره یادداشت ، مقادیر کنترل ، سرعت یادداشت ، شماره کانال MIDI و غیره است. کتابخانه MIDI.h ارتباط MIDI I/O را در پورت های سریال آردوینو که به نوبه خود داده ها را از اشیاء کنترل کننده می گیرد ، آنها را به پیام های MIDI تبدیل می کند و پیام ها را به هر کدام از رابط midi متصل می کند.

بخش تنظیمات خالی اسکریپت همه کانالها را خاموش می کند و همچنین یک اتصال سریال با سرعت 115200 baud را شروع می کند ، سرعت سریعتر از مبادله سیگنالهای MIDI.

حلقه اصلی اساساً آرایه های دکمه ها و دکمه های چندگانه را می گیرد و حلقه for را اجرا می کند که بررسی می کند آیا دکمه فشار داده شده یا آزاد شده است و بایت های داده مربوطه را به رابط midi ارسال می کند. حلقه پتانسیومتر موقعیت پتانسیومتر را بررسی می کند و تغییرات ولتاژ مربوطه را به رابط midi باز می گرداند.

مرحله 5: راه اندازی

Image
Image
برپایی
برپایی
برپایی
برپایی
برپایی
برپایی

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

در OSX ، اپل یک ویژگی برای ایجاد دستگاه های midi مجازی در نظر گرفت که از طریق برنامه Audio Midi Setup در مکینتاش قابل دسترسی است. پس از ایجاد دستگاه جدید ، از MIDI بدون مو می توان برای ایجاد ارتباط سریال بین آردوینو و دستگاه midi مجازی جدید استفاده کرد. اتصال سریال از طریق آردوینو از طریق MIDI بدون مو با سرعت بالا که در قسمت void setup اسکریپت تعریف شده است عمل می کند و باید در تنظیمات برگزیده MIDI بدون مو ، معادل آن تنظیم شود.

برای آزمایش ، از Midi Monitor برای بررسی اینکه آیا داده های صحیح به نظر می رسد به دلیل اتصال سریال و MIDI ارسال شده است ، استفاده کردم. هنگامی که تشخیص دادم که همه دکمه ها از طریق کانال های صحیح داده های صحیح را ارسال می کنند ، سیگنال MIDI را برای مسیریابی به Ableton Live 9 به عنوان ورودی MIDI تنظیم کردم. در Ableton من توانستم نمونه های صوتی برش داده شده را روی هر دکمه ترسیم کنم و هر نمونه را پخش کنم.

توصیه شده: