Përmbajtje:

Stepper Motor i kontrolluar nga MIDI Me një çip të sintezës direkte dixhitale (DDS): 3 hapa
Stepper Motor i kontrolluar nga MIDI Me një çip të sintezës direkte dixhitale (DDS): 3 hapa

Video: Stepper Motor i kontrolluar nga MIDI Me një çip të sintezës direkte dixhitale (DDS): 3 hapa

Video: Stepper Motor i kontrolluar nga MIDI Me një çip të sintezës direkte dixhitale (DDS): 3 hapa
Video: CS50 2013 - Week 10 2024, Korrik
Anonim
Stepper Motor i kontrolluar nga MIDI Me një çip të sintezës direkte dixhitale (DDS)
Stepper Motor i kontrolluar nga MIDI Me një çip të sintezës direkte dixhitale (DDS)
Stepper Motor i kontrolluar nga MIDI Me një çip të sintezës direkte dixhitale (DDS)
Stepper Motor i kontrolluar nga MIDI Me një çip të sintezës direkte dixhitale (DDS)
Stepper Motor i kontrolluar nga MIDI Me një çip të sintezës direkte dixhitale (DDS)
Stepper Motor i kontrolluar nga MIDI Me një çip të sintezës direkte dixhitale (DDS)
Stepper Motor i kontrolluar nga MIDI Me një çip të sintezës direkte dixhitale (DDS)
Stepper Motor i kontrolluar nga MIDI Me një çip të sintezës direkte dixhitale (DDS)

A keni pasur ndonjëherë një ide të keqe që VETUM ju është dashur të ktheheni në një mini projekt? Epo, unë po luaja me një skicë që kisha bërë për Arduino Due që synonte të bënte muzikë me një modul AD9833 Digital Digital Synthesis (DDS)… dhe në një moment mendova "hej, ndoshta duhet të ngre një motor stepper/shofer për të kjo ". Dhe kjo ide është pikërisht ajo që ndezi këtë projekt të vogël të bazuar në bukë.

Në këtë projekt do të përfshihet një kod për përdorimin e MIDI-over-USB për të kontrolluar një Arduino Due dhe dërgimin e valëve katrore midis një moduli AD9833 dhe drejtuesit të hapjes. Do të ketë gjithashtu një diagram dhe udhëzime themelore për lidhjen e tij me një Arduino Due.

Furnizimet:

Çfarë ju nevojitet për këtë projekt:

Arduino Due

SH NOTNIM: Kodi është shkruar për shkakun, por gjithashtu duhet të funksionojë dhe/ose të përshtatet për Zero. Ai përdor bibliotekën MIDIUSB të Arduino, e cila kërkon një port USB amtare.

Breadboard pa saldim + kërcyes

AD9833 Moduli i Breakout

A4988 Stepper Driver (ose të ngjashme)

NEMA 17 Stepper Motor (ose të ngjashme)

- Furnizimi me energji 24V (vini re, unë zgjodha këtë vlerë prej 24 Volt sepse ishte më e madhe se tensioni nominal i motorit stepper. Zbatimi juaj mund të jetë i ndryshëm nëse përdorni një motor më të madh)

Hapi 1: Breadboarding

Breadboarding
Breadboarding

Ideja themelore prapa kësaj është që IC e Sintezës Dixhitale Direkte do të krijojë një valë katrore për të drejtuar kunjën "hap" të drejtuesit të motorit stepper. Ky drejtues stepper do të lëvizë motorin në frekuencën e caktuar të dëgjueshme. Drejtimi i motorit është disi arbitrar për aq kohë sa ecën me frekuencën e duhur.

Qasja që preferoj të marr me ngrënien e bukës është që së pari të drejtoj kunjat dhe bazat e energjisë dhe pastaj të filloj të drejtoj të gjitha lidhjet e tjera, jo të energjisë.

Terren:

- Lidhni kunjat AGND dhe DGND të modulit AD9833 me hekurudhën GND në tabelën e bukës.

- Lidhni dy kunjat GND në Shoferin Stepper në hekurudhën GND

- Silleni këtë në një nga Kunjat GND të Arduino Due

Fuqia 3.3V:

- Lidhni Pin VDD të Stepper Driver në V+ Rail të breadboard

- Lidhni Pin VCC të modulit AD9833 me hekurudhën V+ të bordit të bukës

- Sillni këtë në Pin 3.3V të Arduino Due

Fuqia 24V:

- Lidhni kunjin VMOT me furnizimin me energji elektrike 24V DC (në varësi të zgjedhjes së motorit tuaj, mund të dëshironi të përdorni një hekurudhë furnizimi më të lartë ose më të ulët)

Lidhja modul me modul:

- Lidhni kunjin OUT nga moduli AD9833 me kunjin STEP të drejtuesit të motorit

Lidhjet e shoferit Stepper:

- Lidhni lidhjet Stepper Motor me kunjat 2B/2A/1A/1B. Polariteti nuk është aq i rëndësishëm, përderisa fazat e Shoferit përputhen me ato të Stepper Motor.

- Lidhni kunjat RESET dhe SLEEP së bashku dhe sillni ato në Arduino Due Pin 8.

- Lidhni pinin DIR me hekurudhën 3.3V

AD9833 Lidhjet e modulit:

- Lidhni SCLK me kunjin SCK të Arduino Due. Vini re se kjo kunj është në kokën ICSP mashkullore me 6 kunja pranë mikrokontrolluesit, jo në titujt e jashtëm normalë femra.

- Lidhni pinin SDATA me kunjin MOSI të Due. Vini re se kjo kunj është në kokën ICSP mashkullore me 6 kunja pranë mikrokontrolluesit, jo në titujt e jashtëm normalë femra.

- Lidhni FSYNC me Arduino Due Pin 6 (kjo është kunja e Chip Select për këtë projekt)

Tani që pllaka e bukës është mbledhur plotësisht, është koha për t'i hedhur një sy kodit!

Hapi 2: Programimi dhe konfigurimi MIDI

Programimi dhe konfigurimi MIDI
Programimi dhe konfigurimi MIDI

Skica e bashkangjitur.ino do të marrë hyrje USB-MIDI përmes portit USB të Arduino Due dhe do t'i përdorë ato për të drejtuar AD9833. Ky çip ka një DAC që funksionon në 25MHz w/ 28 bit të rezolucionit të frekuencës (mbingarkesë totale për atë që nevojitet këtu), dhe pjesa më e madhe e kodit këtu është konfigurimi i tij për të drejtuar dhe prodhuar një valë katrore.

Shënim: ka dy Porte USB. Njëra përdoret për programimin e tabelës, dhe tjetra do të përdoret për komunikimin MIDI-mbi-USB

Vini re se kjo skicë nuk do të funksionojë siç është në Arduino Uno - ky projekt është specifik në nevojën e tij për USB Native në Arduino Due ose pajisje të ngjashme

Opsionet e personalizimit:

- Ekzistojnë 2 mënyra, të cilat mund të vendosen nga një përcaktim makro i paraprocesorit. Nëse "#define STOPNOTES" lihet e paprekur, hapi do të ndalet në mes të shënimeve. Kjo nuk është gjithmonë e dëshiruar (për shembull, duke luajtur arpezhe të shpejtë), kështu që për të ndryshuar këtë sjellje, thjesht fshini ose komentoni atë deklaratë #përkufizo dhe hapi do të funksionojë vazhdimisht pasi të luhet.

-Unë përdor një tastierë të lirë MIDI 2-oktavë me këtë që ka një buton oktavë lart/poshtë, por në rast se nuk e keni atë opsion, mund ta ndryshoni oktavën-përkthimin e frekuencës më poshtë duke shumëzuar ose ndarë me fuqitë 2.

Përkthimi MIDI në frekuencë bëhet me këtë linjë në funksionin playNote: int f_out = (int) (27.5*pow (2, ((float) midiNote-33)/12));

- Unë prirem të përdor kompjuterin tim për të lidhur me MIDI USB - ju mund ta bëni këtë nga programi juaj i preferuar Digital Audio Workstation (DAW). Nëse nuk keni një të tillë, është shumë e lehtë të vendosni këtë sistem duke përdorur LMMS - një platformë falas, me burim të hapur. Pasi të jetë instaluar dhe funksionuar, thjesht vendosni Arduino Due si pajisje dalëse MIDI, dhe nëse përdorni një tastierë USB MIDI, vendoseni atë si një hyrje.

Hapi 3: Testimi dhe Eksperimentimi

Koha për të luajtur motorin tuaj stepper!

Siç u tha, e gjithë ideja pas këtij ishte një lloj eksperimenti pa pranga, kështu që me çdo kusht, bëni disa eksperimente tuajat!

Recommended: