Pengontrol Kaki Arduino MIDI: 12 Langkah
Pengontrol Kaki Arduino MIDI: 12 Langkah
Anonim
Pengontrol Kaki Arduino MIDI
Pengontrol Kaki Arduino MIDI

Saya baru-baru ini merancang pengontrol MIDI ini untuk mengoperasikan looper frase yang dibangun ke dalam pedal tunda Boss DD500. Saya mengontrol seluruh rig gitar saya menggunakan papan MIDI Behringer FCB, dan ini memungkinkan saya untuk mengubah tambalan pada pedal tunda di loop efek, sambil mengganti saluran amp pada saat yang sama.

DD500 memiliki fungsi looper yang sangat mendasar, tetapi salah satu kelemahannya adalah ketika looper aktif, ia dikendalikan oleh footswitch pada pedal. Ini berarti Anda tidak dapat mengubah tambalan pada pedal saat loop aktif, karena pada dasarnya menangkap fungsi footswitch. Karena saya menggunakan MIDI, batasan ini tidak ada, karena ini hanya masalah fisik. Ini berarti memesan 5 footswitch pada pengontrol MIDI utama saya untuk looper, jadi saya memutuskan untuk membuat pengontrol terpisah untuk itu.

Rencana awal saya untuk ini adalah untuk mengambil kandang Hammond kecil dan menempatkan 5 footswitch dan belajar sendiri beberapa coding Arduino dasar. Ketika saya mulai belajar lebih banyak dan kode saya berfungsi, itu akhirnya memotivasi saya untuk mencoba lebih banyak hal dan kemudian pada dasarnya bola salju menjadi sesuatu yang lebih besar.

Langkah 1: Konsep

Konsep
Konsep
Konsep
Konsep

Salah satu ide awal adalah hanya memiliki 5 tombol berturut-turut dengan LED status. Ini cukup sederhana untuk dibuat di papan tempat memotong roti dengan Arduino. Penambahan fitur dan perangkat keras baru akhirnya menjadi proses di mana saya terus-menerus merancang dan mendesain ulang tata letak fisik di atas kertas dan membangun proyek papan tempat memotong roti. Bahkan dengan banyak perencanaan, banyak pekerjaan yang dilakukan dengan cepat di awal.

2 gambar di atas menunjukkan gambar pertama yang saya buat di atas kertas, yang memulai ide itu sejak awal, diikuti oleh catatan sebulan yang dibuat setelah itu yang membentuk tata letak fisik dan PCB.

Langkah 2: Pembuatan prototipe papan tempat memotong roti

Pembuatan prototipe papan tempat memotong roti
Pembuatan prototipe papan tempat memotong roti
Pembuatan prototipe papan tempat memotong roti
Pembuatan prototipe papan tempat memotong roti

Seluruh proyek dibangun di atas papan tempat memotong roti dan diuji sepenuhnya untuk memastikannya berfungsi penuh dengan DD500 sebelum pekerjaan apa pun dimulai untuk menampungnya secara permanen. Beberapa fitur tambahan ditambahkan dalam kode, yang memberi pengontrol beberapa fungsi tambahan yang tidak dimiliki DD500. Ini akan dibahas lebih lengkap di bagian kode.

Pedal memiliki 5 footswitch, 4 LED status, 5 layar LCD I2C dan dikendalikan oleh Arduino Nano Every. Ini mendapat daya dari PSU pedal gitar 9V melalui kotak breakout terpisah yang membawa daya itu melalui kabel MIDI menggunakan 2 pin yang biasanya tidak digunakan pada konektor MIDI.

Langkah 3: Fabrikasi

Pembuatan
Pembuatan
Pembuatan
Pembuatan
Pembuatan
Pembuatan

Saya melihat banyak kemungkinan kasus untuk perumahan proyek, dan bahkan mempertimbangkan ide untuk mencoba membengkokkan kasus saya sendiri dari lembaran aluminium. Akhirnya saya memilih kandang Hammond yang cukup lebar untuk menampung 5 layar LCD 16X2 yang saya pilih.

Sakelar kaki adalah sakelar sentuh lembut sesaat yang umum.

Pada tahap ini saya memutuskan untuk membuat bezel layar pemasangan khusus agar bagian depan tetap terlihat bersih, karena saya akan memotong lubang layar dengan tangan menggunakan Dremel dan tahu kemungkinan akan ada beberapa area yang kurang sempurna. Saya memotong ini oleh studio desain lokal yang melakukan pemotongan laser, pertama sebagai templat karton untuk memastikan ukuran saya semua benar, dan kemudian dalam akrilik putih 3mm untuk bagian akhir.

Langkah 4: Mock-up dan Tata Letak CAD

CAD Mock-up dan Tata Letak
CAD Mock-up dan Tata Letak
CAD Mock-up dan Tata Letak
CAD Mock-up dan Tata Letak

Dari sketsa kertas saya, saya menggunakan Inkscape untuk meletakkan semua komponen fisik dan menyelesaikan ukuran dan posisi. Saya juga menemukan metode pemasangan layar pada saat ini. Untuk meminimalkan jumlah baut yang terlihat di bagian depan, saya memutuskan untuk memasang semua layar ke beberapa pelat aluminium dari belakang menggunakan penyangga, dan kemudian saya hanya perlu 4 baut per pelat untuk memasangnya ke penutup, yang juga akan menahan bezel layar di tempatnya.

Langkah 5: Desain PCB

Desain PCB
Desain PCB
Desain PCB
Desain PCB
Desain PCB
Desain PCB
Desain PCB
Desain PCB

Untuk membuat PCB, saya menggunakan situs web bernama EasyEDA. Ini fitur lingkungan editor di mana Anda dapat menggambar skema komponen Anda, mengubahnya menjadi tata letak PCB, dan kemudian mengekspornya langsung ke JLCPCB untuk dibuat menjadi papan. Saya belum pernah melakukan hal seperti ini sebelumnya, tetapi mereka memiliki panduan yang sangat baik di situs yang menjelaskan cara kerja editor, dan dalam waktu satu jam saya telah merancang dan memesan papan tersebut.

Beberapa area di papan dirancang dengan buruk pada saat itu karena kurangnya pengalaman, seperti menggunakan rel 5V tunggal untuk daya layar, misalnya, daripada memberi masing-masing umpan terpisah. Untungnya setiap penurunan tegangan yang terjadi tidak cukup untuk menyebabkan masalah dengan layar.

Papan tiba sekitar 2 minggu kemudian dan untungnya bekerja tanpa masalah.

Langkah 6: Layar Mount

Layar Mount
Layar Mount
Layar Mount
Layar Mount
Layar Mount
Layar Mount

Bagian pertama yang dibuat adalah screen mount. Saya menggunakan aluminium 3mm untuk ini dan mengebor lubang untuk stand-off. Dimensi ditentukan dengan meletakkan semuanya di atas meja seperti yang saya inginkan dari pedal terakhir dan mengukur dari lubang pemasangan pada layar PCB. Saya juga menempatkan footswitch dengan mereka untuk mendapatkan jarak untuk itu.

Setelah semua lubang dibor, layar dipasang dan diperiksa kehalusannya dengan memegang penggaris pada tepi bawah yang rata. Semuanya berbaris sejauh ini.

Langkah 7: Kandang

Lampiran
Lampiran
Lampiran
Lampiran
Lampiran
Lampiran

Selanjutnya adalah memodifikasi kasus ini. Sakelar kaki dan LED sangat mudah digunakan karena masing-masing hanya membutuhkan lubang 12mm dan 5mm.

Sebagian besar pekerjaan fisik datang saat memotong lubang layar. Saya menggunakan Dremel dengan beberapa cakram pemotong tugas berat, dan berbagai file untuk membersihkan lubang setelahnya. Bagian ini memakan waktu sekitar 2 jam.

Selungkup yang saya gunakan dirancang untuk keperluan industri dan dibuat dengan menekuk satu bagian logam dan mengelas sudut-sudutnya. Ini berarti bahwa beberapa pekerjaan akan diperlukan untuk membersihkan sudut-sudut ini dengan menggunakan pengisi bodi mobil untuk meratakan titik-titik rendah dan mengisi celah di tepinya.

Pada titik ini kasing sudah sepenuhnya siap dan saya mengolok-olok semuanya hanya untuk melihat bagaimana tampilannya.

Langkah 8: Uh-Oh

Uh oh
Uh oh
Uh oh
Uh oh
Uh oh
Uh oh

Dan kemudian muncul kesadaran bahwa terlepas dari semua perencanaan dan pengukuran saya, saya telah membuat satu kesalahan BESAR. Saya merancang papan dan tata letak kotak secara independen satu sama lain. Di kepala saya, papan akan duduk hampir rata dengan dinding atas, dengan stand-off pendek di belakangnya. Tapi sama sekali tidak mungkin ini bisa muat. Dan tidak ada ruang untuk meletakkannya di samping juga. Kekeliruan besar, tapi untungnya yang bisa saya perbaiki karena masih ada sedikit ruang antara dudukan layar di sampul belakang kasing. Beberapa lubang lagi dibor di dudukan layar dan beberapa penghalang, dan kami kembali berbisnis, dengan cukup ruang untuk memasang penutup.

Langkah 9: Cat

Cat
Cat
Cat
Cat
Cat
Cat

Semuanya dibongkar lagi, dan kasingnya dicat Metallic Candy Red, diikuti beberapa lapis pernis. Kasing dibiarkan sembuh selama seminggu, meskipun saya menemukan pernis masih sedikit lunak pada saat ini ketika saya sedang membangun semuanya. Beberapa area kecil cat rusak karena ini. Sesuatu yang ingin saya hindari pada proyek saya berikutnya.

Selama waktu ini, saya telah membeli printer 3D, dan memutuskan untuk menggunakannya untuk membuat beberapa washer untuk footswitch, karena nilon yang saya beli memiliki warna kekuningan yang mengerikan dan ukurannya buruk.

Langkah 10: Pengkabelan

Pengkabelan
Pengkabelan
Pengkabelan
Pengkabelan
Pengkabelan
Pengkabelan
Pengkabelan
Pengkabelan

Bagian terakhir dari perakitan fisik adalah menghubungkan semuanya. Sekali lagi, masalah dengan desain casing/desain PCB muncul lagi dan beberapa posisi header pada PCB berarti menyilangkan banyak kabel satu sama lain, membuat segalanya sedikit lebih berantakan daripada yang saya harapkan.

Kabel untuk layar dibundel menjadi 4 set, dan menggunakan heatshrink dan bungkus dikepang, dibuat menjadi satu bagian.

Langkah 11: Kode Arduino

Image
Image

Sebagai pemula total untuk pengkodean Arduino, saya belajar sendiri saat saya melanjutkan. Kode ini mungkin setara dengan pemrograman dari 'perjalanan jauh' tetapi saya senang bahwa itu berfungsi sebagaimana dimaksud.

Looper pada DD500 memiliki 5 fungsi dasar:

  • Pengulangan hidup/mati
  • Rekam/Overdub/Putar
  • Putar rekaman loop
  • Hentikan pemutaran
  • Hapus loop yang direkam

Masing-masing fungsi tersebut memiliki footswitch yang sesuai dan, dengan pengecualian tombol stop, LED status. Layar LCD juga diperbarui dengan informasi yang relevan untuk menunjukkan apakah pedal dalam mode perekaman, overdubbing atau playback serta fungsi apa yang akan dilakukan setiap footswitch tergantung pada apa yang terjadi pada saat itu.

Satu fitur lain yang saya tambahkan adalah untuk melacak berapa kali fitur rekam/overdub diaktifkan. Ini dilacak dalam kode dengan menambahkan bilangan bulat, yang ditampilkan di layar 'buffer', mencantumkan berapa banyak trek yang direkam. Sementara DD500 tidak dapat menghapus trek individu, saya menambahkan ini hanya sebagai latihan pengkodean untuk melihat apakah saya bisa membuatnya bekerja.

Tampaknya ada masalah saat mengunggah file ke Instructables, jadi saya telah meletakkan salinan kode di Pastebin sebagai gantinya di:

2 perpustakaan digunakan dalam kode:

LiquidCrystal_I2C

Pustaka MIDI FortySevenEffects

Langkah 12: Kesimpulan

Kesimpulan
Kesimpulan

Salah satu hal terbesar yang saya ambil dari proyek ini adalah merencanakan sebanyak mungkin sebelumnya dapat menghindari potensi masalah. Masalah dengan pemasangan PCB saya menyoroti pentingnya hal ini. Menyimpan catatan yang baik juga merupakan sesuatu yang sangat saya rekomendasikan. Tanpa mereka, saya mungkin mengalami lebih banyak masalah daripada yang saya alami. Saat ini saya sedang membangun pengontrol MIDI kedua saya dan kali ini saya telah melakukan upaya yang lebih besar untuk merampingkan kode saya, dan merancang perangkat keras saya tentang bagaimana PCB harus dipasang.