فهرست مطالب:
تصویری: استپر موتور کنترل MIDI با تراشه مستقیم دیجیتال سنتز (DDS): 3 مرحله
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:51
آیا تا به حال تصور بدی داشته اید که فقط باید به یک پروژه کوچک تبدیل شوید؟ خوب ، من با یک طرح که برای 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
طرح.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: آزمایش و آزمایش
زمان بازی استپر موتور شما فرا رسیده است!
همانطور که گفته شد ، کل ایده پشت این یک نوع آزمایش خارج از دست بود ، بنابراین به هر حال ، خودتان آزمایش کنید!
توصیه شده:
استپر موتور کنترل شده استپر موتور بدون میکروکنترلر!: 6 مرحله
موتور پله ای پله ای کنترل شده بدون میکروکنترلر !: در این دستورالعمل سریع ، ما یک کنترل کننده ساده موتور پله ای را با استفاده از موتور پله ای می سازیم. این پروژه نیازی به مدار پیچیده یا میکروکنترلر ندارد. بنابراین ، بدون هیچ گونه توضیح بیشتر ، بیایید شروع کنیم
موتور پله ای کنترل شده استپر موتور بدون میکروکنترلر (V2): 9 مرحله (همراه با تصاویر)
موتور پله ای کنترل شده استپر موتور بدون میکروکنترلر (V2): در یکی از دستورالعمل های قبلی من ، نحوه کنترل موتور پله ای با استفاده از موتور پله ای بدون میکروکنترلر را به شما نشان دادم. این یک پروژه سریع و سرگرم کننده بود اما با دو مشکل همراه بود که در این دستورالعمل حل خواهد شد. بنابراین ، عاقل
لوکوموتیو مدل کنترل شده با موتور پله ای - استپر موتور به عنوان رمزگذار روتاری: 11 مرحله (همراه با تصاویر)
لوکوموتیو مدل کنترل شده با موتور پله ای | موتور پله ای به عنوان رمزگذار روتاری: در یکی از دستورالعمل های قبلی ، نحوه استفاده از موتور پله ای به عنوان رمزگذار چرخشی را آموختیم. در این پروژه ، ما اکنون از آن موتور پله ای رمزگذار چرخشی استفاده می کنیم تا یک لوکوموتیو مدل را با استفاده از میکروکنترلر آردوینو کنترل کنیم. بنابراین ، بدون فو
استپر موتور کنترل شده استپر موتور - استپر موتور به عنوان رمزگذار روتاری: 11 مرحله (همراه با تصاویر)
استپر موتور کنترل شده استپر موتور | استپر موتور به عنوان رمزگذار روتاری: آیا چند موتور پله ای در اطراف شما خوابیده است و می خواهید کاری انجام دهید؟ در این دستورالعمل ، بیایید از یک موتور پله ای به عنوان یک رمزگذار چرخشی برای کنترل موقعیت یک موتور پله ای دیگر با استفاده از میکروکنترلر آردوینو استفاده کنیم. بنابراین بدون هیچ گونه توضیح بیشتر ، اجازه دهید
نحوه کنترل موتور DC بدون برس بدون کوادکوپتر بدون سرنشین (3 نوع سیم) با استفاده از کنترل کننده سرعت موتور HW30A و Arduino UNO: 5 مرحله
نحوه کنترل موتور DC بدون برس بدون کوادکوپتر بدون سرنشین (3 نوع سیم) با استفاده از کنترل کننده سرعت موتور HW30A و Arduino UNO: توضیحات: کنترل کننده سرعت موتور HW30A را می توان با باتری های 4-10 NiMH/NiCd یا 2-3 سلولی LiPo استفاده کرد. BEC با حداکثر 3 سلول LiPo کاربردی است. می توان از آن برای کنترل سرعت موتور DC بدون برس (3 سیم) با حداکثر حداکثر 12Vdc استفاده کرد. مخصوص