Daftar Isi:

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

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

Video: Motor Stepper yang dikendalikan MIDI Dengan Chip Sintesis Digital Langsung (DDS): 3 Langkah
Video: Arduino Noise Maker 2024, November
Anonim
Motor Stepper yang dikendalikan MIDI Dengan Chip Sintesis Digital Langsung (DDS)
Motor Stepper yang dikendalikan MIDI Dengan Chip Sintesis Digital Langsung (DDS)
Motor Stepper yang dikendalikan MIDI Dengan Chip Sintesis Digital Langsung (DDS)
Motor Stepper yang dikendalikan MIDI Dengan Chip Sintesis Digital Langsung (DDS)
Motor Stepper yang dikendalikan MIDI Dengan Chip Sintesis Digital Langsung (DDS)
Motor Stepper yang dikendalikan MIDI Dengan Chip Sintesis Digital Langsung (DDS)
Motor Stepper yang dikendalikan MIDI Dengan Chip Sintesis Digital Langsung (DDS)
Motor Stepper yang dikendalikan MIDI Dengan Chip Sintesis Digital Langsung (DDS)

Pernah punya ide buruk bahwa Anda HANYA harus berubah menjadi proyek mini? Yah, saya bermain-main dengan sketsa yang saya buat untuk Arduino Due yang bertujuan membuat musik dengan modul AD9833 Direct Digital Synthesis (DDS)… ini . Dan ide itulah yang memicu proyek kecil berbasis papan tempat memotong roti ini.

Termasuk dalam proyek ini adalah beberapa kode untuk menggunakan MIDI-over-USB untuk mengontrol Arduino Due dan mengirim gelombang persegi antara modul AD9833 dan driver stepper. Juga akan ada diagram dan instruksi dasar untuk menghubungkan ini ke Arduino Due.

Perlengkapan:

Apa yang Anda perlukan untuk proyek ini:

Arduino Due

CATATAN: Kode ditulis untuk Due, tetapi juga harus berfungsi dan/atau disesuaikan untuk Zero. Ini menggunakan perpustakaan MIDIUSB Arduino, yang membutuhkan port USB asli.

Papan tempat memotong roti tanpa solder + Jumper

Modul Breakout AD9833

Driver Stepper A4988 (atau yang serupa)

NEMA 17 Stepper Motor (atau sejenisnya)

- Catu Daya 24V (perhatikan, saya memilih nilai 24 Volt ini karena lebih besar dari tegangan nominal motor stepper. Implementasi Anda mungkin berbeda jika Anda menggunakan motor yang lebih besar)

Langkah 1: Papan tempat memotong roti

Papan tempat memotong roti
Papan tempat memotong roti

Ide dasar di balik ini adalah bahwa IC Sintesis Digital Langsung akan menghasilkan gelombang persegi untuk menggerakkan pin "langkah" driver motor stepper. Driver stepper ini kemudian akan menggerakkan motor pada frekuensi suara yang ditentukan. Arah motor agak sewenang-wenang asalkan langkah pada frekuensi yang benar.

Pendekatan yang saya lebih suka ambil dengan papan tempat memotong roti adalah dengan menjalankan pin dan arde daya terlebih dahulu dan kemudian mulai menjalankan semua koneksi non-daya lainnya.

Tanah:

- Hubungkan Pin AGND dan DGND dari Modul AD9833 ke Rel GND pada papan tempat memotong roti.

- Hubungkan dua Pin GND pada Driver Stepper ke Rel GND

- Bawa ini ke salah satu Pin GND Arduino Due

Daya 3.3V:

- Hubungkan Pin VDD Driver Stepper ke Rel V+ papan tempat memotong roti

- Hubungkan Pin VCC Modul AD9833 ke Rel V+ papan tempat memotong roti

- Bawa ini ke Pin 3.3V Arduino Due

Daya 24V:

- Hubungkan pin VMOT ke catu Daya DC 24V (tergantung pada pilihan motor Anda, Anda mungkin ingin menjalankan rel pasokan yang lebih tinggi atau lebih rendah)

Koneksi Modul-ke-Modul:

- Hubungkan pin OUT dari modul AD9833 ke pin STEP driver motor

Koneksi Driver Stepper:

- Hubungkan koneksi Motor Stepper ke Pin 2B/2A/1A/1B. Polaritas tidak begitu penting, selama fase Driver cocok dengan fase Motor Stepper.

- Hubungkan PIN RESET dan SLEEP bersama-sama, dan bawa ke Arduino Due Pin 8.

- Hubungkan Pin DIR ke Rel 3.3V

Koneksi Modul AD9833:

- Hubungkan SCLK ke pin SCK Arduino Due. Perhatikan bahwa pin ini ada pada header ICSP male 6-pin di dekat mikrokontroler, bukan pada header female eksternal normal.

- Hubungkan Pin SDATA ke pin MOSI Due. Perhatikan bahwa pin ini ada pada header ICSP male 6-pin di dekat mikrokontroler, bukan pada header female eksternal normal.

- Hubungkan FSYNC ke Arduino Due Pin 6 (ini adalah pin Chip Select untuk proyek ini)

Sekarang papan tempat memotong roti telah terpasang sepenuhnya, saatnya untuk melihat kodenya!

Langkah 2: Pemrograman dan Pengaturan MIDI

Pemrograman dan Pengaturan MIDI
Pemrograman dan Pengaturan MIDI

Sketsa.ino terlampir akan mengambil input USB-MIDI melalui port USB Asli Arduino Due, dan akan menggunakannya untuk menggerakkan AD9833. Chip ini memiliki DAC yang berjalan pada resolusi frekuensi 25MHz w/ 28 bit (total berlebihan untuk apa yang diperlukan di sini), dan sebagian besar kode di sini mengonfigurasinya untuk menjalankan dan mengeluarkan gelombang persegi.

Catatan: ada dua Port USB. Satu digunakan untuk memprogram papan, dan yang lainnya akan digunakan untuk komunikasi MIDI-over-USB

Perhatikan bahwa sketsa ini tidak akan berfungsi sebagaimana adanya di Arduino Uno - proyek ini khusus membutuhkan USB Asli di Arduino Due atau perangkat serupa

Opsi Kustomisasi:

- Ada 2 mode, yang dapat diatur oleh definisi makro preprosesor. Jika "#define STOPNOTE" dibiarkan utuh, stepper akan berhenti di antara not. Ini tidak selalu diinginkan (misalnya, memainkan arpeggio cepat), jadi untuk mengubah perilaku ini, cukup hapus atau komentari pernyataan #define itu dan stepper akan terus berjalan setelah dimainkan.

- Saya menggunakan keyboard MIDI 2 oktaf murah dengan ini yang memiliki tombol naik/turun oktaf, tetapi jika Anda tidak memiliki opsi itu, Anda dapat menggeser oktaf terjemahan frekuensi di bawah dengan mengalikan atau membagi dengan pangkat 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 interfacing melalui USB MIDI - Anda dapat melakukan ini dari perangkat lunak Digital Audio Workstation (DAW) favorit Anda. Jika Anda tidak memilikinya, cukup mudah untuk mengatur sistem ini menggunakan LMMS - platform open source gratis. Setelah diinstal dan dijalankan, cukup atur Arduino Due sebagai Perangkat Output MIDI, dan jika Anda menggunakan keyboard MIDI USB, setel itu sebagai input.

Langkah 3: Menguji dan Bereksperimen

Saatnya memainkan motor stepper Anda!

Seperti yang dinyatakan, seluruh ide di balik ini adalah semacam eksperimen spontan, jadi tentu saja, lakukan eksperimen Anda sendiri!

Direkomendasikan: