Sisällysluettelo:

MIDI-ohjattu askelmoottori, jossa on suora digitaalinen synteesi (DDS) -piiri: 3 vaihetta
MIDI-ohjattu askelmoottori, jossa on suora digitaalinen synteesi (DDS) -piiri: 3 vaihetta

Video: MIDI-ohjattu askelmoottori, jossa on suora digitaalinen synteesi (DDS) -piiri: 3 vaihetta

Video: MIDI-ohjattu askelmoottori, jossa on suora digitaalinen synteesi (DDS) -piiri: 3 vaihetta
Video: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, Marraskuu
Anonim
MIDI-ohjattu askelmoottori, jossa on suora digitaalinen synteesi (DDS) -piiri
MIDI-ohjattu askelmoottori, jossa on suora digitaalinen synteesi (DDS) -piiri
MIDI-ohjattu askelmoottori, jossa on suora digitaalinen synteesi (DDS) -piiri
MIDI-ohjattu askelmoottori, jossa on suora digitaalinen synteesi (DDS) -piiri
MIDI-ohjattu askelmoottori, jossa on suora digitaalinen synteesi (DDS) -piiri
MIDI-ohjattu askelmoottori, jossa on suora digitaalinen synteesi (DDS) -piiri
MIDI-ohjattu askelmoottori, jossa on suora digitaalinen synteesi (DDS) -piiri
MIDI-ohjattu askelmoottori, jossa on suora digitaalinen synteesi (DDS) -piiri

Onko sinulla koskaan ollut aavistusta, että sinun piti vain muuttua miniprojektiksi? No, pelasin luonnoksella, jonka olin tehnyt Arduino Due -pelille ja jonka tarkoituksena oli tehdä musiikkia AD9833 Direct Digital Synthesis (DDS) -moduulilla … ja jossain vaiheessa ajattelin "hei, ehkä minun pitäisi asentaa askelmoottori/kuljettaja Tämä". Ja juuri tämä idea herätti tämän pienen leipälautapohjaisen projektin.

Tähän projektiin sisältyy koodi MIDI-USB: n käyttämiseksi Arduino Due -laitteen ohjaamiseen ja neliöaaltojen lähettämiseen AD9833-moduulin ja askelohjaimen välillä. Siellä on myös kaavio ja perusohjeet tämän yhdistämiseksi Arduino Due -laitteeseen.

Tarvikkeet:

Mitä tarvitset tähän projektiin:

Arduino Due

HUOMAUTUS: Koodi on kirjoitettu erääntymistä varten, mutta sen pitäisi myös toimia ja/tai olla mukautettu nollaa varten. Se käyttää Arduinon MIDIUSB -kirjastoa, joka vaatii alkuperäisen USB -portin.

Juotamaton leipälauta + puserot

AD9833 Breakout -moduuli

A4988 Stepper Driver (tai vastaava)

NEMA 17 askelmoottori (tai vastaava)

- 24 V: n virtalähde (huomaa, valitsin tämän arvon 24 volttia, koska se oli suurempi kuin askelmoottorin nimellisjännite. Toteutus voi olla erilainen, jos käytät suurempaa moottoria)

Vaihe 1: Breadboarding

Leipälautailu
Leipälautailu

Tämän perusajatus on, että Direct Digital Synthesis IC tuottaa neliöaallon askelmoottorin kuljettajan "askel" -tapin käyttämiseksi. Tämä askelmoottori liikuttaa moottoria määritetyllä äänitaajuudella. Moottorin suunta on jonkin verran mielivaltainen, kunhan se astuu oikealla taajuudella.

Lähestymistapa, jonka mieluummin otan leipälautailun kanssa, on käyttää ensin nastat ja maadoitukset ja aloittaa sitten kaikkien muiden, ei-virtaliitosten käyttäminen.

Maa:

- Liitä AD9833 -moduulin AGND- ja DGND -nastat leipälevyn GND -kiskoon.

- Liitä askelmoottorin kaksi GND -nastaa GND -kiskoon

- Tuo tämä yhteen Arduino Due GND -nastoista

3.3V teho:

- Liitä askelmoottorin VDD -tappi leipälevyn V+ -kiskoon

- Liitä AD9833 -moduulin VCC -nasta leipälevyn V+ -kiskoon

- Tuo tämä Arduino Due: n 3.3V -nastaan

24V teho:

- Liitä VMOT -nasta 24 V DC -virtalähteeseen (moottorivalinnastasi riippuen saatat haluta käyttää korkeampaa tai alempaa syöttökiskoa)

Moduuli-moduuliliitäntä:

- Kytke AD9833 -moduulin OUT -nasta moottoriajurin STEP -nastaan

Askelohjaimen liitännät:

- Liitä askelmoottorin liitännät 2B/2A/1A/1B -nastoihin. Napaisuus ei ole niin tärkeä, kunhan kuljettajan vaiheet vastaavat askelmoottorin vaiheita.

- Yhdistä RESET- ja SLEEP -nastat yhteen ja vie ne Arduino Due -nastan 8 päälle.

- Kytke DIR -nasta 3.3V -kiskoon

AD9833 -moduuliliitännät:

- Liitä SCLK Arduino Due -laitteen SCK -nastaan. Huomaa, että tämä nasta on 6-nastaisessa urospuolisessa ICSP-otsikossa lähellä mikrokontrolleria, ei tavallisissa ulkoisissa naarasliittimissä.

- Liitä SDATA -nasta Due: n MOSI -nastaan. Huomaa, että tämä nasta on 6-nastaisessa urospuolisessa ICSP-otsikossa lähellä mikrokontrolleria, ei tavallisissa ulkoisissa naarasliittimissä.

- Liitä FSYNC Arduino Due Pin 6: een (tämä on Chip Select -tappi tälle projektille)

Nyt kun leipälauta on koottu kokonaan, on aika vilkaista koodi!

Vaihe 2: Ohjelmointi ja MIDI -asennus

Ohjelmointi ja MIDI -asennus
Ohjelmointi ja MIDI -asennus

Liitetty.ino-luonnos ottaa USB-MIDI-sisääntulot Arduino Due natiivin USB-portin kautta ja käyttää niitä AD9833: n ajamiseen. Tässä sirussa on DAC, joka toimii 25 MHz: n taajuudella 28 bitin taajuudella (täydellinen yliaktiivisuus täällä tarvittavan suhteen), ja suuri osa koodista määrittää tämän suorittamaan ja lähettämään neliöaallon.

Huomautus: USB -portteja on kaksi. Toista käytetään kortin ohjelmointiin, ja toista käytetään MIDI-over-USB -yhteyteen

Huomaa, että tämä luonnos ei toimi sellaisenaan Arduino Unossa - tämä projekti on nimenomaan sen tarpeessa, että Arduino Due -laitteessa tai vastaavissa laitteissa on Native USB

Mukautusvaihtoehdot:

- On 2 tilaa, jotka voidaan asettaa esiprosessorin makromäärityksellä. Jos "#define STOPNOTES" jätetään koskemattomaksi, askel pysähtyy nuottien väliin. Tämä ei ole aina toivottavaa (esimerkiksi nopeiden arpeggioiden soittaminen), joten jos haluat muuttaa tätä käyttäytymistä, poista tai kommentoi yksinkertaisesti, että #define -lause ja stepper toimivat jatkuvasti toistamisen jälkeen.

-Käytän halpaa 2-oktaavista MIDI-näppäimistöä, jossa on oktaavin ylös/alas-painike, mutta jos sinulla ei ole tätä vaihtoehtoa, voit siirtää oktaavinsiirtoa alla olevan taajuuden käännöksessä kertomalla tai jakamalla 2: lla.

MIDI-taajuus-käännös tehdään tällä rivillä playNote-toiminnossa: int f_out = (int) (27,5*pow (2, ((float) midiNote-33)/12));

- Käytän yleensä tietokonettani liittämiseen USB MIDI: n kautta - voit tehdä tämän suosikkisi Digital Audio Workstation (DAW) -ohjelmistosta. Jos sinulla ei ole sellaista, tämän järjestelmän käyttöönotto on melko helppoa LMMS: n avulla - ilmainen, avoimen lähdekoodin alusta. Kun se on asennettu ja käynnissä, aseta Arduino Due MIDI -lähtölaitteeksi, ja jos käytät USB -MIDI -näppäimistöä, aseta se tuloksi.

Vaihe 3: Testaus ja kokeilu

On aika pelata askelmoottorilla!

Kuten todettu, koko idea tämän takana oli eräänlainen off-the-mansettikokeilu, joten tee kaikin tavoin omia kokeiluja!

Suositeltava: