Obsah:

MIDI-ovládaný krokový motor s čipom s priamou digitálnou syntézou (DDS): 3 kroky
MIDI-ovládaný krokový motor s čipom s priamou digitálnou syntézou (DDS): 3 kroky

Video: MIDI-ovládaný krokový motor s čipom s priamou digitálnou syntézou (DDS): 3 kroky

Video: MIDI-ovládaný krokový motor s čipom s priamou digitálnou syntézou (DDS): 3 kroky
Video: Tripoidní robot s krokovými motory FASTECH 2024, November
Anonim
MIDI-ovládaný krokový motor s čipom s priamou digitálnou syntézou (DDS)
MIDI-ovládaný krokový motor s čipom s priamou digitálnou syntézou (DDS)
MIDI-ovládaný krokový motor s čipom s priamou digitálnou syntézou (DDS)
MIDI-ovládaný krokový motor s čipom s priamou digitálnou syntézou (DDS)
MIDI-ovládaný krokový motor s čipom s priamou digitálnou syntézou (DDS)
MIDI-ovládaný krokový motor s čipom s priamou digitálnou syntézou (DDS)
MIDI-ovládaný krokový motor s čipom s priamou digitálnou syntézou (DDS)
MIDI-ovládaný krokový motor s čipom s priamou digitálnou syntézou (DDS)

Mali ste niekedy zlý nápad, že ste sa JUST museli zmeniť na mini projekt? Pohrával som sa so skicou, ktorú som urobil pre Arduino Due, zameranou na vytváranie hudby pomocou modulu AD9833 Direct Digital Synthesis (DDS) … a v určitom okamihu som si povedal „hej, možno by som mal namontovať krokový motor/ovládač toto “. A táto myšlienka je presne to, čo vyvolalo tento malý projekt založený na breadboarde.

V tomto projekte bude zahrnutý nejaký kód na používanie MIDI-over-USB na ovládanie Arduino Due a odosielanie štvorcových vĺn medzi modulom AD9833 a krokovým ovládačom. K dispozícii bude tiež diagram a základné pokyny na pripojenie k Arduino Due.

Zásoby:

Čo budete potrebovať k tomuto projektu:

splatnosť Arduina

POZNÁMKA: Kód je napísaný pre splatnosť, ale mal by tiež fungovať a/alebo by mal byť prispôsobený pre nulu. Využíva knižnicu MIDIUSB spoločnosti Arduino, ktorá vyžaduje natívny port USB.

Nepájkovateľný Breadboard + prepojky

Breakout modul AD9833

Krokový ovládač A4988 (alebo podobný)

Krokový motor NEMA 17 (alebo podobný)

- Napájanie 24 V (všimol som si, že som vybral túto hodnotu 24 voltov, pretože bola väčšia ako nominálne napätie krokového motora. Vaša implementácia sa môže líšiť, ak použijete väčší motor)

Krok 1: Breadboarding

Breadboarding
Breadboarding

Základnou myšlienkou je, že integrovaný obvod priamej digitálnej syntézy vygeneruje štvorcovú vlnu na poháňanie „krokového“kolíka ovládača krokového motora. Tento krokový ovládač potom pohne motorom na uvedenú počuteľnú frekvenciu. Smer motora je do určitej miery ľubovoľný, pokiaľ krokuje so správnou frekvenciou.

Prístup, ktorý uprednostňujem s chlebom, je najskôr spustiť napájacie kolíky a uzemnenie a potom začať prevádzkovať všetky ostatné pripojenia bez napájania.

Zem:

- Pripojte kolíky AGND a DGND modulu AD9833 k lište GND na doske.

- Pripojte dva kolíky GND na krokovom ovládači k lište GND

- Preneste to na jeden z GND pinov Arduino Due

Napájanie 3,3 V:

- Pripojte kolík VDD krokového ovládača k V+ lište nepájivej dosky

- Pripojte kolík VCC modulu AD9833 k V+ lište nepájivej dosky

- Prepnite to na pin 3,3 V Arduino Due

Napájanie 24V:

- Pripojte kolík VMOT k napájaciemu zdroju 24 V DC (v závislosti od vášho výberu motora možno budete chcieť spustiť vyššiu alebo nižšiu napájaciu lištu)

Pripojenie modulu k modulu:

- Pripojte vývod OUT z modulu AD9833 k vývodu STEP v ovládači motora

Pripojenie krokového ovládača:

- Pripojte pripojenia krokového motora k kolíkom 2B/2A/1A/1B. Polarita nie je taká dôležitá, pokiaľ sa fázy ovládača zhodujú s fázami krokového motora.

- Spojte kolíky RESET a SLEEP dohromady a preneste ich na pin 8 Arduino Due.

- Pripojte pin DIR k lište 3,3 V

Pripojenie modulu AD9833:

- Pripojte SCLK k pinu SCK Arduino Due. Všimnite si toho, že tento pin je na 6-kolíkovej zásuvke ICSP samca v blízkosti mikrokontroléra, nie na bežných externých zásuvkách.

- Pripojte kolík SDATA k pinu MOSI spoločnosti Due. Všimnite si toho, že tento pin je na 6-kolíkovej zásuvke ICSP samca v blízkosti mikrokontroléra, nie na bežných externých zásuvkách.

- Pripojte FSYNC k Arduino Due Pin 6 (toto je pin Chip Select pre tento projekt)

Teraz, keď je doska na pečenie úplne zostavená, je načase sa pozrieť na kód!

Krok 2: Programovanie a nastavenie MIDI

Programovanie a nastavenie MIDI
Programovanie a nastavenie MIDI

Priložená skica.ino prevezme vstupy USB-MIDI cez natívny port USB Arduino Due a použije ich na pohon jednotky AD9833. Tento čip má DAC, ktorý beží na frekvencii 25 MHz s 28 bitmi frekvenčného rozlíšenia (celkové prekročenie toho, čo je tu potrebné) a veľká časť kódu tu konfiguruje, aby bežal a produkoval štvorcovú vlnu.

Poznámka: Existujú dva porty USB. Jeden sa používa na programovanie dosky a druhý sa použije na komunikáciu MIDI cez USB

Všimnite si toho, že táto skica nebude fungovať tak, ako je na Arduino Uno - tento projekt je špecifický svojou potrebou natívneho USB v Arduino Due alebo podobných zariadeniach

Možnosti prispôsobenia:

- Existujú 2 režimy, ktoré je možné nastaviť pomocou definície makra preprocesora. Ak „#define STOPNOTES“ponecháte nedotknuté, stepper sa medzi poznámkami zastaví. Nie je to vždy žiaduce (napríklad hranie rýchlych arpeggií), takže ak chcete zmeniť toto správanie, jednoducho odstráňte alebo komentujte príkaz #define a stepper bude po hraní bežať nepretržite.

-Používam lacnú 2-oktávovú MIDI klávesnicu, ktorá má tlačidlo oktáva hore/dole, ale v prípade, že túto možnosť nemáte, môžete nižšie frekvenčný preklad posunúť o oktávu vynásobením alebo delením mocninami 2.

Preklad MIDI na frekvenciu sa vykonáva s týmto riadkom vo funkcii playNote: int f_out = (int) (27,5*pow (2, ((float) midiNote-33)/12));

- Na prepojenie cez USB MIDI používam svoj počítač - môžete to urobiť z obľúbeného softvéru DAW (Digital Audio Workstation). Ak ho nemáte, je veľmi jednoduché nastaviť tento systém pomocou LMMS - bezplatnej platformy s otvoreným zdrojovým kódom. Akonáhle je nainštalovaný a spustený, jednoducho nastavte Arduino Due ako výstupné zariadenie MIDI, a ak používate USB MIDI klávesnicu, nastavte ho ako vstup.

Krok 3: Testovanie a experimentovanie

Čas hrať na krokovom motore!

Ako bolo uvedené, celá myšlienka bola akýmsi experimentom mimo manžety, takže v každom prípade urobte nejaké vlastné experimentovanie!

Odporúča: