Kazalo:

Koračni motor z MIDI-krmiljenjem z čipom za neposredno digitalno sintezo (DDS): 3 koraki
Koračni motor z MIDI-krmiljenjem z čipom za neposredno digitalno sintezo (DDS): 3 koraki

Video: Koračni motor z MIDI-krmiljenjem z čipom za neposredno digitalno sintezo (DDS): 3 koraki

Video: Koračni motor z MIDI-krmiljenjem z čipom za neposredno digitalno sintezo (DDS): 3 koraki
Video: SKR 1.3 - TMC2208 UART v3.0 2024, November
Anonim
Koračni motor z MIDI krmiljenjem z čipom za neposredno digitalno sintezo (DDS)
Koračni motor z MIDI krmiljenjem z čipom za neposredno digitalno sintezo (DDS)
Koračni motor z MIDI krmiljenjem z čipom za neposredno digitalno sintezo (DDS)
Koračni motor z MIDI krmiljenjem z čipom za neposredno digitalno sintezo (DDS)
Koračni motor z MIDI krmiljenjem z čipom za neposredno digitalno sintezo (DDS)
Koračni motor z MIDI krmiljenjem z čipom za neposredno digitalno sintezo (DDS)
Koračni motor z MIDI krmiljenjem z čipom za neposredno digitalno sintezo (DDS)
Koračni motor z MIDI krmiljenjem z čipom za neposredno digitalno sintezo (DDS)

Ste kdaj imeli slabo idejo, da ste se morali SAMO spremeniti v mini projekt? No, igral sem se s skico, ki sem jo naredil za Arduino Due, namenjeno ustvarjanju glasbe z modulom AD9833 Direct Digital Synthesis (DDS) … in na neki točki sem pomislil: "hej, morda bi moral namestiti koračni motor/voznika to ". In prav ta ideja je sprožila ta mali projekt, ki temelji na osnutku.

V ta projekt bo vključena nekaj kode za uporabo MIDI-over-USB za nadzor Arduino Due in pošiljanje kvadratnih valov med modulom AD9833 in koračnim gonilnikom. Na voljo bo tudi diagram in osnovna navodila za povezavo tega z Arduino Due.

Zaloge:

Kaj potrebujete za ta projekt:

Arduino Due

OPOMBA: Koda je napisana za Due, vendar bi morala delovati in/ali biti prilagojena za ničlo. Uporablja Arduinovo knjižnico MIDIUSB, ki zahteva domača vrata USB.

Lemljena plošča brez spajkanja + skakalci

modul AD9833 Breakout

A4988 Stepper Driver (ali podoben)

NEMA 17 koračni motor (ali podoben)

- Napajanje 24 V (upoštevajte, to vrednost 24 voltov sem izbral, ker je bila večja od nazivne napetosti koračnega motorja. Vaša izvedba je lahko drugačna, če uporabljate večji motor)

Korak: Breadboarding

Breadboarding
Breadboarding

Osnovna ideja tega je, da bo digitalna sintetična enota za neposredno digitalno sintezo ustvarila kvadratni val za pogon "koračnega" zatiča gonilnika koračnega motorja. Ta koračni gonilnik bo nato premikal motor z določeno zvočno frekvenco. Smer motorja je nekoliko poljubna, dokler stopa na pravilno frekvenco.

Pristop, ki ga raje uporabljam pri načrtovanju, je, da najprej zaženem napajalne zatiče in ozemljitve, nato pa začnem izvajati vse druge, ne-napajalne povezave.

Tla:

- Nožice AGND in DGND modula AD9833 priključite na tirnico GND na plošči.

- Dva zatiča GND na koračnem gonilniku priključite na tirnico GND

- Prinesite to na enega od zatičev GND Arduino Due

Napajanje 3.3V:

- Priključite VDD zatič koračnega gonilnika na vodilo V+ na matični plošči

- VCC pin modula AD9833 priključite na V+ Rail na matični plošči

- Prenesite to na 3.3V Pin Arduino Due

Napajanje 24V:

- Priključite pin VMOT na 24V DC napajanje (odvisno od izbire motorja, boste morda želeli popeljati višjo ali nižjo napajalno tirnico)

Povezava med moduli in moduli:

- Priključite OUT pin iz modula AD9833 na pin STEP gonilnika motorja

Povezave gonilnikov korakov:

- Priključke koračnega motorja priključite na zatiča 2B/2A/1A/1B. Polarnost ni tako pomembna, dokler se faze voznika ujemajo s fazami koračnega motorja.

- Povežite nožice RESET in SLEEP skupaj in jih pripeljite na Arduino Due Pin 8.

- Priključite pin DIR na tirnico 3.3V

Priključki modula AD9833:

- Priključite SCLK na SCK pin Arduino Due. Upoštevajte, da je ta zatič na 6-polni moški glavi ICSP v bližini mikrokrmilnika, ne na običajnih zunanjih ženskih glavah.

- Priključite pin SDATA na pin MOSI Due. Upoštevajte, da je ta zatič na 6-polni moški glavi ICSP v bližini mikrokrmilnika, ne na običajnih zunanjih ženskih glavah.

- Priključite FSYNC na Arduino Due Pin 6 (to je pin za izbiro čipa za ta projekt)

Zdaj, ko je plošča v celoti sestavljena, je čas, da si ogledate kodo!

2. korak: Programiranje in nastavitev MIDI

Programiranje in nastavitev MIDI
Programiranje in nastavitev MIDI

Priložena skica.ino bo prenašala vhode USB-MIDI skozi vhodna vrata USB Arduino Due in jih uporabila za pogon AD9833. Ta čip ima DAC, ki deluje pri 25 MHz z 28 bitov frekvenčne ločljivosti (popolno preseganje za tisto, kar je tukaj potrebno), in večina kode tukaj to konfigurira za zagon in izhod kvadratnega vala.

Opomba: Obstajata dva USB vhoda. Eden se uporablja za programiranje plošče, drugi pa za komunikacijo MIDI-over-USB

Upoštevajte, da ta skica ne bo delovala takšna kot je v Arduino Uno - ta projekt je poseben, ker potrebuje Native USB v Arduino Due ali podobnih napravah

Možnosti prilagajanja:

- Obstajata 2 načina, ki jih lahko nastavite s predprocesorsko definicijo makra. Če "#define STOPNOTES" ostane nedotaknjen, se bo korak ustavil med zapiski. To ni vedno zaželeno (na primer igranje hitrih arpeggiov), zato, če želite spremeniti to vedenje, preprosto izbrišite ali komentirajte stavek #define in steper se bo po predvajanju neprekinjeno izvajal.

-Uporabljam poceni 2-oktavno tipkovnico MIDI s to tipko, ki ima oktavno tipko gor/dol, vendar v primeru, da te možnosti nimate, lahko spodnji frekvenčni prevod prestavite z oktavo tako, da pomnožite ali delite s po 2.

Prevajanje MIDI v frekvenco se izvede s to vrstico v funkciji playNote: int f_out = (int) (27,5*pow (2, ((float) midiNote-33)/12));

- Računalnik ponavadi uporabljam za povezovanje prek USB MIDI - to lahko storite iz priljubljene programske opreme Digital Audio Workstation (DAW). Če ga nimate, je sistem enostavno nastaviti z uporabo LMMS - brezplačne odprtokodne platforme. Ko je nameščen in zagnan, preprosto nastavite Arduino Due kot izhodno napravo MIDI, če uporabljate tipkovnico USB MIDI, pa to nastavite kot vhod.

3. korak: Testiranje in eksperimentiranje

Čas je, da igrate svoj koračni motor!

Kot rečeno, je bila celotna ideja za to nekakšen eksperiment, zato vsekakor poskusite sami!

Priporočena: