Съдържание:
- Стъпка 1: Breadboarding
- Стъпка 2: Програмиране и MIDI настройка
- Стъпка 3: Тестване и експериментиране
Видео: Стъпков двигател, управляван от MIDI, с чип за директен цифров синтез (DDS): 3 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:49
Някога имали ли сте лоша идея, че просто трябваше да се превърнете в мини проект? Е, играех със скица, която бях направил за 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
Основната идея зад това е, че 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 настройка
Приложената скица.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: Тестване и експериментиране
Време е да играете на своя стъпков двигател!
Както бе посочено, цялата идея зад това беше нещо като експеримент без маншет, така че по всякакъв начин направете свой собствен експеримент!
Препоръчано:
Стъпков двигател Контролиран стъпков двигател без микроконтролер!: 6 стъпки
Стъпков двигател, управляван от стъпков двигател без микроконтролер !: В тази бърза инструкция ще направим прост контролер за стъпков двигател, използващ стъпков двигател. Този проект не изисква сложни схеми или микроконтролер. Така че, без да се замисляме, нека започнем
Стъпков двигател Контролиран стъпков двигател без микроконтролер (V2): 9 стъпки (със снимки)
Стъпков двигател, управляван от стъпков двигател без микроконтролер (V2): В една от предишните ми инструкции, аз ви показах как да управлявате стъпков двигател, използвайки стъпков двигател без микроконтролер. Това беше бърз и забавен проект, но той дойде с два проблема, които ще бъдат решени в тази инструкция. И така, остроумие
Модел локомотив със стъпков двигател - Стъпков двигател като въртящ се енкодер: 11 стъпки (със снимки)
Модел локомотив със стъпков двигател | Стъпков двигател като въртящ се енкодер: В една от предишните инструкции научихме как да използваме стъпков двигател като въртящ се енкодер. В този проект сега ще използваме въртящия се енкодер със стъпков двигател, за да управляваме модел локомотив, използвайки микроконтролер Arduino. Така че, без fu
Стъпков двигател Контролиран стъпков двигател - Стъпков двигател като въртящ се енкодер: 11 стъпки (със снимки)
Стъпков двигател Контролиран стъпков двигател | Стъпков двигател като въртящ се енкодер: Имате ли няколко стъпкови двигателя, които лежат наоколо и искат да направят нещо? В тази инструкция нека използваме стъпков двигател като въртящ се енкодер, за да контролираме позицията на друг стъпков двигател, използвайки микроконтролер Arduino. Така че без да се замисляме, нека да
Как да използвате стъпков двигател като въртящ се енкодер и OLED дисплей за стъпки: 6 стъпки
Как да използвате стъпков двигател като въртящ се енкодер и OLED дисплей за стъпки: В този урок ще се научим как да проследяваме стъпките на стъпковия двигател на OLED дисплея. Гледайте демонстрационен видеоклип. Кредитът за оригиналния урок отива на потребителя на youtube " sky4fly "