Talaan ng mga Nilalaman:
- Hakbang 1: Breadboarding
- Hakbang 2: Pag-program at Pag-set up ng MIDI
- Hakbang 3: Pagsubok at Pag-eksperimento
Video: Kinokontrol ng MIDI na Stepper Motor Na May Direktang Digital Synthesis (DDS) Chip: 3 Mga Hakbang
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:10
Kailanman nagkaroon ng isang masamang ideya na KAYO ay dapat na maging isang maliit na proyekto? Sa gayon, naglalaro ako sa isang sketch na ginawa ko para sa Arduino Dahil na naglalayong gumawa ng musika gamit ang isang AD9833 Direct Digital Synthesis (DDS) na module … at sa ilang mga punto naisip ko na "hoy, baka kailangan kong maglagay ng stepper motor / driver sa ito ". At ang ideyang iyon ay eksaktong nagmula sa maliit na proyektong ito na batay sa tinapay.
Kasama sa proyektong ito ay magiging ilang code para sa paggamit ng MIDI-over-USB upang makontrol ang isang Arduino Dahil at magpadala ng mga square wave sa pagitan ng isang AD9833 module at ang stepper driver. Magkakaroon din ng isang diagram at pangunahing mga tagubilin para sa pagkonekta nito hanggang sa isang Arduino Dahil.
Mga Pantustos:
Ano ang kakailanganin mo para sa proyektong ito:
Arduino Dahil
TANDAAN: Ang code ay nakasulat para sa Dahil, ngunit dapat din itong gumana at / o maiakma para sa Zero. Gumagamit ito ng MIDIUSB library ng Arduino, na nangangailangan ng isang katutubong USB port.
Solderless Breadboard + Jumpers
AD9833 Breakout Module
A4988 Stepper Driver (o katulad)
NEMA 17 Stepper Motor (o katulad)
- 24V Power Supply (tandaan, pinili ko ang halagang ito ng 24 Volts sapagkat mas malaki ito kaysa sa nominal na stepper na boltahe ng motor. Maaaring magkakaiba ang iyong pagpapatupad kung gumagamit ka ng mas malaking motor)
Hakbang 1: Breadboarding
Ang pangunahing ideya sa likod nito ay ang Direct Digital Synthesis IC ay bubuo ng isang square wave upang himukin ang "step" pin ng driver ng stepper motor. Ang driver ng stepper na ito ay lilipat ng motor sa tinukoy na naririnig na dalas. Ang direksyon ng motor ay medyo arbitraryo basta't tumatakbong ito sa tamang dalas.
Ang diskarte na mas gusto kong gawin sa breadboarding ay upang patakbuhin muna ang mga power pin at bakuran at pagkatapos ay simulang patakbuhin ang lahat ng iba pang mga hindi koneksyon na walang kuryente.
Lupa:
- Ikonekta ang AGND at DGND Pins ng AD9833 Module sa GND Rail sa breadboard.
- Ikaugnay ang dalawang GND Pins sa Stepper Driver sa GND Rail
- Dalhin ito sa isa sa mga GND Pins ng Arduino Dahil
3.3V Lakas:
- Ikonekta ang VDD Pin ng Stepper Driver sa V + Rail ng breadboard
- Ikonekta ang VCC Pin ng AD9833 Module sa V + Rail ng breadboard
- Dalhin ito sa 3.3V Pin ng Arduino Dahil
24V Lakas:
- Ikonekta ang VMOT pin sa 24V DC Power supply (depende sa iyong pinili ng motor, baka gusto mong magpatakbo ng mas mataas o mas mababang supply rail)
Koneksyon sa Module-to-Module:
- Ikonekta ang OUT pin mula sa module ng AD9833 sa STEP pin ng driver ng motor
Mga Koneksyon ng Stepper Driver:
- Ikonekta ang mga koneksyon ng Stepper Motor sa 2B / 2A / 1A / 1B Pins. Ang polarity ay hindi ganon kahalaga, basta't ang mga phase ng Driver ay tumutugma sa mga Stepper Motor.
- Ikonekta ang I-reset at TULOG na mga Pin nang magkasama, at dalhin ang mga iyon sa Arduino Dahil Pin 8.
- Ikonekta ang DIR Pin sa 3.3V Rail
Mga Koneksyon sa Module ng AD9833:
- Ikonekta ang SCLK sa pin ng SCK ng Arduino Dahil. Tandaan na ang pin na ito ay nasa 6-pin male ICSP header malapit sa microcontroller, hindi sa normal na panlabas na mga header ng babae.
- Ikonekta ang SDATA Pin sa MOSI pin ng Dahil. Tandaan na ang pin na ito ay nasa 6-pin male ICSP header malapit sa microcontroller, hindi sa normal na panlabas na mga header ng babae.
- Ikonekta ang FSYNC sa Arduino Dahil Pin 6 (ito ang Chip Select pin para sa proyektong ito)
Ngayon na ang breadboard ay buo na natipon, oras na upang tingnan ang code!
Hakbang 2: Pag-program at Pag-set up ng MIDI
Ang naka-attach na.ino sketch ay kukuha ng mga input ng USB-MIDI sa pamamagitan ng Native USB port ng Arduino Dahil, at gagamitin ang mga ito upang himukin ang AD9833. Ang chip na ito ay may DAC na tumatakbo sa 25MHz w / 28 bit ng resolusyon ng dalas (kabuuang labis na paggamit para sa kung ano ang kinakailangan dito), at ang karamihan sa code dito ay ang pag-configure upang magpatakbo at maglabas ng isang square wave.
Tandaan: mayroong dalawang USB Ports. Ang isa ay ginagamit para sa pagprograma sa board, at ang iba pa ay gagamitin para sa MIDI-over-USB comm
Tandaan na ang sketch na ito ay hindi gagana tulad ng sa Arduino Uno - ang proyektong ito ay tiyak sa pangangailangan nito para sa Native USB sa Arduino Naaangkop o mga katulad na aparato
Mga Pagpipilian sa Pagpapasadya:
- Mayroong 2 mga mode, na maaaring maitakda ng isang preprocessor macro kahulugan. Kung ang "#define STOPNOTES" ay naiwan na buo, ang stepper ay titigil sa pagitan ng mga tala. Hindi ito laging ninanais (halimbawa, naglalaro ng mabilis na mga arpeggios), kaya upang mabago ang pag-uugaling ito, tanggalin o puna lamang na ang #define na pahayag at ang stepper ay patuloy na tatakbo sa sandaling nilalaro.
- Gumagamit ako ng isang murang 2-octave MIDI keyboard kasama nito na mayroong isang oktaba pataas / pababa na pindutan, ngunit kung sakaling wala kang pagpipiliang iyon, maaari mong i-oktave-ilipat ang salin sa dalas sa ibaba sa pamamagitan ng pag-multiply o paghahati ng mga kapangyarihan ng 2.
Ang pagsasalin ng MIDI-to-frequency ay tapos na sa linyang ito sa pagpapaandar ng playNote: int f_out = (int) (27.5 * pow (2, ((float) midiNote-33) / 12));
- May posibilidad akong gamitin ang aking PC para sa interfacing sa paglipas ng USB MIDI - magagawa mo ito mula sa iyong paboritong software ng Digital Audio Workstation (DAW). Kung wala kang isa, napakadaling i-set up ang sistemang ito gamit ang LMMS - isang libre, bukas na platform ng mapagkukunan. Kapag na-install at tumatakbo na ito, itakda lamang ang Arduino Dahil bilang MIDI Output Device, at kung gumagamit ka ng isang USB MIDI keyboard, itakda iyon bilang isang input.
Hakbang 3: Pagsubok at Pag-eksperimento
Oras upang i-play ang iyong stepper motor!
Tulad ng nakasaad, ang buong ideya sa likod nito ay isang uri ng isang eksperimento na off-the-cuff, kaya sa lahat ng paraan, gumawa ng ilang eksperimento sa iyong sarili!
Inirerekumendang:
Kinokontrol ng Stepper Motor na Stepper Motor Nang Walang Microcontroller !: 6 Mga Hakbang
Kinokontrol ng Stepper Motor na Stepper Motor Nang Walang Microcontroller !: Sa mabilis na Ituturo na ito, gagawa kami ng isang simpleng stepper motor Controller gamit ang isang stepper motor. Ang proyektong ito ay hindi nangangailangan ng kumplikadong circuitry o isang microcontroller. Kaya nang walang karagdagang pagtatalo, magsimula na tayo
Kinokontrol ng Stepper Motor na Stepper Motor Nang Walang Microcontroller (V2): 9 Mga Hakbang (na may Mga Larawan)
Kinokontrol ng Stepper Motor na Stepper Motor Nang Walang Microcontroller (V2): Sa isa sa aking mga nakaraang Instructable, ipinakita ko sa iyo kung paano makontrol ang isang stepper motor na gumagamit ng isang stepper motor na walang microcontroller. Ito ay isang mabilis at nakakatuwang proyekto ngunit dumating ito kasama ang dalawang mga problema na malulutas sa Instructable na ito. Kaya, wit
Kinokontrol na Modelong Stepper Motor ng Stepper - Stepper Motor Bilang isang Rotary Encoder: 11 Hakbang (na may Mga Larawan)
Kinokontrol na Modelong Stepper Motor ng Stepper | Stepper Motor Bilang isang Rotary Encoder: Sa isa sa mga nakaraang Instructable, natutunan namin kung paano gamitin ang isang stepper motor bilang isang rotary encoder. Sa proyektong ito, gagamitin namin ngayon ang stepper motor na naka-rotary encoder upang makontrol ang isang modelo ng lokomotip gamit ang isang Arduino microcontroller. Kaya, nang walang fu
Kinokontrol ng Stepper Motor na Stepper Motor - Stepper Motor Bilang isang Rotary Encoder: 11 Hakbang (na may Mga Larawan)
Kinokontrol ng Stepper Motor na Stepper Motor | Stepper Motor Bilang isang Rotary Encoder: Magkaroon ng isang pares ng mga stepper motor na nakahiga at nais na gumawa ng isang bagay? Sa Instructable na ito, gumamit tayo ng isang stepper motor bilang isang rotary encoder upang makontrol ang posisyon ng isa pang stepper motor gamit ang isang Arduino microcontroller. Kaya't nang walang pag-aalinlangan, ge
Direktang Pagpapatakbo ng Mga Script Mula sa Menu ng Konteksto sa Windows XP: 3 Mga Hakbang
Direktang Pagpapatakbo ng Mga Script Mula sa Menu ng Konteksto sa Windows XP: Orihinal na nabuo ito sa isang thread sa Aqua-soft.org tungkol sa Paglikha ng isang " Empty-able " Folder. Gumagawa ng isang " Empty-able " Nais ng FolderSomeone na maalis ang laman ng kanilang folder sa pag-download nang hindi tinatanggal ang f