Мазмұны:

Тікелей цифрлық синтез (DDS) чипі бар MIDI басқарылатын қадамдық қозғалтқыш: 3 қадам
Тікелей цифрлық синтез (DDS) чипі бар MIDI басқарылатын қадамдық қозғалтқыш: 3 қадам

Бейне: Тікелей цифрлық синтез (DDS) чипі бар MIDI басқарылатын қадамдық қозғалтқыш: 3 қадам

Бейне: Тікелей цифрлық синтез (DDS) чипі бар MIDI басқарылатын қадамдық қозғалтқыш: 3 қадам
Бейне: Цифрлы болашақ және Телевидениенің күйреуі. 2024, Желтоқсан
Anonim
Тікелей цифрлық синтез (DDS) чипі бар MIDI басқарылатын қадамдық қозғалтқыш
Тікелей цифрлық синтез (DDS) чипі бар MIDI басқарылатын қадамдық қозғалтқыш
Тікелей цифрлық синтез (DDS) чипі бар MIDI басқарылатын қадамдық қозғалтқыш
Тікелей цифрлық синтез (DDS) чипі бар MIDI басқарылатын қадамдық қозғалтқыш
Тікелей цифрлық синтез (DDS) чипі бар MIDI басқарылатын қадамдық қозғалтқыш
Тікелей цифрлық синтез (DDS) чипі бар MIDI басқарылатын қадамдық қозғалтқыш
Тікелей цифрлық синтез (DDS) чипі бар MIDI басқарылатын қадамдық қозғалтқыш
Тікелей цифрлық синтез (DDS) чипі бар MIDI басқарылатын қадамдық қозғалтқыш

Мини жобаға айналдыру керек деген жаман ой болды ма? Мен AD9833 тікелей цифрлық синтез (DDS) модулімен музыка жасауға арналған Arduino Due үшін жасаған эскизмен ойнап жүрдім … және мен бір сәтте: «мүмкін, мен моторды/драйверді орнатуым керек шығар деп ойладым. бұл «. Дәл осы идея нанға негізделген шағын жобаны тудырды.

Бұл жобаға Arduino Due-ді басқару үшін MIDI-USB арқылы және AD9833 модулі мен қадамдық драйвер арасында квадраттық толқындарды жіберуге арналған код қосылады. Сондай -ақ, оны Arduino Due -ге қосудың схемасы мен негізгі нұсқаулары болады.

Жабдықтар:

Бұл жоба үшін сізге қажет:

Arduino Due

ЕСКЕРТПЕ: код мерзімі үшін жазылған, бірақ ол жұмыс істеуі және/немесе нөлге бейімделуі керек. Ол жергілікті USB портын қажет ететін Arduino MIDIUSB кітапханасын пайдаланады.

дәнекерлемейтін тақта + секіргіштер

AD9833 үзіліс модулі

A4988 қадамдық драйвері (немесе ұқсас)

NEMA 17 қадамдық қозғалтқышы (немесе ұқсас)

- 24В қуат көзі (ескеріңіз, мен 24 вольт мәнін таңдадым, себебі ол қадамдық қозғалтқыштың номиналды кернеуінен үлкен болды. Егер сіз үлкен қозғалтқышты қолдансаңыз, сіздің іске асыруыңыз басқаша болуы мүмкін)

1 -қадам: Нан тарату

Breadboard
Breadboard

Мұның негізгі идеясы - тікелей цифрлық синтез IC қадамдық мотор жүргізушісінің «сатылы» түйреуішін басқару үшін шаршы толқын жасайды. Бұл қадамдық драйвер моторды белгіленген дыбыстық жиілікте қозғайды. Қозғалтқыштың бағыты, егер ол дұрыс жиілікте жүрсе, біршама ерікті.

Нан тақтасын таңдаған әдіс-алдымен қуат түйреуіштері мен негіздерін іске қосу, содан кейін барлық басқа қосылмайтын қосылымдарды іске қосу.

Жер:

- AD9833 модулінің AGND және DGND түйреуіштерін нан тақтасындағы GND рельсіне жалғаңыз.

- GND рельсіне қадамдық жүргізушідегі екі GND түйреуішін жалғаңыз

- Мұны Arduino Due GND пиндерінің біріне апарыңыз

3.3В қуаты:

- Stepper драйверінің VDD түйреуішін V+ Rail тақтасына қосыңыз

- AD9833 модулінің VCC түйреуішін V+ Rail тақтасына қосыңыз

- Мұны Arduino Due 3.3V түйреуішіне жеткізіңіз

24В қуаты:

- VMOT түйреуішін 24 В тұрақты ток көзіне қосыңыз (сіздің таңдауыңыз бойынша қозғалтқышты таңдау үшін сізге жоғары немесе төмен қорек рельсін қосуға болады)

Модульден модульге қосылу:

- AD9833 модулінен шығыс штырын мотор драйверінің STEP істігіне жалғаңыз

Қадамдық драйвер қосылымдары:

- Stepper Motor қосылымдарын 2B/2A/1A/1B істіктеріне жалғаңыз. Полярлық маңызды емес, егер драйвер фазалары қадамдық қозғалтқыштың фазаларына сәйкес келсе.

- RESET және SLEEP түйреуіштерін біріктіріп, оларды Arduino Due Pin 8 -ге апарыңыз.

- DIR түйреуішін 3.3В рельске қосыңыз

AD9833 модульдік қосылымдары:

- SCLK -ті Arduino Due SCK түйреуішіне қосыңыз. Назар аударыңыз, бұл түйін қалыпты сыртқы әйел тақырыптарында емес, микроконтроллер жанындағы 6 істікшелі ICSP тақырыбында.

- SDATA түйреуішін Due MOSI түйреуішіне қосыңыз. Назар аударыңыз, бұл түйін қалыпты сыртқы әйел тақырыптарында емес, микроконтроллер жанындағы 6 істікшелі ICSP тақырыбында.

- FSYNC -ті Arduino Due Pin 6 -ге қосыңыз (бұл осы жобаға арналған Chip Select түйрегіші)

Енді тақта толығымен жиналғандықтан, кодты қараудың уақыты келді!

2 -қадам: бағдарламалау және MIDI орнату

Бағдарламалау және MIDI орнату
Бағдарламалау және MIDI орнату

Қосылған.ino эскизі Arduino Due Native USB порты арқылы USB-MIDI кірістерін қабылдайды және оларды AD9833 дискісін басқару үшін қолданады. Бұл чипте 25 МГц жиіліктегі жиілігі 28 бит болатын жиілік ажыратымдылығы бар DAC бар (мұнда қажет нәрсенің толық асып кетуі) және мұндағы кодтың көп бөлігі оны шаршы толқынды іске қосуға және шығаруға конфигурациялайды.

Ескерту: екі USB порты бар. Біреуі тақтаны бағдарламалау үшін пайдаланылады, ал екіншісі USB арқылы MIDI байланысы үшін пайдаланылады

Назар аударыңыз, бұл эскиз Arduino Uno -дағыдай жұмыс істемейді - бұл жоба Arduino Due немесе оған ұқсас құрылғылардағы жергілікті USB -ге қажеттілігімен ерекшеленеді

Реттеу параметрлері:

- Препроцессор макро анықтамасы бойынша орнатылатын 2 режим бар. Егер «#depine STOPNOTES» өзгеріссіз қалса, қадам жазбалар арасында тоқтайды. Бұл әрқашан қажет емес (мысалы, жылдам арпеджио ойнау), сондықтан бұл мінез -құлықты өзгерту үшін #define операторын өшіріңіз немесе түсініктеме беріңіз, ал степпер ойнатылғаннан кейін үздіксіз жұмыс істейді.

Мен арзан октавалық MIDI пернетақтасын қолданамын, онда октаваның жоғары/төмен түймесі бар, бірақ егер сізде ондай мүмкіндік болмаса, сіз төмендегі жиілікті аударуды 2-ге көбейту немесе бөлу арқылы октава-жылжытуға болады.

MIDI-жиілікке аудару playNote функциясындағы мына жолмен орындалады: int f_out = (int) (27.5*pow (2, ((float) midiNote-33)/12)));

- Мен компьютерді USB MIDI арқылы байланыстыру үшін қолданамын - мұны сүйікті Digital Audio Workstation (DAW) бағдарламалық жасақтамасынан жасауға болады. Егер сізде жоқ болса, бұл жүйені LMMS - ақысыз ашық бастапқы платформа арқылы орнату өте оңай. Орнатылып, іске қосылғаннан кейін Arduino Due -ді MIDI шығыс құрылғысы ретінде орнатыңыз, ал егер сіз USB MIDI пернетақтасын қолдансаңыз, оны кіріс ретінде орнатыңыз.

3 -қадам: тестілеу және эксперимент

Қадамдық моторды ойнайтын уақыт келді!

Жоғарыда айтылғандай, мұның артында барлық идея-бұл эксперимент.

Ұсынылған: