Cuprins:

Motor pas cu pas controlat MIDI cu cip de sinteză digitală directă (DDS): 3 pași
Motor pas cu pas controlat MIDI cu cip de sinteză digitală directă (DDS): 3 pași

Video: Motor pas cu pas controlat MIDI cu cip de sinteză digitală directă (DDS): 3 pași

Video: Motor pas cu pas controlat MIDI cu cip de sinteză digitală directă (DDS): 3 pași
Video: High Density 2022 2024, Iulie
Anonim
Motor pas cu pas controlat MIDI cu cip de sinteză digitală directă (DDS)
Motor pas cu pas controlat MIDI cu cip de sinteză digitală directă (DDS)
Motor pas cu pas controlat MIDI cu cip de sinteză digitală directă (DDS)
Motor pas cu pas controlat MIDI cu cip de sinteză digitală directă (DDS)
Motor pas cu pas controlat MIDI cu cip de sinteză digitală directă (DDS)
Motor pas cu pas controlat MIDI cu cip de sinteză digitală directă (DDS)
Motor pas cu pas controlat MIDI cu cip de sinteză digitală directă (DDS)
Motor pas cu pas controlat MIDI cu cip de sinteză digitală directă (DDS)

Ai avut vreodată o idee proastă că DOAR a trebuit să te transformi într-un mini proiect? Ei bine, mă jucam cu o schiță pe care o făcusem pentru Arduino Due menită să fac muzică cu un modul AD9833 Direct Digital Synthesis (DDS) … și la un moment dat m-am gândit „hei, poate ar trebui să montez un motor / șofer pas cu pas acest . Și acea idee este exact ceea ce a stârnit acest mic proiect bazat pe panou.

În acest proiect va fi inclus un cod pentru utilizarea MIDI-over-USB pentru a controla un Arduino Due și pentru a trimite unde pătrate între un modul AD9833 și driverul pas cu pas. De asemenea, va exista o diagramă și instrucțiuni de bază pentru conectarea la un Arduino Due.

Provizii:

De ce veți avea nevoie pentru acest proiect:

Arduino Due

NOTĂ: Codul este scris pentru Due, dar ar trebui să funcționeze și / sau să fie adaptat pentru Zero. Utilizează biblioteca MIDIUSB a Arduino, care necesită un port USB nativ.

Placă de sudură fără sudură + jumperi

AD9833 Modul Breakout

A4988 Driver pas cu pas (sau similar)

Motor pas cu pas NEMA 17 (sau similar)

- Alimentare de 24 V (rețineți, am ales această valoare de 24 de volți, deoarece era mai mare decât tensiunea nominală a motorului pas cu pas. Implementarea dvs. poate fi diferită dacă utilizați un motor mai mare)

Pasul 1: Breadboarding

Breadboarding
Breadboarding

Ideea de bază din spatele acestui lucru este că IC-ul direct de sinteză digitală va genera o undă pătrată pentru a conduce pinul „pas” al șoferului motorului pas cu pas. Acest driver pas cu pas va muta apoi motorul la frecvența sonoră specificată. Direcția motorului este oarecum arbitrară atâta timp cât pasează la frecvența corectă.

Abordarea pe care prefer să o folosesc cu breadboarding-ul este de a rula mai întâi pinii și terenurile de alimentare și apoi începe să rulez toate celelalte conexiuni, fără alimentare.

Sol:

- Conectați pinii AGND și DGND ai modulului AD9833 la șina GND de pe panou.

- Conectați cele două știfturi GND de pe șoferul pas cu pas la șina GND

- Aduceți acest lucru la unul dintre pinii GND ai Arduino Due

Putere 3.3V:

- Conectați pinul VDD al driverului Stepper la șina V + a panoului de măsurare

- Conectați pinul VCC al modulului AD9833 la șina V + a panoului de control

- Aduceți acest lucru la pinul 3.3V al Arduino Due

Putere 24V:

- Conectați pinul VMOT la sursa de alimentare 24V DC (în funcție de alegerea motorului, poate doriți să rulați o șină de alimentare mai mare sau mai mică)

Conexiune modul-la-modul:

- Conectați pinul OUT de la modulul AD9833 la pinul STEP al driverului motorului

Conexiuni driver pas cu pas:

- Conectați conexiunile motorului pas cu pas la pinii 2B / 2A / 1A / 1B. Polaritatea nu este atât de importantă, atât timp cât fazele conducătorului se potrivesc cu cele ale motorului pas cu pas.

- Conectați pinii RESET și SLEEP împreună și aduceți-i pe aceia la Arduino Due Pin 8.

- Conectați pinul DIR la șina de 3,3V

Conexiuni modul AD9833:

- Conectați SCLK la pinul SCK al Arduino Due. Rețineți că acest pin se află pe antetul ICSP tată cu 6 pini de lângă microcontroler, nu pe antetele feminine externe normale.

- Conectați pinul SDATA la pinul MOSI al Due. Rețineți că acest pin se află pe antetul ICSP tată cu 6 pini de lângă microcontroler, nu pe antetele feminine externe normale.

- Conectați FSYNC la Arduino Due Pin 6 (acesta este pinul Chip Select pentru acest proiect)

Acum, când placa este complet asamblată, este timpul să aruncăm o privire asupra codului!

Pasul 2: Programare și configurare MIDI

Programare și configurare MIDI
Programare și configurare MIDI

Schița.ino atașată va prelua intrări USB-MIDI prin portul USB nativ al Arduino Due și le va folosi pentru a conduce AD9833. Acest cip are un DAC care rulează la o rezoluție de frecvență de 25 MHz cu 28 de biți (suprasolicitare totală pentru ceea ce este necesar aici) și o mare parte din codul de aici este configurarea acestuia pentru a rula și a emite o undă pătrată.

Notă: există două porturi USB. Una este utilizată pentru programarea plăcii, iar cealaltă va fi utilizată pentru comunicarea MIDI-over-USB

Rețineți că această schiță nu va funcționa așa cum este pe Arduino Uno - acest proiect este specific în nevoia sa de USB nativ în Arduino Due sau dispozitive similare

Opțiuni de personalizare:

- Există 2 moduri, care pot fi setate printr-o definiție macro preprocesor. Dacă „#define STOPNOTES” este lăsat intact, stepper-ul se va opri între note. Acest lucru nu este întotdeauna dorit (de exemplu, jucând arpegioane rapide), așa că, pentru a schimba acest comportament, pur și simplu ștergeți sau comentați că instrucțiunea #define și stepperul vor rula continuu odată redat.

- Folosesc o tastatură MIDI ieftină de 2 octave cu această tastă care are un buton de octavă sus / jos, dar în cazul în care nu aveți această opțiune, puteți schimba octava traducerea de frecvență de mai jos prin multiplicarea sau împărțirea la puteri de 2.

Traducerea MIDI-la-frecvență se face cu această linie în funcția playNote: int f_out = (int) (27,5 * pow (2, ((float) midiNote-33) / 12));

- Tind să folosesc PC-ul pentru interfață prin USB MIDI - puteți face acest lucru din software-ul dvs. preferat Digital Audio Workstation (DAW). Dacă nu aveți unul, este destul de ușor să configurați acest sistem folosind LMMS - o platformă open source gratuită. Odată ce este instalat și rulează, pur și simplu setați Arduino Due ca dispozitiv de ieșire MIDI și, dacă utilizați o tastatură USB MIDI, setați-l ca intrare.

Pasul 3: Testarea și experimentarea

E timpul să vă jucați motorul pas cu pas!

După cum sa menționat, întreaga idee din spatele acestui lucru a fost un fel de experiment fără manșetă, așa că, din toate punctele de vedere, faceți câteva experimente proprii!

Recomandat: