Satura rādītājs:

MIDI kontrolēts pakāpju motors ar tiešu digitālo sintēzi (DDS): 3 soļi
MIDI kontrolēts pakāpju motors ar tiešu digitālo sintēzi (DDS): 3 soļi

Video: MIDI kontrolēts pakāpju motors ar tiešu digitālo sintēzi (DDS): 3 soļi

Video: MIDI kontrolēts pakāpju motors ar tiešu digitālo sintēzi (DDS): 3 soļi
Video: MIDI-интерфейс Arduino, часть 01 Схемы MIDI INPUT, OUTPUT и THRU 2024, Novembris
Anonim
MIDI kontrolēts pakāpju motors ar tiešās digitālās sintēzes (DDS) mikroshēmu
MIDI kontrolēts pakāpju motors ar tiešās digitālās sintēzes (DDS) mikroshēmu
MIDI kontrolēts pakāpju motors ar tiešās digitālās sintēzes (DDS) mikroshēmu
MIDI kontrolēts pakāpju motors ar tiešās digitālās sintēzes (DDS) mikroshēmu
MIDI kontrolēts pakāpju motors ar tiešās digitālās sintēzes (DDS) mikroshēmu
MIDI kontrolēts pakāpju motors ar tiešās digitālās sintēzes (DDS) mikroshēmu
MIDI kontrolēts pakāpju motors ar tiešās digitālās sintēzes (DDS) mikroshēmu
MIDI kontrolēts pakāpju motors ar tiešās digitālās sintēzes (DDS) mikroshēmu

Vai jums kādreiz ir bijusi slikta ideja, ka jums TIKAI bija jāpārvēršas par mini projektu? Nu, es spēlēju ar skici, ko biju izveidojis Arduino Due, lai radītu mūziku ar AD9833 tiešās digitālās sintēzes (DDS) moduli… un kādā brīdī es nodomāju: “hei, varbūt man vajadzētu uzstādīt pakāpju motoru/draiveri šo . Un tieši šī ideja izraisīja šo mazo maizes dēļa projektu.

Šajā projektā būs iekļauts kods, kā izmantot MIDI-over-USB, lai kontrolētu Arduino Due un nosūtītu kvadrātveida viļņus starp AD9833 moduli un pakāpiena draiveri. Būs arī diagramma un pamata instrukcijas, kā to savienot ar Arduino Due.

Piegādes:

Kas jums būs nepieciešams šim projektam:

Arduino Due

PIEZĪME: Kods ir rakstīts termiņam, taču tam vajadzētu arī darboties un/vai to pielāgot nullei. Tas izmanto Arduino MIDIUSB bibliotēku, kurai nepieciešams vietējais USB ports.

bez lodēšanas maizes dēlis + džemperi

AD9833 izlaušanās modulis

A4988 pakāpienu draiveris (vai līdzīgs)

NEMA 17 pakāpju motors (vai līdzīgs)

- 24 V barošanas avots (ņemiet vērā, es izvēlējos šo vērtību 24 volti, jo tā bija lielāka par nominālo pakāpju motora spriegumu. Ja izmantojat lielāku motoru, jūsu ieviešana var būt atšķirīga)

1. darbība

Maizes dēlis
Maizes dēlis

Pamatideja ir tāda, ka tiešās digitālās sintēzes IC ģenerēs kvadrātveida vilni, lai virzītu pakāpiena motora vadītāja “soļa” tapu. Šis pakāpiena vadītājs pārvietos motoru ar norādīto skaņas frekvenci. Motora virziens ir nedaudz patvaļīgs, kamēr tas soļo pareizajā frekvencē.

Pieeja, kuru es labprātāk izvēlos, izmantojot maizes dēli, ir vispirms palaist strāvas tapas un pamatus un pēc tam sākt darbināt visus pārējos savienojumus, kas nav saistīti ar strāvu.

Zeme:

- Pievienojiet AD9833 moduļa AGND un DGND tapas maizes dēļa GND sliedei.

- Savienojiet abas GND tapas uz pakāpiena vadītāja ar GND sliedi

- Pārnesiet to uz vienu no Arduino Due GND tapām

3.3V jauda:

- Pievienojiet pakāpiena vadītāja VDD tapu pie maizes dēļa V+ sliedes

- Pievienojiet AD9833 moduļa VCC tapu pie maizes dēļa V+ sliedes

- Pārnesiet to uz Arduino Due 3.3V tapu

24V jauda:

- Pievienojiet VMOT tapu 24 V līdzstrāvas barošanas avotam (atkarībā no motora izvēles, iespējams, vēlēsities darbināt augstāku vai zemāku barošanas sliedi)

Savienojums starp moduļiem:

- Pievienojiet OUT tapu no AD9833 moduļa motora vadītāja STEP tapai

Stepper draivera savienojumi:

- Pievienojiet soļu motora savienojumus ar 2B/2A/1A/1B tapām. Polaritāte nav tik svarīga, ja vien vadītāja fāzes sakrīt ar pakāpju motora fāzēm.

- Savienojiet RESET un SLEEP tapas kopā un novietojiet tās uz Arduino Due Pin 8.

- Pievienojiet DIR tapu 3.3V sliedei

AD9833 moduļa savienojumi:

- Pievienojiet SCLK Arduino Due SCK tapai. Ņemiet vērā, ka šī tapa atrodas uz 6 kontaktu vīriešu ICSP galvenes pie mikrokontrollera, nevis uz parastajām ārējām sieviešu galvenēm.

- Pievienojiet SDATA tapu Due's MOSI tapai. Ņemiet vērā, ka šī tapa atrodas uz 6 kontaktu vīriešu ICSP galvenes pie mikrokontrollera, nevis uz parastajām ārējām sieviešu galvenēm.

- Pievienojiet FSYNC Arduino Due Pin 6 (šī ir Chip Select pin šim projektam)

Tagad, kad maizes dēlis ir pilnībā samontēts, ir pienācis laiks apskatīt kodu!

2. darbība: programmēšana un MIDI iestatīšana

Programmēšana un MIDI iestatīšana
Programmēšana un MIDI iestatīšana

Pievienotā.ino skice uzņems USB-MIDI ieejas caur Arduino Due dabisko USB portu un izmantos tās, lai vadītu AD9833. Šai mikroshēmai ir DAC, kas darbojas ar 25 MHz frekvenci ar 28 bitu frekvences izšķirtspēju (kopējais pārspīlējums, kas šeit vajadzīgs), un liela daļa no koda šeit konfigurē to, lai palaistu un izvadītu kvadrātveida vilni.

Piezīme: ir divi USB porti. Viens tiek izmantots plates programmēšanai, bet otrs tiks izmantots MIDI-over-USB comm

Ņemiet vērā, ka šī skice nedarbosies Arduino Uno, kā tas ir - šis projekts ir specifisks, jo ir nepieciešams vietējais USB Arduino Due vai līdzīgās ierīcēs

Pielāgošanas iespējas:

- Ir 2 režīmi, kurus var iestatīt ar priekšapstrādātāja makro definīciju. Ja “#define STOPNOTES” tiek atstāts neskarts, solis apstājas starp notīm. Tas ne vienmēr ir vēlams (piemēram, spēlējot ātrus arpeggios), tāpēc, lai mainītu šo uzvedību, vienkārši izdzēsiet vai komentējiet, ka #define paziņojums un solis pēc atskaņošanas darbosies nepārtraukti.

-Es izmantoju lētu 2 oktāvu MIDI tastatūru ar šo, kurai ir oktāvas augšup/lejup poga, bet, ja jums nav šīs iespējas, varat oktāvu nobīdīt zemāk norādīto frekvenču tulkojumu, reizinot vai dalot ar 2.

MIDI-frekvences tulkojums tiek veikts ar šo rindu funkcijā playNote: int f_out = (int) (27,5*pow (2, ((float) midiNote-33)/12));

- Es mēdzu izmantot savu datoru saskarnei, izmantojot USB MIDI - to var izdarīt, izmantojot iecienīto programmatūru Digital Audio Workstation (DAW). Ja jums tādas nav, šo sistēmu ir diezgan viegli iestatīt, izmantojot LMMS - bezmaksas atvērtā pirmkoda platformu. Kad tas ir instalēts un darbojas, vienkārši iestatiet Arduino Due kā MIDI izvadierīci un, ja izmantojat USB MIDI tastatūru, iestatiet to kā ievadi.

3. darbība: testēšana un eksperimentēšana

Laiks spēlēt savu soļu motoru!

Kā minēts, visa šī ideja bija savdabīgs eksperiments, tāpēc noteikti eksperimentējiet pats!

Ieteicams: