Isi kandungan:

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, Julai
Anonim
Arduino Uno Midi Fighter
Arduino Uno Midi Fighter

Instruksional ini dibuat untuk memenuhi keperluan projek Makecourse di University of South Florida (www.makecourse.com)

Berdasarkan MidiFighter oleh DJ Techtools yang popular, alat kawalan Arduino buatan Musical Instrument Digital Interface (MIDI) buatan sendiri ini boleh digunakan sebagai peranti MIDI di mana-mana perisian Digital Audio Workstation (DAW). Pengawal MIDI dapat mengirim dan menerima mesej MIDI dari komputer dan dapat digunakan untuk mengendalikan secara langsung perisian mana yang sedang digunakan. Selain itu, kawalan pada pengawal MIDI dapat disesuaikan sepenuhnya - yang bermaksud bahawa setiap butang, slider dan tombol individu dapat dipetakan ke fungsi apa pun dalam DAW. Contohnya, menekan butang dapat memainkan nota tertentu atau diprogramkan untuk menukar tempo projek audio anda.

github.com/jdtar/Arduino-Midi-Controller

Langkah 1: Bahan

Berikut adalah senarai bahan dan alat yang digunakan dalam projek ini.

Arduino Uno

Papan roti

4051/4067 Multiplexer

Wayar pelompat

Kawat Tambahan

Potensiometer slaid linear 2x 10k ohm

16x Sanwa 24mm butang

Panaskan Kecilkan

Besi pematerian

Pisau cukur

Perintang 4.7 kΩ

Lembaran akrilik (untuk penutup)

Perumahan untuk kancing dan Arduino

Pencetak 3-D

Pemotong Laser

Langkah 2: Reka bentuk

Reka bentuk
Reka bentuk
Reka bentuk
Reka bentuk

Saya telah menyediakan tempat tinggal untuk pengawal MIDI saya sebelum memulakan projek, jadi saya memperolokkan lakaran penutup untuk menggambarkan bagaimana semuanya diletakkan. Saya tahu bahawa saya mahukan sekurang-kurangnya 16 butang dan beberapa potensiometer sebagai ciri, jadi saya cuba mengasingkan komponennya sekerap mungkin.

Setelah membuat susun atur penutup, saya mengeksport fail sebagai PDF 1: 1 dan menghantarnya ke pemotong laser untuk memotong selembar akrilik. Untuk lubang skru, saya menandakan di mana saya mahu lubang itu mempunyai penanda dan mencairkan akrilik dengan filamen panas.

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

Langkah 3: Pembinaan dan Pendawaian

Pembinaan dan Pendawaian
Pembinaan dan Pendawaian
Pembinaan dan Pendawaian
Pembinaan dan Pendawaian
Pembinaan dan Pendawaian
Pembinaan dan Pendawaian

Setelah memotong akrilik, saya dapati bahawa akrilik terlalu nipis untuk menyokong semua komponen dengan secukupnya. Saya kemudian memotong helaian lain dan melekatkannya bersama yang kebetulan berfungsi dengan sempurna.

Pendawaian komponen memerlukan beberapa percubaan dan ralat tetapi lakaran Fritzing dilampirkan. Saya mula-mula memasang wayar tanah dan perintang 4.7kΩ, memateri dan memanaskan sambungan pada butang. Memasang dua potensiometer slaid diperlukan lubang lebur untuk skru dalam akrilik. Setelah kedua-dua potensiometer dipasang, mereka disambungkan ke pin analog A0 dan A1. Setelah pendawaian selesai, saya teringat bahawa tidak ada penutup kenop untuk fader saya, jadi daripada membelinya, saya mencetak beberapa penutup kenop menggunakan pencetak 3-D dengan membuat sketsa di Autodesk Fusion 360 dan mengeksport ke fail STL. De

Arduino Uno hanya mempunyai 12 pin input digital yang tersedia tetapi 16 butang harus dihubungkan. Untuk mengimbanginya, saya memasang 74HC4051 Multiplexer pada papan roti yang menggunakan 4 pin input digital dan membolehkan pelbagai isyarat menggunakan talian bersama sehingga 8 pin input digital tersedia untuk sejumlah 16 pin digital yang tersedia untuk digunakan.

Memasang butang ke pin yang betul adalah soal membuat matriks 4x4 dan menggunakannya dalam kod. Walau bagaimanapun, bahagian yang rumit adalah bahawa multiplexer tertentu yang dibeli mempunyai susun atur pin tertentu yang dibantu oleh lembar data dan juga saya mempunyai susun atur nota tertentu semasa memasang butang yang akhirnya kelihatan seperti ini:

CATATAN MATRIK

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

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

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

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

MATRIK PIN (M = MUX INPUT)

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

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

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

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

Langkah 4: Pengaturcaraan

Pengaturcaraan
Pengaturcaraan

Setelah pemasangan selesai, pengaturcaraan Arduino masih ada. Skrip yang dilampirkan ditulis dengan cara yang mudah disesuaikan.

Permulaan skrip merangkumi perpustakaan MIDI.h dan perpustakaan pengawal yang dipinjam dari blog Notes and Volts yang keduanya disertakan dalam fail zip untuk kod tersebut. Dengan menggunakan perpustakaan pengawal, objek untuk butang, potensiometer dan butang multipleks dapat dibuat yang mengandungi nilai data yang merangkumi nombor nota, nilai kawalan, kecepatan nota, nombor saluran MIDI, dll. Perpustakaan MIDI.h membolehkan komunikasi MIDI I / O pada Port bersiri Arduino yang seterusnya mengambil data dari objek pengawal, mengubahnya menjadi mesej MIDI dan menghantar mesej ke mana-mana antara muka midi yang disambungkan.

Bahagian penyediaan yang tidak sah dari skrip memulakan semua saluran sebagai tidak aktif dan juga memulakan sambungan bersiri pada 115200 baud, laju lebih cepat daripada isyarat MIDI yang ditukar.

Gelung utama pada dasarnya mengambil susunan butang dan butang berbilang dan menjalankan gelung untuk memeriksa yang mana butang telah ditekan atau dilepaskan dan menghantar bait data yang sesuai ke antara muka midi. Gelung potensiometer memeriksa kedudukan potensiometer dan menghantar perubahan voltan yang sesuai kembali ke antara muka midi.

Langkah 5: Persediaan

Image
Image
Persediaan
Persediaan
Persediaan
Persediaan
Persediaan
Persediaan

Setelah skrip dimuat ke Arduino, langkah seterusnya adalah memasang dan memainkan. Ada beberapa langkah, bagaimanapun, sebelum dapat digunakan.

Pada OSX, Apple menggabungkan ciri untuk membuat peranti midi maya yang dapat diakses melalui aplikasi Audio Midi Setup pada mac. Setelah peranti baru dibuat, MIDI Tanpa Rambut dapat digunakan untuk membuat sambungan bersiri antara Arduino dan peranti midi maya baru. Sambungan bersiri dari Arduino melalui Hairless MIDI beroperasi pada kadar baud yang ditentukan dalam bahagian persediaan kosong skrip dan mesti ditetapkan setara dalam tetapan pilihan MIDI Tanpa Rambut.

Untuk tujuan pengujian, saya menggunakan Midi Monitor untuk memeriksa apakah data yang betul dikirimkan mengira sambungan serial-MIDI. Setelah saya menentukan bahawa semua butang menghantar data yang betul melalui saluran yang betul, saya menetapkan isyarat MIDI untuk membuat laluan ke Ableton Live 9 sebagai Input MIDI. Di Ableton saya dapat memetakan sampel audio yang dihiris ke setiap butang dan memainkan setiap sampel.

Disyorkan: