Daftar Isi:

Arduino Uno Midi Fighter: 5 Langkah
Arduino Uno Midi Fighter: 5 Langkah

Video: Arduino Uno Midi Fighter: 5 Langkah

Video: Arduino Uno Midi Fighter: 5 Langkah
Video: The 5 BEST ARDUINOS for Building a MIDI CONTROLLER 2024, Juli
Anonim
Arduino Uno Midi Fighter
Arduino Uno Midi Fighter

Instruksi ini dibuat untuk memenuhi persyaratan proyek Makecourse di University of South Florida (www.makecourse.com)

Berdasarkan MidiFighter yang populer oleh DJ Techtools, pengontrol Musical Instrument Digital Interface (MIDI) bertenaga Arduino buatan sendiri ini dapat digunakan sebagai perangkat MIDI di semua perangkat lunak Digital Audio Workstation (DAW). Pengontrol MIDI dapat mengirim dan menerima pesan MIDI dari komputer dan dapat digunakan untuk mengontrol secara langsung perangkat lunak mana pun yang digunakan. Selain itu, kontrol pada pengontrol MIDI sepenuhnya dapat disesuaikan -- artinya setiap tombol, penggeser, dan kenop individual dapat dipetakan ke fungsi apa pun dalam DAW. Misalnya, menekan tombol dapat memainkan nada tertentu atau diprogram untuk mengubah tempo proyek audio Anda.

github.com/jdtar/Arduino-Midi-Controller

Langkah 1: Bahan

Di bawah ini adalah daftar bahan dan alat yang digunakan dalam proyek ini.

Arduino Uno

Papan tempat memotong roti

4051/4067 Multiplexer

Kabel jumper

Kawat Ekstra

Potensiometer geser linier 2x 10k ohm

16x Sanwa 24mm tombol

Menyusut panas

Solder Besi

Pisau cukur

4,7 kΩ resistor

Lembaran Akrilik (untuk tutup)

Perumahan untuk tombol dan Arduino

Pencetak 3-D

Pemotong Laser

Langkah 2: Desain

Desain
Desain
Desain
Desain

Saya sudah menyediakan rumah untuk pengontrol MIDI saya sebelum memulai proyek, jadi saya membuat sketsa untuk tutupnya untuk memvisualisasikan di mana semuanya harus ditempatkan. Saya tahu saya menginginkan setidaknya 16 tombol dan beberapa potensiometer sebagai fitur, jadi saya mencoba untuk memisahkan komponen secara merata.

Setelah menyusun tata letak tutupnya, saya mengekspor file sebagai PDF 1:1 dan mengirimkannya ke pemotong laser untuk memotong selembar akrilik. Untuk lubang sekrup, saya menandai tempat yang saya inginkan dengan spidol dan melelehkan akrilik dengan filamen panas.

Terlampir adalah PDF 1:1 yang dapat dicetak sebagai 1:1 dan dipotong dengan perkakas listrik jika pemotong laser tidak tersedia.

Langkah 3: Konstruksi dan Pengkabelan

Konstruksi dan Pengkabelan
Konstruksi dan Pengkabelan
Konstruksi dan Pengkabelan
Konstruksi dan Pengkabelan
Konstruksi dan Pengkabelan
Konstruksi dan Pengkabelan

Setelah memotong akrilik, saya menemukan bahwa akrilik itu terlalu tipis untuk menopang semua komponen dengan cukup. Saya kemudian memotong lembaran lain dan merekatkannya bersama-sama yang kebetulan bekerja dengan sempurna.

Pengkabelan komponen membutuhkan beberapa percobaan dan kesalahan tetapi menghasilkan sketsa Fritzing yang terpasang. Saya pertama kali memasang kabel ground dan resistor 4.7kΩ, menyolder dan memanaskan sambungan pada tombol. Memasang dua potensiometer geser membutuhkan lubang leleh untuk sekrup di akrilik. Setelah dua potensiometer disekrup, mereka disambungkan ke pin analog A0 dan A1. Setelah pengkabelan selesai, saya ingat bahwa tidak ada tutup kenop untuk fader saya, jadi daripada membelinya, saya mencetak beberapa tutup kenop menggunakan printer 3-D dengan membuat sketsa di Autodesk Fusion 360 dan mengekspor ke file STL. De

Arduino Uno hanya memiliki 12 pin input digital yang tersedia tetapi 16 tombol harus dihubungkan. Untuk mengimbangi ini, saya memasang Multiplexer 74HC4051 pada papan tempat memotong roti yang menggunakan 4 pin input digital dan memungkinkan banyak sinyal untuk menggunakan saluran bersama yang menghasilkan 8 pin input digital yang tersedia dengan total 16 pin digital yang tersedia untuk digunakan.

Menghubungkan tombol ke pin yang benar hanyalah masalah membuat matriks 4x4 dan menggunakannya dalam kode. Namun bagian yang sulit adalah bahwa multiplexer tertentu yang dibeli memiliki tata letak pin khusus yang dibantu oleh lembar data dan juga saya memiliki tata letak catatan khusus saat memasang tombol yang akhirnya terlihat seperti ini:

MATRIKS CATATAN

[C2] [C#2] [D2] [D#2]

[G#2] [A1] [A#2] [B1]

[E1] [F1] [F#1] [G1]

[C2] [C#2] [D2] [D#2]

PIN MATRIX (M = MASUKAN MUX)

[6] [7] [8] [9]

[10] [11] [12] [13]

[M0] [M1] [M2] [M3]

[M4] [M5] [M6] [M7]

Langkah 4: Pemrograman

Pemrograman
Pemrograman

Setelah perakitan selesai, tinggal memprogram Arduino. Script terlampir ditulis sedemikian rupa sehingga mudah disesuaikan.

Awal skrip menyertakan perpustakaan MIDI.h dan perpustakaan pengontrol yang dipinjam dari blog Notes dan Volts yang keduanya disertakan dalam file zip untuk kode. Dengan menggunakan pustaka pengontrol, objek untuk tombol, potensiometer, dan tombol multipleks dapat dibuat berisi nilai data yang mencakup nomor not, nilai kontrol, kecepatan not, nomor saluran MIDI, dll. Pustaka MIDI.h memungkinkan komunikasi I/O MIDI pada Port serial Arduino yang pada gilirannya mengambil data dari objek pengontrol, mengubahnya menjadi pesan MIDI dan mengirim pesan ke antarmuka midi mana pun yang terhubung.

Bagian pengaturan batal dari skrip menginisialisasi semua saluran sebagai mati dan juga memulai koneksi serial pada 115200 baud, tingkat yang lebih cepat daripada sinyal MIDI yang dipertukarkan.

Loop utama pada dasarnya mengambil larik tombol dan tombol multipleks dan menjalankan loop for yang memeriksa apakah tombol telah ditekan atau dilepaskan dan mengirimkan byte data yang sesuai ke antarmuka midi. Loop potensiometer memeriksa posisi potensiometer dan mengirimkan perubahan tegangan yang sesuai kembali ke antarmuka midi.

Langkah 5: Pengaturan

Image
Image
Mempersiapkan
Mempersiapkan
Mempersiapkan
Mempersiapkan
Mempersiapkan
Mempersiapkan

Setelah skrip dimuat ke Arduino, langkah selanjutnya adalah plug and play. Namun, ada beberapa langkah sebelum dapat digunakan.

Di OSX, Apple memasukkan fitur untuk membuat perangkat midi virtual yang dapat diakses melalui aplikasi Audio Midi Setup di mac. Setelah perangkat baru dibuat, Hairless MIDI dapat digunakan untuk membuat koneksi serial antara Arduino dan perangkat midi virtual baru. Koneksi serial dari Arduino melalui Hairless MIDI beroperasi pada baud rate yang ditentukan di bagian pengaturan batal dari skrip dan harus disetel setara dalam pengaturan preferensi Hairless MIDI.

Untuk tujuan pengujian, saya menggunakan Midi Monitor untuk memeriksa apakah data yang dikirim benar melalui koneksi serial-MIDI. Setelah saya menentukan bahwa semua tombol dikirim melalui data yang benar melalui saluran yang benar, saya mengatur sinyal MIDI untuk merutekan ke Ableton Live 9 sebagai Input MIDI. Di Ableton saya dapat memetakan sampel audio yang diiris ke setiap tombol dan memutar setiap sampel.

Direkomendasikan: