فهرست مطالب:

HX1 -DM - The Upcycled Arduino DUE Powered DIY Drum Machine (made With a Dead Maskine MK2): 4 مرحله
HX1 -DM - The Upcycled Arduino DUE Powered DIY Drum Machine (made With a Dead Maskine MK2): 4 مرحله

تصویری: HX1 -DM - The Upcycled Arduino DUE Powered DIY Drum Machine (made With a Dead Maskine MK2): 4 مرحله

تصویری: HX1 -DM - The Upcycled Arduino DUE Powered DIY Drum Machine (made With a Dead Maskine MK2): 4 مرحله
تصویری: q3d quickfit extruder 2024, جولای
Anonim
Image
Image
تعمیر
تعمیر

مشخصات

  • کنترل کننده / دستگاه درام Hybrid Midi: دارای Arduino DUE!
  • 16 پد سنجش سرعت با تاخیر بسیار کم 1> ms
  • 8 دکمه کاربر قابل تنظیم به هر دستور Midi #CC
  • ترتیبساز داخلی 16ch (بدون نیاز به کامپیوتر !!)
  • قابلیت MIDI در/خارج/از طریق (می تواند به عنوان رابط USB midi استفاده شود!)
  • ساعت MIDI جزئی و پشتیبانی MTC (کار بر روی کنترل MMC و DAW)

این قطعاً یکی از پیچیده ترین پروژه هایی است که من روی آن کار کرده ام ، صحبت کردن در مورد 17 رجیستر شیفت خروجی ، 6 رجیستر شیفت ورودی ، 2X 16 کاناله مولتی پلکسر که بر روی برد کار می کنند ، من نمی دانم که چیست و کجا به علاوه هرگز اشتباه نکرده ام با شیفت رجیستر / مالتی پلکسر قبل از ……

این کار به عنوان خرید غیرمنتظره eBay شروع شد ، من واقعاً دستگاه Native Instruments Maschine را می خواستم ، زیرا من همیشه پد های درام را در مقایسه با آنهایی که در استودیوی MPC متعلق به من بود دوست داشتم ، بنابراین وقتی یک خرابکار را در eBay با قیمت 40 پوند دیدم ، فکر کردم من با بدترین سناریو می توانم آن را برطرف کنم "اگر نتوانم آن را برطرف کنم ، من یک Arduino DUE دارم و تعدادی UNO در اطراف دروغ می گویند ، همیشه می توانم هک کنم"

من به هر حال آن پدهای طبل را خیلی دوست دارم !!!!

تدارکات

1 x معیوب Native Instruments Maschine MK2

1 x آردوینو به دلیل.

17 x SN74HC595 - ثبت کننده های خروجی 8 بیتی

6 x SN74HC165 - ثبت کننده های شیفت ورودی 8 بیتی

2 x 74HC4067 - مالتی پلکسر 16 کاناله.

2 صفحه نمایش 3.2 اینچی OLED 256x64.

مقداری سیم تخت (کابل فلاپی قدیمی کار می کند)

مرحله 1: تعمیر

فروشنده eBay به اندازه کافی مهربان بود که ایده ای از آنچه در توضیحات انتظار می رود ارائه دهد و پورت USB را حذف کرده بود. برد دچار ولتاژ بیش از حد شده و روشن نمی شود. نشانه مولتی متر…. به نظر می رسید که برد کوتاه است. "من قبلاً بی شماری مادربرد را با شورت تعمیر کرده ام ، چقدر سخت می تواند باشد؟؟!" معلوم شد که این بیش از حد ولتاژ (و احتمالاً تا حدی طراحی برد) ، تقریباً همه را برداشته است جزء روی برد شامل CPU اصلی این تابلو واقعاً بد بود!

من با مولتی مترم به پیشروی و ضربه زدن ادامه دادم ، کمی روی اجزا تحقیق کردم و فهمیدم که هر کدام چه کار می کنند بعلاوه NI کار بسیار خوبی را انجام داده است که با نقاط تست مختلف در اطراف مادربرد کارها را کاملاً واضح کرده است.

مرحله 2: هک

هک
هک
هک
هک
هک
هک

با دانستن اینکه من باید همه چیز را در CPU اصلی (که نیازی به آن نیست) جایگزین کنم ، به eBay مراجعه کردم. خوشبختانه همه چیز مورد نیاز ارزان بود ، بنابراین سفارش تعداد زیادی از آنها سرگرم کننده بود. ؟

17 x SN74HC595 - ثبت کننده های خروجی 8 بیتی

17 رجیستر شیفت خروجی برای کنترل LED های چند رنگ درام پد و همه LED های دکمه استفاده می شود (دقیقاً 136 !!) استفاده از اینها واقعاً آسان است و به سرعت یک کتابخانه با استفاده از Arduino IDE پیدا کردم تا خودم را در ساختن آن نجات دهم… به هم زنجیر شده اند.

6 x SN74HC165 - ثبت کننده شیفت ورودی 8 بیتی

این رجیسترهای شیفت ورودی برای چندین ورودی در 1 کانال عالی هستند. در کل 48 دکمه وجود دارد.

2 x 74HC4067 - مالتی پلکسر 16 کاناله

ما 16 پد داریم و 8 دستگیره باقی مانده است که این نیز آنالوگ است. من استفاده از اینها را آسان تر دیدم زیرا آنهایی که روی برد 8 کاناله بودند و در پیدا کردن جایی که می توان پین های داده را به هم متصل کرد ، مشکل داشتم … cue spaghetti junction….

2 صفحه نمایش 3.2 اینچی OLED 256x64

باید چند صفحه داشته باشد !!! من نتوانستم هیچ اطلاعاتی در مورد صفحه نمایش های LCD اصلی که در دستگاه NI Maschine آمده بود پیدا کنم و دیگر نمی توانم از دست دادن وقت خود راضی باشم ، بنابراین تصمیم گرفتم مقداری از چین را سفارش دهم … برای کارکردن آنها از کتابخانه UG8x8 استفاده کردم. صفحه های جدید کمی کوچکتر از نسخه اصلی بودند ، بنابراین من فقط "بد" ها را خالی کردم.

1 x آردوینو به دلیل

من این را مدتی دراز کشیده بودم و منتظر پروژه ای بودم که به اندازه کافی با این همه قدرت باشد !! با مشکلی روبرو شدم ، به نظر می رسد برخی از تجدید نظر در این تابلوها دارای یک مشکل تنظیم مجدد هستند که به این معنی است که من مجبور هستم گاهی اوقات دکمه تنظیم مجدد را فشار دهم تا بعد از بارگذاری یک طرح ، مورد اجرا شود. این به راحتی با یک مقاومت 10K برطرف شد (یک پست در انجمن Arduino در این مورد وجود دارد).

مرحله 3: کد

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

راه اندازی و راه اندازی میدی USB آسان بود و چند دقیقه طول کشید. LED ها مدتی طول کشید و من مجبور شدم طرحی را ایجاد کنم که هر پین را به صورت تدریجی در فواصل 1 ثانیه تنظیم کند و یادداشتی را انجام دهد.

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

من می خواستم یک ترتیب سنج و قابلیت ضبط بدون نیاز به کامپیوتر داشته باشم ، اطلاعاتی در مورد نحوه تبدیل BPM به ms پیدا کردم و یک کتابخانه تایمر Arduino DUE عالی پیدا کردم.

با استفاده از کتابخانه تایمر من قادر به تنظیم ورودی های خواندن و موارد در فواصل زمانی:

Pads @ 1ms - من این را برای ایجاد بهترین تعادل بین مصنوعات پاسخ / خروج از گزاف گویی پیدا کردم.

دکمه ها @ 40ms - من از یک کتابخانه صف استفاده کردم تا هیچ پرس از دست نرود.

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

Midi stuff @BPM (در ms) - برای تعیین توالی ، در BPM مورد نظر یک تابع نامیده می شود که به روز رسانی هایی که یادداشت ETC باید پخش شوند را افزایش می دهد و شمارنده ضربان را افزایش می دهد.

مرحله 4: نتیجه گیری

نتیجه
نتیجه

مطمئن نیستم که در اینجا چه کار کرده ام ، اما بسیار افتخار می کنم ، پدها بسیار عالی پاسخ می دهند ، من مجبور شدم با زمانبندی کنار بیایم تا تعادل مناسب را با مسائل پاسخگویی و نادیده گرفتن به دست آورم. توالی بسیار عالی عمل می کند و هنگامی که پشتیبانی DAW را دریابم ، می توانم این مورد را به طور کامل در گردش کار خود ادغام کنم و بتوانم چیزهایی را در کنترلری که همیشه می خواستم اضافه کنم! آشنایی با C ، درک مهندسی معکوس و نحوه عملکرد مولتی پلکسرها ، رجیسترهای شیفت و تعیین توالی MIDI. من همچنان به بهبود کد اصلی ادامه می دهم و ممکن است روزی آن را به عنوان طراح ریتم منبع باز منتشر کنم.

نکات:

من نحوه تغییر نام USB DUE را با ویرایش یکی از فایل های سرصفحه در پوشه Arduino/SAM پیدا کردم.

MIDI-OX یک ابزار عالی برای آزمایش عملکرد Midi است

پیوندها:

www.usb.org/sites/default/files/midi10.pdf - USB MIDI Spechttps://midi.teragonaudio.com/tech/miditech.htm https://guitargearfinder.com/guides/convert-ms -mi… اطلاعاتی در مورد نحوه تبدیل BPM به ms

travis-ci.com/SMFSW/Queue - برای ورودی های دکمه تا هیچ گونه فشار را از دست ندهیم!

github.com/olikraus/u8g2/wiki/u8x8referenc… - lib UG8 برای صفحه های LED/LCD

github.com/ivanseidel/DueTimer/releases - Arduino DUE Timing lib

www.pjrc.com/teensy/td_libs_Encoder.html - رمزگذار Lib برای دستگیره بزرگ

shiftregister.simsso.de/ - ShiftIn Register lib - ایجاد شده توسط هنریک هاینه ، 24 جولای 2016

forum.arduino.cc/index.php؟topic=57636.0 - موارد کد زمان MIDI

توصیه شده: