Мазмуну:

Түз Санариптик Синтез (DDS) чипи менен MIDI көзөмөлдөгөн Stepper мотору: 3 кадам
Түз Санариптик Синтез (DDS) чипи менен MIDI көзөмөлдөгөн Stepper мотору: 3 кадам

Video: Түз Санариптик Синтез (DDS) чипи менен MIDI көзөмөлдөгөн Stepper мотору: 3 кадам

Video: Түз Санариптик Синтез (DDS) чипи менен MIDI көзөмөлдөгөн Stepper мотору: 3 кадам
Video: Санариптик өнүктүрүү министрлигине өткөн ишканаларды текшерүү сунушталды 2024, Ноябрь
Anonim
Түз Санариптик Синтез (DDS) микросхемасы менен MIDI көзөмөлдөгөн Step Motor
Түз Санариптик Синтез (DDS) микросхемасы менен MIDI көзөмөлдөгөн Step Motor
Түз Санариптик Синтез (DDS) микросхемасы менен MIDI көзөмөлдөгөн Step Motor
Түз Санариптик Синтез (DDS) микросхемасы менен MIDI көзөмөлдөгөн Step Motor
Түз Санариптик Синтез (DDS) микросхемасы менен MIDI көзөмөлдөгөн Step Motor
Түз Санариптик Синтез (DDS) микросхемасы менен MIDI көзөмөлдөгөн Step Motor
Түз Санариптик Синтез (DDS) микросхемасы менен MIDI көзөмөлдөгөн Step Motor
Түз Санариптик Синтез (DDS) микросхемасы менен MIDI көзөмөлдөгөн Step Motor

Сиз качандыр бир убакта мини проектке айланышыңыз керек деген жаман ойго келдиңиз беле? Ооба, мен AD9833 Direct Digital Synthesis (DDS) модулу менен музыка жасоого багытталган Arduino Due үчүн жасаган эскизим менен ойноп жүрдүм … бул . Жана бул идея тактага негизделген кичинекей долбоорго себеп болду.

Бул долбоорго Arduino Due'ди көзөмөлдөө жана AD9833 модулу менен тепкич драйверинин ортосунда төрт бурчтуу толкундарды жөнөтүү үчүн USB аркылуу MIDIди колдонуу коду киргизилген. Муну Arduino Due менен туташтыруу үчүн диаграмма жана негизги көрсөтмөлөр да болот.

Берилиштер:

Бул долбоор үчүн сизге эмне керек:

Arduino Due

ЭСКЕРТҮҮ: Код мөөнөт үчүн жазылган, бирок ал иштеши жана/же нөлгө ылайыкташтырылышы керек. Бул жергиликтүү USB портун талап кылган Arduino MIDIUSB китепканасын колдонот.

Solderless Breadboard + секирүүчүлөр

AD9833 Breakout модулу

A4988 Stepper Driver (же окшош)

NEMA 17 Stepper Motor (же окшош)

- 24V электр менен камсыздоо (эскертүү, мен бул номиналдык степпердик мотор чыңалуусунан чоңураак болгондуктан 24 вольттун маанисин тандадым. Эгер чоңураак моторду колдонсоңуз, сиздин ишке ашырууңуз башкача болушу мүмкүн)

1 -кадам: Breadboarding

Breadboarding
Breadboarding

Мунун артында турган негизги идея, Түз Санарип Синтез IC степпердик мотор айдоочусунун "кадам" төөнөгүчүн айдап чыгуу үчүн төрт бурчтуу толкунду жаратат. Бул тепкич айдоочу моторду белгиленген угулган жыштыкта жылдырат. Мотордун багыты туура жыштыкта баскандай эле бир аз өзүм билемдикке жатат.

Банборд менен иштөөнү жактырган ыкма-бул биринчи кезекте электр казыктарын жана негиздерди иштетүү, андан кийин башка бардык, кубаттуу эмес туташууларды иштетүү.

Жер:

- AD9833 модулунун AGND жана DGND пиндерин нан тактасындагы GND темир жолуна туташтырыңыз.

- GND темир жолуна Stepper айдоочусунда эки GND пинди туташтырыңыз

- Муну Arduino Due GND пиндеринин бирине алып келиңиз

3.3V кубаты:

- Stepper айдоочусунун VDD пинин панельдеги V+ Railке туташтырыңыз

- AD9833 модулунун VCC пинин панелдин V+ Railке туташтырыңыз

- Муну Arduino Due'дин 3.3V пинине алып келиңиз

24V кубаты:

- VMOT пинин 24V DC энергия булагына туташтырыңыз (мотор тандооңузга жараша, сиз жогорку же төмөнкү камсыздоо темир жолун иштетишиңиз мүмкүн)

Модулдан модулга туташуу:

- AD9833 модулунан OUT пинин мотор айдоочусунун STEP пинине туташтырыңыз

Stepper Driver Connections:

- Stepper Motor байланыштарын 2B/2A/1A/1B Pinsке туташтырыңыз. Айдоочунун фазалары Степпер Моторунун фазаларына дал келгенче, полярдуулук анча маанилүү эмес.

- RESET жана SLEEP пиндерин бириктирип, аларды Arduino Due Pin 8ге алып келиңиз.

- DIR пинин 3.3V темир жолуна туташтырыңыз

AD9833 модулу туташуулары:

- SCLKти Arduino Due'дин SCK пинине туташтырыңыз. Көңүл буруңуз, бул пин кадимки сырткы ургаачы аталыштарда эмес, микроконтроллердин жанындагы 6-шиштүү ICSP аталышында.

- SDATA пинин Due MOSI пинине туташтырыңыз. Көңүл буруңуз, бул пин кадимки сырткы ургаачы аталыштарда эмес, микроконтроллердин жанындагы 6-шиштүү ICSP аталышында.

- FSYNCти Arduino Due Pin 6га туташтырыңыз (бул чип тандоо бул чип)

Эми нан тактасы толугу менен чогултулгандыктан, кодду карап чыгууга убакыт келди!

2 -кадам: Программалоо жана MIDI Орнотуу

Программалоо жана MIDI орнотуу
Программалоо жана MIDI орнотуу

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

Эскертүү: эки USB порту бар. Бири тактайды программалоо үчүн колдонулат, экинчиси USB аркылуу MIDI аркылуу иштөө үчүн колдонулат

Бул эскиз Arduino Uno боюнча иштебей турганына көңүл буруңуз - бул проект Arduino Due же ага окшош түзмөктөрдө түпкү USBге муктаждыгына байланыштуу

Ыңгайлаштыруу параметрлери:

- Препроцессор макро аныктамасы менен коюла турган 2 режим бар. Эгерде "#define STOPNOTES" бүтүн бойдон калса, тепкич ноталардын ортосунда токтойт. Бул дайыма эле боло бербейт (мисалы, тез арпеджиолорду ойнотуу), андыктан бул жүрүм -турумду өзгөртүү үчүн, #define билдирүүсүн өчүрүп же комментарий бериңиз, ал эми степпер ойногондон кийин тынымсыз иштей берет.

-Мен 2-октавалуу арзан 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 -кадам: Сыноо жана эксперимент

Степпер моторуңузду ойнотууга убакыт келди!

Жогоруда айтылгандай, мунун артында турган идея-бул кандайдыр бир эксперимент болчу, андыктан өзүңүздүн тажрыйбаңызды жасаңыз!

Сунушталууда: