فهرست مطالب:

استپر موتور کنترل MIDI با تراشه مستقیم دیجیتال سنتز (DDS): 3 مرحله
استپر موتور کنترل MIDI با تراشه مستقیم دیجیتال سنتز (DDS): 3 مرحله

تصویری: استپر موتور کنترل MIDI با تراشه مستقیم دیجیتال سنتز (DDS): 3 مرحله

تصویری: استپر موتور کنترل MIDI با تراشه مستقیم دیجیتال سنتز (DDS): 3 مرحله
تصویری: MKS Monster8 - Basics 2024, نوامبر
Anonim
استپر موتور کنترل MIDI با تراشه سنتز مستقیم دیجیتال (DDS)
استپر موتور کنترل MIDI با تراشه سنتز مستقیم دیجیتال (DDS)
استپر موتور کنترل MIDI با تراشه سنتز مستقیم دیجیتال (DDS)
استپر موتور کنترل MIDI با تراشه سنتز مستقیم دیجیتال (DDS)
استپر موتور کنترل MIDI با تراشه دیجیتال سنتز مستقیم (DDS)
استپر موتور کنترل MIDI با تراشه دیجیتال سنتز مستقیم (DDS)
استپر موتور کنترل MIDI با تراشه دیجیتال سنتز مستقیم (DDS)
استپر موتور کنترل MIDI با تراشه دیجیتال سنتز مستقیم (DDS)

آیا تا به حال تصور بدی داشته اید که فقط باید به یک پروژه کوچک تبدیل شوید؟ خوب ، من با یک طرح که برای Arduino Due ساخته بودم با هدف ساخت موسیقی با ماژول AD9833 Direct Digital Synthesis (DDS) بازی می کردم … و در نقطه ای فکر کردم "سلام ، شاید باید یک موتور/راننده پله ای را تنظیم کنم تا این". و این ایده دقیقاً همان چیزی است که این پروژه کوچک مبتنی بر نان را برانگیخت.

در این پروژه تعدادی کد برای استفاده از MIDI-over-USB برای کنترل Arduino Due و ارسال امواج مربع بین یک ماژول AD9833 و درایور استپر ارائه شده است. همچنین یک نمودار و دستورالعمل های اساسی برای اتصال این دستگاه به Arduino Due وجود خواهد داشت.

تدارکات:

آنچه برای این پروژه نیاز دارید:

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

توجه: کد برای Due نوشته شده است ، اما باید کار کند و/یا برای Zero اقتباس شود. از کتابخانه MIDIUSB آردوینو استفاده می کند که به یک پورت USB بومی نیاز دارد.

تخته نان بدون جوش + بلوز

AD9833 ماژول شکست

A4988 Stepper Driver (یا مشابه)

موتور پله ای NEMA 17 (یا مشابه)

- منبع تغذیه 24 ولت (توجه داشته باشید ، من این مقدار 24 ولت را انتخاب کردم زیرا بیشتر از ولتاژ اسمی موتور پله ای بود. اگر از موتور بزرگتر استفاده کنید ممکن است اجرای شما متفاوت باشد)

مرحله 1: تخته نان

تخته نان
تخته نان

ایده اصلی پشت این است که IC Digital Digital Synthesis یک موج مربعی ایجاد می کند تا پین "گام" راننده موتور پله ای را هدایت کند. سپس این راننده پله ای موتور را با فرکانس قابل شنیدن مشخص حرکت می دهد. جهت موتور تا زمانی که در فرکانس صحیح گام بردارد تا حدودی دلخواه است.

رویکردی که من ترجیح می دهم در مورد نان بردینگ داشته باشم این است که ابتدا پین ها و محوطه های برق را اجرا کرده و سپس همه اتصالات دیگر غیر برق را اجرا کنم.

زمین:

- پین AGND و DGND ماژول AD9833 را به ریل GND روی تخته نان متصل کنید.

- دو پین GND را در درایور Stepper به GND Rail وصل کنید

- این را به یکی از پین های GND Arduino Due بیاورید

قدرت 3.3V:

- پین VDD Driver Stepper را به V+ Rail breadboard وصل کنید

- پین VCC ماژول AD9833 را به ریل V+ بردبرد متصل کنید

- این را به پین 3.3V Arduino Due ببرید

قدرت 24 ولت:

- پین VMOT را به منبع تغذیه DC 24V متصل کنید (بسته به نوع موتور شما ، ممکن است بخواهید یک ریل منبع تغذیه بالاتر یا پایین را اجرا کنید)

اتصال ماژول به ماژول:

- پین OUT را از ماژول AD9833 به پین STEP درایور موتور وصل کنید

اتصالات درایور Stepper:

- اتصالات Stepper Motor را به پین های 2B/2A/1A/1B وصل کنید. تا زمانی که مراحل راننده با مراحل استپر موتور مطابقت داشته باشد ، قطبیت چندان مهم نیست.

- پین های RESET و SLEEP را به هم متصل کرده و آنها را به پین 8 آردوینو ببرید.

- پین DIR را به ریل 3.3V متصل کنید

اتصالات ماژول AD9833:

- SCLK را به پین SCK Arduino Due وصل کنید. توجه داشته باشید که این پین در هدر ICSP مردانه 6 پین نزدیک میکروکنترلر قرار دارد ، نه در هدرهای معمولی خارجی زن.

- پین SDATA را به پین MOSI Due وصل کنید. توجه داشته باشید که این پین در هدر ICSP مردانه 6 پین در نزدیکی میکروکنترلر قرار دارد ، نه در هدرهای معمولی خارجی زن.

- FSYNC را به Arduino Due Pin 6 وصل کنید (این پین Chip Select برای این پروژه است)

اکنون که تخته نان کاملاً جمع شده است ، وقت آن است که به کد نگاهی بیندازید!

مرحله 2: برنامه نویسی و راه اندازی MIDI

برنامه نویسی و راه اندازی MIDI
برنامه نویسی و راه اندازی MIDI

طرح.ino متصل شده ورودی های USB-MIDI را از طریق پورت USB بومی Arduino Due دریافت می کند و از آنها برای رانندگی AD9833 استفاده می کند. این تراشه دارای DAC است که با فرکانس 25 مگاهرتز w/ 28 بیت اجرا می شود (بیش از حد اضافی برای آنچه در اینجا مورد نیاز است) ، و بیشتر کد در اینجا پیکربندی آن برای اجرا و خروجی یک موج مربعی است.

توجه: دو پورت USB وجود دارد. یکی برای برنامه نویسی برد استفاده می شود و دیگری برای MIDI-over-USB comm

توجه داشته باشید که این طرح مانند Arduino Uno کار نمی کند - این پروژه به دلیل نیاز به USB بومی در Arduino Due یا دستگاه های مشابه ، خاص است

گزینه های سفارشی سازی:

- 2 حالت وجود دارد که می توان آنها را با تعریف کلان پیش پردازنده تنظیم کرد. اگر "#تعریف STOPNOTES" دست نخورده باقی بماند ، گام بین یادداشت ها متوقف می شود. این همیشه مطلوب نیست (به عنوان مثال ، بازی آرپژهای سریع) ، بنابراین برای تغییر این رفتار ، به سادگی آن عبارت #define را حذف یا اظهارنظر کنید و استپر پس از پخش به طور مداوم اجرا می شود.

-من از یک صفحه کلید MIDI 2 اکتاو ارزان با این دکمه اکتاو بالا/پایین استفاده می کنم ، اما در صورتی که این گزینه را ندارید ، می توانید ترجمه فرکانس زیر را با ضرب یا تقسیم بر توان 2 به صورت اکتاو تغییر دهید.

ترجمه MIDI به فرکانس با این خط در تابع playNote انجام می شود: int f_out = (int) (27.5*pow (2، ((float) midiNote-33)/12))؛

- من تمایل دارم از رایانه خود برای برقراری ارتباط از طریق USB MIDI استفاده کنم - شما می توانید این کار را از نرم افزار مورد علاقه خود در Digital Workstation Digital (DAW) انجام دهید. اگر چنین دستگاهی ندارید ، راه اندازی این سیستم با استفاده از LMMS - یک پلتفرم منبع باز و رایگان ، بسیار آسان است. پس از نصب و اجرا ، به سادگی Arduino Due را به عنوان دستگاه خروجی MIDI تنظیم کنید و اگر از صفحه کلید USB MIDI استفاده می کنید ، آن را به عنوان ورودی تنظیم کنید.

مرحله 3: آزمایش و آزمایش

زمان بازی استپر موتور شما فرا رسیده است!

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

توصیه شده: