Съдържание:

Стъпков двигател, управляван от MIDI, с чип за директен цифров синтез (DDS): 3 стъпки
Стъпков двигател, управляван от MIDI, с чип за директен цифров синтез (DDS): 3 стъпки

Видео: Стъпков двигател, управляван от MIDI, с чип за директен цифров синтез (DDS): 3 стъпки

Видео: Стъпков двигател, управляван от MIDI, с чип за директен цифров синтез (DDS): 3 стъпки
Видео: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 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.

Консумативи:

Какво ви е необходимо за този проект:

Arduino Due

ЗАБЕЛЕЖКА: Кодът е написан за Due, но също така трябва да работи и/или да бъде адаптиран за нулата. Той използва библиотеката MIDIUSB на Arduino, която изисква собствен USB порт.

Непояна платка + джъмпери

AD9833 Breakout модул

A4988 Стъпков драйвер (или подобен)

Стъпков двигател NEMA 17 (или подобен)

- 24V захранване (забележете, избрах тази стойност от 24 волта, защото беше по -голямо от номиналното напрежение на стъпковия двигател. Вашето изпълнение може да е различно, ако използвате по -голям двигател)

Стъпка 1: Breadboarding

Breadboarding
Breadboarding

Основната идея зад това е, че IC с директен цифров синтез ще генерира квадратна вълна за задвижване на "стъпковия" щифт на шофьора на стъпков двигател. След това този стъпков драйвер ще движи двигателя с определената звукова честота. Посоката на двигателя е донякъде произволна, стига да стъпва на правилната честота.

Подходът, който предпочитам да използвам при създаването на чертежи, е първо да пусна контактите за захранване и основания и след това да започна да изпълнява всички останали връзки без захранване.

Земя:

- Свържете щифтовете AGND и DGND на модула AD9833 към шината GND на макета.

- Свържете двата GND щифта на стъпковия драйвер към GND шината

- Пренесете това на един от GND щифтовете на Arduino Due

3.3V мощност:

- Свържете VDD щифта на стъпковия драйвер към V+ шината на платката

- Свържете VCC щифта на модула AD9833 към V+ шината на платката

- Пренесете това към 3.3V Pin на Arduino Due

24V мощност:

- Свържете щифта VMOT към 24V DC захранване (в зависимост от вашия избор на двигател, може да искате да пуснете по -висока или по -ниска захранваща шина)

Връзка модул към модул:

- Свържете изходния извод от модула AD9833 към щифта STEP на драйвера на двигателя

Връзки на стъпков драйвер:

- Свържете връзките на стъпков двигател към щифтовете 2B/2A/1A/1B. Полярността не е толкова важна, стига фазите на драйвера да съвпадат с тези на стъпковия двигател.

- Свържете щифтовете RESET и SLEEP заедно и ги пренесете към Arduino Due Pin 8.

- Свържете DIR щифта към 3.3V шина

Връзки на модул AD9833:

- Свържете SCLK към SCK щифта на Arduino Due. Обърнете внимание, че този щифт е на 6-пинов мъжки ICSP хедър близо до микроконтролера, а не на нормалните външни женски заглавки.

- Свържете SDATA Pin към MOSI щифта на Due. Обърнете внимание, че този щифт е на 6-пинов мъжки ICSP хедър близо до микроконтролера, а не на нормалните външни женски заглавки.

- Свържете FSYNC към Arduino Due Pin 6 (това е щифтът за избор на чип за този проект)

Сега, когато макетът е напълно сглобен, е време да разгледаме кода!

Стъпка 2: Програмиране и MIDI настройка

Програмиране и MIDI настройка
Програмиране и MIDI настройка

Приложената скица.ino ще приема USB-MIDI входове през родния USB порт на Arduino Due и ще ги използва за задвижване на AD9833. Този чип има DAC, който работи на 25MHz w/ 28 бита честотна разделителна способност (общо превишаване за това, което е необходимо тук), и голяма част от кода тук го конфигурира за работа и извеждане на квадратна вълна.

Забележка: има два USB порта. Единият се използва за програмиране на платката, а другият ще се използва за MIDI-през-USB комуникация

Обърнете внимание, че тази скица няма да работи както е в Arduino Uno - този проект е специфичен по своята нужда от родния USB в Arduino Due или подобни устройства

Опции за персонализиране:

- Има 2 режима, които могат да бъдат зададени чрез дефиниция на макрос на препроцесора. Ако "#define STOPNOTES" остане непокътнат, стъпката ще спре между бележките. Това не винаги е желателно (например да играете бързи арпеджио), така че за да промените това поведение, просто изтрийте или коментирайте това #define изявление и степерът ще се изпълнява непрекъснато, след като се играе.

-Използвам евтина 2-октавна MIDI клавиатура с тази, която има октавен бутон нагоре/надолу, но в случай, че нямате тази опция, можете да изместите октавата по-долу честотния превод, като умножите или разделите на степента на 2.

Преводът от MIDI към честота се извършва с този ред във функцията playNote: int f_out = (int) (27,5*pow (2, ((float) midiNote-33)/12));

- Склонен съм да използвам компютъра си за свързване през USB MIDI - можете да направите това от любимия си софтуер за цифрова аудио работна станция (DAW). Ако нямате такава, е доста лесно да настроите тази система с помощта на LMMS - безплатна платформа с отворен код. След като е инсталиран и стартиран, просто задайте Arduino Due като MIDI изходно устройство и ако използвате USB MIDI клавиатура, задайте го като вход.

Стъпка 3: Тестване и експериментиране

Време е да играете на своя стъпков двигател!

Както бе посочено, цялата идея зад това беше нещо като експеримент без маншет, така че по всякакъв начин направете свой собствен експеримент!

Препоръчано: