Talaan ng mga Nilalaman:

Kinokontrol ng MIDI na Stepper Motor Na May Direktang Digital Synthesis (DDS) Chip: 3 Mga Hakbang
Kinokontrol ng MIDI na Stepper Motor Na May Direktang Digital Synthesis (DDS) Chip: 3 Mga Hakbang

Video: Kinokontrol ng MIDI na Stepper Motor Na May Direktang Digital Synthesis (DDS) Chip: 3 Mga Hakbang

Video: Kinokontrol ng MIDI na Stepper Motor Na May Direktang Digital Synthesis (DDS) Chip: 3 Mga Hakbang
Video: Enchanting Abandoned 17th-Century Chateau in France (Entirely frozen in time for 26 years) 2024, Nobyembre
Anonim
Kinokontrol ng MIDI na Stepper Motor Na May Direktang Digital Synthesis (DDS) Chip
Kinokontrol ng MIDI na Stepper Motor Na May Direktang Digital Synthesis (DDS) Chip
Kinokontrol ng MIDI na Stepper Motor Na May Direktang Digital Synthesis (DDS) Chip
Kinokontrol ng MIDI na Stepper Motor Na May Direktang Digital Synthesis (DDS) Chip
Kinokontrol ng MIDI na Stepper Motor Na May Direktang Digital Synthesis (DDS) Chip
Kinokontrol ng MIDI na Stepper Motor Na May Direktang Digital Synthesis (DDS) Chip
Kinokontrol ng MIDI na Stepper Motor Na May Direktang Digital Synthesis (DDS) Chip
Kinokontrol ng MIDI na Stepper Motor Na May Direktang Digital Synthesis (DDS) Chip

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

Breadboarding
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

Programming at MIDI Setup
Programming at MIDI Setup

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: