Isi kandungan:

Motor Stepper yang dikendalikan oleh MIDI Dengan Cip Sintesis Digital Langsung (DDS): 3 Langkah
Motor Stepper yang dikendalikan oleh MIDI Dengan Cip Sintesis Digital Langsung (DDS): 3 Langkah

Video: Motor Stepper yang dikendalikan oleh MIDI Dengan Cip Sintesis Digital Langsung (DDS): 3 Langkah

Video: Motor Stepper yang dikendalikan oleh MIDI Dengan Cip Sintesis Digital Langsung (DDS): 3 Langkah
Video: Создатель шума для Arduino 2024, Disember
Anonim
Motor Stepper yang dikendalikan oleh MIDI Dengan Cip Sintesis Digital Langsung (DDS)
Motor Stepper yang dikendalikan oleh MIDI Dengan Cip Sintesis Digital Langsung (DDS)
Motor Stepper yang dikendalikan oleh MIDI Dengan Cip Sintesis Digital Langsung (DDS)
Motor Stepper yang dikendalikan oleh MIDI Dengan Cip Sintesis Digital Langsung (DDS)
Motor Stepper yang dikendalikan oleh MIDI Dengan Cip Sintesis Digital Langsung (DDS)
Motor Stepper yang dikendalikan oleh MIDI Dengan Cip Sintesis Digital Langsung (DDS)
Motor Stepper yang dikendalikan oleh MIDI Dengan Cip Sintesis Digital Langsung (DDS)
Motor Stepper yang dikendalikan oleh MIDI Dengan Cip Sintesis Digital Langsung (DDS)

Pernah mempunyai idea buruk bahawa anda HANYA harus berubah menjadi projek mini? Baiklah, saya bermain-main dengan sketsa yang saya buat untuk Arduino Due yang bertujuan untuk membuat muzik dengan modul AD9833 Direct Digital Synthesis (DDS) … dan pada suatu ketika saya berfikir "hei, mungkin saya harus menggunakan motor / pemandu stepper untuk ini ". Dan idea itulah yang mendorong projek berasaskan papan roti kecil ini.

Termasuk dalam projek ini akan ada beberapa kod untuk menggunakan MIDI-over-USB untuk mengendalikan Arduino Due dan menghantar gelombang persegi antara modul AD9833 dan pemacu stepper. Terdapat juga rajah dan petunjuk asas untuk menghubungkannya ke Arduino Due.

Bekalan:

Apa yang anda perlukan untuk projek ini:

Arduino Due

CATATAN: Kod ditulis untuk Hutang, tetapi ia juga harus berfungsi dan / atau disesuaikan untuk Nol. Ia menggunakan perpustakaan MIDIUSB Arduino, yang memerlukan port USB asli.

Papan Roti Solderless + Pelompat

Modul Breakout AD9833

Pemandu Stepper A4988 (atau serupa)

NEMA 17 Stepper Motor (atau serupa)

- Bekalan Daya 24V (perhatikan, saya memilih nilai 24 Volt ini kerana lebih besar daripada voltan motor stepper nominal. Pelaksanaan anda mungkin berbeza jika anda menggunakan motor yang lebih besar)

Langkah 1: Breadboarding

Papan Roti
Papan Roti

Idea asas di sebalik ini adalah bahawa Direct Digital Synthesis IC akan menghasilkan gelombang persegi untuk menggerakkan pin "step" pemandu motor stepper. Pemandu stepper ini kemudian akan menggerakkan motor pada frekuensi dengar yang ditentukan. Arah motor agak sewenang-wenang sepanjang ia bergerak pada frekuensi yang betul.

Pendekatan yang lebih saya gemari dengan papan roti adalah dengan menjalankan pin dan landasan kuasa terlebih dahulu dan kemudian mula menjalankan semua sambungan bukan kuasa yang lain.

Tanah:

- Sambungkan Pin AGND dan DGND Modul AD9833 ke Rel GND di papan roti.

- Sambungkan dua Pin GND pada Pemacu Stepper ke Rel GND

- Bawa ini ke salah satu Pin GND Arduino Due

Kuasa 3.3V:

- Sambungkan Pin VDD Pemacu Stepper ke Rel V + papan roti

- Sambungkan Pin VCC Modul AD9833 ke Rel V + papan roti

- Bawa ini ke Pin 3.3V Arduino Due

Kuasa 24V:

- Sambungkan pin VMOT ke bekalan kuasa DC 24V (bergantung pada motor pilihan anda, anda mungkin ingin menggunakan rel bekalan yang lebih tinggi atau lebih rendah)

Sambungan Modul ke Modul:

- Sambungkan pin OUT dari modul AD9833 ke pin STEP pemandu motor

Sambungan Pemacu Stepper:

- Sambungkan sambungan Motor Stepper ke Pin 2B / 2A / 1A / 1B. Polariti tidak begitu penting, selagi fasa Pemacu sesuai dengan Motor Stepper.

- Sambungkan Pin RESET dan SLEEP bersama-sama, dan bawa pin ke Arduino Due Pin 8.

- Sambungkan Pin DIR ke Rel 3.3V

Sambungan Modul AD9833:

- Sambungkan SCLK ke pin SCK Arduino Due. Perhatikan bahawa pin ini terdapat pada header ICSP lelaki 6 pin berhampiran mikrokontroler, bukan pada header wanita luaran biasa.

- Sambungkan Pin SDATA ke pin MOSI Due. Perhatikan bahawa pin ini terdapat pada header ICSP lelaki 6 pin berhampiran mikrokontroler, bukan pada header wanita luaran biasa.

- Sambungkan FSYNC ke Arduino Due Pin 6 (ini adalah pin Chip Select untuk projek ini)

Sekarang papan roti dipasang sepenuhnya, sudah tiba masanya untuk melihat kodnya!

Langkah 2: Pengaturcaraan dan Persediaan MIDI

Pengaturcaraan dan Persediaan MIDI
Pengaturcaraan dan Persediaan MIDI

Sketsa.ino yang dilampirkan akan mengambil input USB-MIDI melalui port USB Asli Arduino Due, dan akan menggunakannya untuk memacu AD9833. Cip ini mempunyai DAC yang beroperasi pada resolusi frekuensi 25MHz w / 28 bit (jumlah berlebihan untuk apa yang diperlukan di sini), dan banyak kod di sini mengkonfigurasi untuk menjalankan dan mengeluarkan gelombang persegi.

Catatan: terdapat dua Port USB. Yang satu digunakan untuk memprogram papan tulis, dan yang lainnya akan digunakan untuk MIDI-over-USB comm

Perhatikan bahawa lakaran ini tidak akan berfungsi sebagaimana adanya di Arduino Uno - projek ini khusus untuk keperluan USB Asli di Arduino Due atau peranti serupa

Pilihan Penyesuaian:

- Terdapat 2 mod, yang dapat ditetapkan oleh definisi makro preprocessor. Sekiranya "#define STOPNOTES" dibiarkan utuh, stepper akan berhenti di antara nota. Ini tidak selalu diingini (misalnya, bermain arpeggios pantas), jadi untuk mengubah tingkah laku ini, hapus atau komen bahawa pernyataan #define dan stepper akan berjalan berterusan setelah dimainkan.

- Saya menggunakan papan kekunci MIDI 2-oktaf yang murah dengan butang atas / bawah oktaf, tetapi sekiranya anda tidak mempunyai pilihan itu, anda boleh mengubah terjemahan frekuensi di bawah dengan mengalikan atau membahagi dengan kuasa 2.

Terjemahan MIDI-ke-frekuensi dilakukan dengan baris ini dalam fungsi playNote: int f_out = (int) (27.5 * pow (2, ((float) midiNote-33) / 12));

- Saya cenderung menggunakan PC saya untuk berinteraksi melalui USB MIDI - anda boleh melakukan ini dari perisian Digital Audio Workstation (DAW) kegemaran anda. Sekiranya anda tidak memilikinya, cukup mudah untuk mengatur sistem ini menggunakan LMMS - platform sumber terbuka percuma. Setelah dipasang dan berjalan, tetapkan Arduino Due sebagai Peranti Output MIDI, dan jika anda menggunakan papan kekunci MIDI USB, tetapkan sebagai input.

Langkah 3: Menguji dan Mengeksperimen

Masa untuk bermain motor stepper anda!

Seperti yang dinyatakan, keseluruhan idea di sebalik ini adalah jenis percubaan di luar cuff, jadi dengan segala cara, lakukan percubaan anda sendiri!

Disyorkan: