Daftar Isi:
- Langkah 1: Papan tempat memotong roti
- Langkah 2: Pemrograman dan Pengaturan MIDI
- Langkah 3: Menguji dan Bereksperimen
Video: Motor Stepper yang dikendalikan MIDI Dengan Chip Sintesis Digital Langsung (DDS): 3 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:53
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
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
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:
Motor Stepper Terkendali Motor Stepper Tanpa Mikrokontroler!: 6 Langkah
Motor Stepper Terkendali Motor Stepper Tanpa Mikrokontroler!: Dalam Instruksi singkat ini, kita akan membuat pengontrol motor stepper sederhana menggunakan motor stepper. Proyek ini tidak memerlukan sirkuit kompleks atau mikrokontroler. Jadi tanpa basa-basi lagi, mari kita mulai
Stepper Motor Controlled Stepper Motor Tanpa Mikrokontroler(V2): 9 Langkah (dengan Gambar)
Motor Stepper Terkendali Motor Stepper Tanpa Mikrokontroler(V2): Dalam salah satu Instruksi saya sebelumnya, saya menunjukkan kepada Anda cara mengontrol motor stepper menggunakan motor stepper tanpa mikrokontroler. Itu adalah proyek yang cepat dan menyenangkan tetapi datang dengan dua masalah yang akan diselesaikan dalam Instructable ini. Jadi, akal
Lokomotif Model Terkendali Motor Stepper - Stepper Motor Sebagai Rotary Encoder: 11 Langkah (dengan Gambar)
Lokomotif Model Terkendali Motor Stepper | Motor Stepper Sebagai Rotary Encoder: Dalam salah satu Instruksi sebelumnya, kita telah mempelajari cara menggunakan motor stepper sebagai rotary encoder. Dalam proyek ini, kita sekarang akan menggunakan motor stepper yang memutar rotary encoder untuk mengontrol model lokomotif menggunakan mikrokontroler Arduino. Jadi, tanpa fu
Motor Stepper Terkendali Motor Stepper - Stepper Motor Sebagai Rotary Encoder: 11 Langkah (dengan Gambar)
Motor Stepper Terkendali Motor Stepper | Stepper Motor Sebagai Rotary Encoder: Punya beberapa motor stepper tergeletak di sekitar dan ingin melakukan sesuatu? Dalam Instruksi ini, mari kita gunakan motor stepper sebagai rotary encoder untuk mengontrol posisi motor stepper lain menggunakan mikrokontroler Arduino. Jadi tanpa basa-basi lagi, mari kita
LED Bluetooth yang Dikendalikan Smartphone (dengan Sinkronisasi Musik Langsung): 7 Langkah
LED Bluetooth Terkendali Smartphone (dengan Sinkronisasi Musik Langsung): Saya selalu suka membangun sesuatu, setelah saya menemukan bahwa asrama kampus baru saya memiliki pencahayaan yang buruk, saya memutuskan untuk sedikit membumbuinya.***PERINGATAN*** Jika Anda membangun proyek ini pada skala yang sama dengan pengaturan saya, Anda akan bekerja dengan jumlah elemen yang layak