Isi kandungan:

Arduino MIDI Foot Controller: 12 Langkah
Arduino MIDI Foot Controller: 12 Langkah

Video: Arduino MIDI Foot Controller: 12 Langkah

Video: Arduino MIDI Foot Controller: 12 Langkah
Video: How to Make an Arduino MIDI Footswitch 2024, November
Anonim
Pengawal Kaki Arduino MIDI
Pengawal Kaki Arduino MIDI

Saya baru-baru ini merancang pengawal MIDI ini untuk mengendalikan frasa looper yang dibina ke dalam pedal tunda Boss DD500. Saya mengawal keseluruhan rig gitar saya menggunakan papan Behringer FCB MIDI, dan ini membolehkan saya menukar tambalan pada pedal tunda pada gelung kesan, sambil menukar saluran amp pada masa yang sama.

DD500 mempunyai fungsi looper yang sangat asas, tetapi salah satu kelemahannya ialah apabila looper aktif, ia dikendalikan oleh alas kaki pada pedal. Ini bermakna anda tidak boleh menukar tambalan pada pedal semasa gelung aktif, kerana pada dasarnya menangkap fungsi alas kaki. Semasa saya menggunakan MIDI, batasan ini tidak ada, kerana ini hanyalah masalah fizikal. Ini bermaksud menempah 5 alas kaki pada pengawal MIDI utama saya untuk looper, dan oleh itu saya memutuskan untuk membina pengawal yang berasingan untuk pengawal tersebut.

Rancangan awal saya untuk ini adalah mengambil kandang Hammond kecil dan memasukkan 5 alas kaki dan mengajar diri saya beberapa pengkodan asas Arduino. Semasa saya mula belajar lebih banyak dan kod saya berfungsi, akhirnya memotivasi saya untuk mencuba lebih banyak perkara dan pada dasarnya ia menjadi bola salji menjadi sesuatu yang lebih besar.

Langkah 1: Konsep

Konsep
Konsep
Konsep
Konsep

Salah satu idea awal adalah hanya mempunyai 5 butang berturut-turut dengan LED status. Ini cukup mudah untuk dibuat-buat di papan roti dengan Arduino. Penambahan ciri dan perkakasan baru akhirnya menjadi proses di mana saya sentiasa merancang dan merancang semula susun atur fizikal di atas kertas dan membina projek papan roti. Walaupun dengan banyak perancangan, banyak kerja yang dilakukan pada awalnya dilakukan dengan cepat.

Kedua-dua gambar di atas menunjukkan gambar pertama yang saya komited pada kertas, yang mula-mula mengeluarkan idea itu, diikuti oleh satu bulan nota yang dibuat mengikuti gambar yang membentuk susun atur fizikal dan PCB.

Langkah 2: Protoyping Breadboard

Protoyping Papan Roti
Protoyping Papan Roti
Protoyping Papan Roti
Protoyping Papan Roti

Keseluruhan projek ini dibina di atas papan roti dan diuji sepenuhnya untuk memastikannya berfungsi sepenuhnya dengan DD500 sebelum ada kerja yang dimulakan untuk menempatkannya secara kekal. Beberapa ciri tambahan ditambahkan dalam kod, yang memberi pengawal beberapa fungsi tambahan yang tidak dimiliki oleh DD500. Perkara-perkara ini akan dibincangkan dengan lebih lengkap di bahagian kod.

Pedal mempunyai 5 alas kaki, 4 LED status, 5 skrin LCD I2C dan dikendalikan oleh Arduino Nano Every. Ia mendapat kuasa dari pedal gitar 9V PSU melalui kotak pelarian yang berasingan yang membawa kuasa itu ke atas kabel MIDI menggunakan 2 pin yang biasanya tidak digunakan pada penyambung MIDI.

Langkah 3: Fabrikasi

Fabrikasi
Fabrikasi
Fabrikasi
Fabrikasi
Fabrikasi
Fabrikasi

Saya melihat banyak kes yang mungkin berlaku untuk perumahan projek itu, dan bahkan mempertimbangkan idea untuk mencungkil kes saya sendiri dari kepingan aluminium. Akhirnya saya menetap di kandang Hammond yang cukup luas untuk menempatkan 5 skrin LCD 16X2 yang telah saya pilih.

Alas kaki adalah suis sentuhan lembut sekejap generik.

Pada tahap ini, saya memutuskan untuk membuat bezel layar pemasangan khusus yang dibuat agar bagian depan tampak bersih, kerana saya akan memotong lubang skrin dengan tangan Dremel dan tahu mungkin ada beberapa kawasan yang kurang sempurna. Saya telah memotongnya oleh studio reka bentuk tempatan yang melakukan pemotongan laser, pertama sebagai templat kadbod untuk memastikan ukuran saya semua betul, dan kemudian dalam akrilik putih 3mm untuk bahagian akhir.

Langkah 4: Mock-up dan Tata Letak CAD

Mock-up dan Susun atur CAD
Mock-up dan Susun atur CAD
Mock-up dan Susun atur CAD
Mock-up dan Susun atur CAD

Dari lakaran kertas saya, saya menggunakan Inkscape untuk meletakkan semua komponen fizikal dan menyelesaikan ukuran dan kedudukan. Saya juga menggunakan kaedah pemasangan skrin pada ketika ini. Untuk meminimumkan jumlah bolt yang dapat dilihat di bahagian depan, saya memutuskan untuk memasang semua skrin ke beberapa plat aluminium dari belakang menggunakan stand-off, dan kemudian saya hanya memerlukan 4 baut per plat untuk memasangnya ke kandang, yang juga akan menahan bezel skrin di tempatnya.

Langkah 5: Reka Bentuk PCB

Reka Bentuk PCB
Reka Bentuk PCB
Reka Bentuk PCB
Reka Bentuk PCB
Reka Bentuk PCB
Reka Bentuk PCB
Reka Bentuk PCB
Reka Bentuk PCB

Untuk membuat PCB, saya menggunakan laman web yang bernama EasyEDA. Ia mempunyai persekitaran editor di mana anda dapat melukis skema komponen anda, mengubahnya menjadi susun atur PCB, dan kemudian mengeksportnya terus ke JLCPCB untuk dibuat menjadi papan. Saya tidak pernah melakukan perkara seperti ini sebelumnya, tetapi mereka mempunyai panduan yang sangat baik di laman web ini yang menerangkan bagaimana editor berfungsi, dan dalam masa satu jam saya telah merancang dan membuat pesanan.

Beberapa kawasan di papan tidak dirancang dengan baik pada waktu itu kerana tidak berpengalaman, seperti menggunakan rel 5V tunggal untuk daya layar, misalnya, daripada memberi masing-masing umpan yang berasingan. Syukurlah, penurunan voltan yang berlaku tidak mencukupi untuk menyebabkan masalah pada skrin.

Lembaga-lembaga itu tiba kira-kira 2 minggu kemudian dan dengan bersyukur tidak ada masalah.

Langkah 6: Pemasangan Skrin

Pemasangan Skrin
Pemasangan Skrin
Pemasangan Skrin
Pemasangan Skrin
Pemasangan Skrin
Pemasangan Skrin

Bahagian pertama yang dibuat adalah pemasangan layar. Saya menggunakan aluminium 3mm untuk ini dan lubang penggerudian untuk stand-off. Dimensi ditentukan dengan meletakkan semuanya di atas meja kerana saya menginginkan pedal terakhir dan mengukur dari lubang pemasangan pada PCB skrin. Saya juga meletakkan alas kaki dengan mereka untuk mendapatkan jarak bagi mereka.

Setelah semua lubang digerudi, layar dipasang dan diperiksa untuk memastikan kepingannya dengan memegang pembaris di tepi bawah rata. Segala-galanya berbaris sejauh ini.

Langkah 7: Penutup

Pagar
Pagar
Pagar
Pagar
Pagar
Pagar

Selanjutnya adalah mengubah kes. Alas kaki dan LED adalah mudah kerana masing-masing hanya memerlukan lubang 12mm dan 5mm.

Sebilangan besar kerja fizikal muncul ketika memotong lubang skrin keluar. Saya menggunakan Dremel dengan beberapa cakera pemotong tugas berat, dan pelbagai fail untuk membersihkan lubang selepas itu. Bahagian ini mengambil masa sekitar 2 jam.

Kandang yang saya gunakan direka untuk keperluan industri dan dibuat dengan membongkok sekeping logam dan mengimpal sudut. Ini bermaksud bahawa beberapa kerja diperlukan untuk membersihkan sudut ini dengan menggunakan pengisi badan kereta untuk meratakan tempat yang rendah dan mengisi celah di tepi.

Pada ketika ini, kes ini sudah siap sepenuhnya dan saya mengejek semuanya untuk melihat bagaimana keadaannya.

Langkah 8: Aduh

Aduh
Aduh
Aduh
Aduh
Aduh
Aduh

Dan kemudian disedari bahawa di sebalik semua perancangan dan pengukuran saya, saya telah melakukan satu kesalahan besar. Saya merancang susun atur papan dan casing secara bebas antara satu sama lain. Di kepala saya, papan akan duduk hampir rata di dinding atas, dengan berdiri pendek di belakangnya. Tetapi sama sekali tidak mungkin ini sesuai. Dan tidak ada ruang untuk meletakkannya di samping. Pengawasan yang besar, tapi syukurlah yang dapat saya perbetulkan kerana masih ada sedikit ruang antara pelekap layar di penutup belakang casing. Beberapa lubang lagi dilekatkan di layar dan beberapa penekanan, dan kami kembali berniaga, dengan cukup ruang untuk menutupnya.

Langkah 9: Cat

Cat
Cat
Cat
Cat
Cat
Cat

Semuanya dibongkar semula, dan casing itu dilukis Metallic Candy Red, diikuti dengan beberapa lapisan pernis. Kes itu dibiarkan sembuh selama seminggu, walaupun saya mendapati pernis masih sedikit lembut ketika saya sedang membangun semuanya. Beberapa kawasan kecil cat rosak kerana ini. Sesuatu yang ingin saya elakkan pada projek seterusnya.

Selama ini, saya telah membeli pencetak 3D, dan memutuskan untuk menggunakannya untuk membuat beberapa mesin basuh untuk alas kaki, kerana nilon yang saya beli mempunyai warna kekuningan yang mengerikan kepada mereka dan saiznya kurang baik.

Langkah 10: Pendawaian

Pendawaian
Pendawaian
Pendawaian
Pendawaian
Pendawaian
Pendawaian
Pendawaian
Pendawaian

Bahagian terakhir pemasangan fizikal adalah menyatukan semuanya. Sekali lagi, masalah dengan reka bentuk kes / reka bentuk PCB muncul lagi dan beberapa kedudukan tajuk pada PCB bermaksud menyeberang banyak kabel antara satu sama lain, menjadikan keadaan sedikit lebih buruk daripada yang saya harapkan.

Kabel untuk layar digabungkan menjadi 4 set, dan menggunakan sinki panas dan balutan jalinan, dibuat menjadi satu bagian.

Langkah 11: Kod Arduino

Image
Image

Sebagai pemula untuk pengekodan Arduino, saya mengajar diri saya semasa saya mengikuti. Kodnya mungkin setara dengan pengaturcaraan dengan 'jauh' tetapi saya gembira kerana ia berfungsi seperti yang diharapkan.

Looper pada DD500 mempunyai 5 fungsi asas:

  • Looper hidup / mati
  • Rakam / Overdub / Main
  • Main gelung yang dirakam
  • Hentikan main balik
  • Gelung yang dirakam jelas

Setiap fungsi tersebut mempunyai alur kaki yang sesuai dan, kecuali butang berhenti, LED status. Skrin LCD juga dikemas kini dengan maklumat yang relevan untuk menunjukkan jika pedal berada dalam mod rakaman, overdubbing atau main balik serta fungsi apa yang akan dilakukan oleh setiap alas kaki bergantung pada apa yang berlaku pada masa itu.

Satu lagi ciri yang saya tambahkan adalah untuk mengesan berapa kali ciri rakaman / overdub diaktifkan. Ini dijejaki dalam kod dengan menambahkan bilangan bulat, yang akan dipaparkan di layar ‘buffer’, menyenaraikan berapa banyak trek yang direkam. Walaupun DD500 tidak dapat menghapus trek individu, saya menambahkannya hanya sebagai latihan pengekodan untuk melihat apakah saya dapat membuatnya berfungsi.

Nampaknya ada masalah memuat naik fail ke Instructables, dan oleh itu saya meletakkan salinan kod di Pastebin sebagai gantinya di:

2 perpustakaan digunakan dalam kod:

LiquidCrystal_I2C

Perpustakaan MIDI FortySevenEffects

Langkah 12: Kesimpulannya

Kesimpulannya
Kesimpulannya

Salah satu perkara terbesar yang saya ambil dari projek ini ialah merancang seberapa banyak yang anda dapat dari awal dapat mengelakkan masalah yang berpotensi. Masalah dengan pemasangan PCB saya menekankan betapa pentingnya perkara ini. Menyimpan nota yang baik juga merupakan sesuatu yang sangat saya cadangkan. Tanpa mereka, saya mungkin menghadapi lebih banyak masalah daripada yang saya hadapi. Saya sedang membina pengawal MIDI kedua saya dan kali ini saya telah membuat usaha yang lebih besar untuk memperkemas kod saya, dan merancang perkakasan saya mengenai bagaimana PCB harus dipasang.

Disyorkan: