Мазмұны:
Бейне: Тікелей цифрлық синтез (DDS) чипі бар MIDI басқарылатын қадамдық қозғалтқыш: 3 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:22
Мини жобаға айналдыру керек деген жаман ой болды ма? Мен AD9833 тікелей цифрлық синтез (DDS) модулімен музыка жасауға арналған Arduino Due үшін жасаған эскизмен ойнап жүрдім … және мен бір сәтте: «мүмкін, мен моторды/драйверді орнатуым керек шығар деп ойладым. бұл «. Дәл осы идея нанға негізделген шағын жобаны тудырды.
Бұл жобаға Arduino Due-ді басқару үшін MIDI-USB арқылы және AD9833 модулі мен қадамдық драйвер арасында квадраттық толқындарды жіберуге арналған код қосылады. Сондай -ақ, оны Arduino Due -ге қосудың схемасы мен негізгі нұсқаулары болады.
Жабдықтар:
Бұл жоба үшін сізге қажет:
Arduino Due
ЕСКЕРТПЕ: код мерзімі үшін жазылған, бірақ ол жұмыс істеуі және/немесе нөлге бейімделуі керек. Ол жергілікті USB портын қажет ететін Arduino MIDIUSB кітапханасын пайдаланады.
дәнекерлемейтін тақта + секіргіштер
AD9833 үзіліс модулі
A4988 қадамдық драйвері (немесе ұқсас)
NEMA 17 қадамдық қозғалтқышы (немесе ұқсас)
- 24В қуат көзі (ескеріңіз, мен 24 вольт мәнін таңдадым, себебі ол қадамдық қозғалтқыштың номиналды кернеуінен үлкен болды. Егер сіз үлкен қозғалтқышты қолдансаңыз, сіздің іске асыруыңыз басқаша болуы мүмкін)
1 -қадам: Нан тарату
Мұның негізгі идеясы - тікелей цифрлық синтез 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 орнату
Қосылған.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 -қадам: тестілеу және эксперимент
Қадамдық моторды ойнайтын уақыт келді!
Жоғарыда айтылғандай, мұның артында барлық идея-бұл эксперимент.
Ұсынылған:
Микроконтроллерсіз қадамдық мотор басқарылатын қадамдық қозғалтқыш!: 6 қадам
Микроконтроллерсіз қадамдық мотор басқарылатын қадамдық қозғалтқыш! Бұл жоба күрделі схеманы немесе микроконтроллерді қажет етпейді. Сондықтан көп созбай, бастайық
Қадамдық мотор микроконтроллерсіз басқарылатын қадамдық қозғалтқыш (V2): 9 қадам (суреттермен)
Микроконтроллерсіз қадамдық мотормен басқарылатын қадамдық қозғалтқыш (V2): Мен алдыңғы нұсқаулықтардың бірінде микроконтроллерсіз сатылы қозғалтқышты пайдаланып, қадамдық қозғалтқышты қалай басқаруға болатынын көрсеттім. Бұл тез әрі қызықты жоба болды, бірақ ол осы нұсқаулықта шешілетін екі мәселемен келді. Сонымен, ақылды
Қадамдық мотор басқарылатын қадамдық мотор - Қадамдық мотор айналмалы кодер ретінде: 11 қадам (суреттермен)
Қадамдық мотор басқарылатын қадамдық мотор | Қадамдық мотор айналмалы кодер ретінде: Бірнеше қадамдық қозғалтқыштар жатып, бірдеңе жасағысы келеді ме? Бұл нұсқаулықта Arduino микроконтроллерінің көмегімен басқа қадамдық қозғалтқыштың орнын басқару үшін айналмалы кодер ретінде қадамдық қозғалтқышты қолданайық. Сонымен, көп созбай, келейік
Жарықпен басқарылатын қадамдық қозғалтқыш + Қабырға кронштейні/стенд: 6 қадам
Жарықпен басқарылатын қадамдық қозғалтқыш + қабырға кронштейні/стенд: Бұл стенд бөлмедегі жарық деңгейіне сәйкес перделерді автоматты түрде басқаруға арналған Arduino басқарылатын қадамдық қозғалтқышты орналастыру үшін қолданылады. Сондай -ақ, жарық деңгейін басып шығару үшін СКД экранын қосуға болады. 3D құрал тек демонстрацияға арналған
Қадамдық қозғалтқыш (қадамдық қозғалтқыш): Microstep (5 қадам)
التحكم بالمحرك الخطوي (Stepper Motor) بطريقة (Microstep): في هذه المدونة اتحدث عن كيف نقوم بالتحكم بماتور خطوي عن طلق الله