
Isi kandungan:
2025 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2025-01-23 15:00

Ini adalah arahan pertama saya, jadi tahanlah dengan saya.
Saya suka membuat muzik, dan dalam situasi langsung seperti konsert ruang tamu, saya suka apabila terdapat kesan cahaya seiring dengan apa yang saya mainkan. Oleh itu, saya membina kotak berasaskan Arduino yang menjadikan jalur LED menyala dengan warna rawak ketika saya memukul nota pada papan kekunci MIDI saya, dan di mana saya memukul nota itu.
Bekalan
- Arduino Uno
- Protoshield Arduino
- Jack MIDI
- 1N4148 diod
- Pengganding opto 6N138
- perintang: 2x 220 Ohm, 1x 10kOhm, 1x 470Ohm
- Jalur LED WS2812B (60 LED)
- beberapa wayar yang tinggal
- tiub pengecutan panas
- sarung yang sesuai untuk Arduino (saya menggunakan kotak simpang plastik)
Anda juga perlu
- besi pematerian dan pateri
- Papan kekunci MIDI dan kabel MIDI
Langkah 1: Elektronik

Litarnya cukup mudah. Ia terdiri daripada input MIDI standard (kiri Arduino) dan sambungan ke jalur LED (kanan Arduino). Letakkan semua bahagian pada pelindung, terdapat banyak ruang. Umumnya disyorkan untuk menggunakan bekalan kuasa luaran untuk menghidupkan jalur LED, tetapi saya dapati bahawa semasa anda bermain, hanya sedikit LED yang menyala pada masa yang sama, jadi ada tidak ada masalah dalam menggunakan Arduino + 5V / GND sebagai output kuasa. (Cobalah untuk tidak menekan semua kekunci pada masa yang sama, dan dengan kelajuan penuh.;-)) Sekiranya anda memutuskan untuk menggunakan bekalan kuasa luaran, sambungkan sahaja ke pin Arduino + 5V dan GND. Sebilangan orang mengesyorkan memasukkan kapasitor 100uF (tidak ditunjukkan dalam skema) di antara dua baris ini.
Pateri bahagian ke protoskopi dan sambungkan jalur LED seperti yang ditunjukkan dalam skema.
Langkah 2: Menyambungkan Jalur LED

Penting untuk menyambungkan hujung kanan - hujung input - jalur LED ke litar. Jalur saya mempunyai penyambung wanita sebagai input, dan mempunyai segitiga kecil sepanjang menunjuk jauh dari input. Pada keluarannya, ada penyambung lelaki (untuk dapat menyambungkannya ke jalur lain, yang kami tidak perlukan), jadi saya memotongnya dan menyoldernya ke tiga kabel yang berasal dari Arduino. Gunakan tiub penyusut haba untuk mengikat ketiga kabel ke jalur LED bersama-sama, dan menjadikannya kurang kelihatan.
Jalur LED yang saya gunakan dilengkapi dengan pita pelekat di bahagian belakangnya, sehingga mudah dilekatkan di bahagian belakang papan kekunci MIDI.
Langkah 3: Menyesuaikan Projek ke Papan Kekunci Anda


Anda mungkin perlu menyesuaikan jalur LED dan kod Arduino ke papan kekunci anda. Tambang saya mempunyai 76 kekunci, dan panjang jalur hampir sama dengan lebar papan kekunci. Sekiranya anda mempunyai 61 kunci, anda mungkin memerlukan jalur yang lebih pendek. Jalur LED boleh dipotong di antara dua LED. Pastikan anda memotong bahagian yang betul, ia mempunyai hujung input (dengan penyambung wanita) dan hujung output (dengan penyambung lelaki), anda perlu mengekalkan hujung input. Dalam kod tersebut, ubah #defines untuk
- NUMBER_OF_LEDS ke bilangan LED yang tersisa di jalur anda setelah memotong hujungnya,
- NUMBER_OF_KEYS untuk bilangan kekunci pada papan kekunci anda, dan
- MIN_KEY ke nombor nada MIDI dari kunci terendah anda. Anda boleh mendapatkannya dalam manual pengguna papan kekunci; atau gunakan alat yang memaparkan nombor nota MIDI, seperti KMidiMon untuk Linux, atau Pocket MIDI untuk windows atau Mac; atau cuba nilai yang berbeza sehingga peranti bertindak balas terhadap semua kekunci pada papan kekunci anda
Langkah 4: Kod Arduino
Kod Arduino menggunakan perpustakaan MIDI (v4.3.1) oleh Forty Seven Effects dan perpustakaan Adafruit NeoPixel (v1.3.4) oleh Adafruit. Pasang perpustakaan ini menggunakan Arduino IDE. Kemudian kumpulkan kod dan muat naik ke Arduino tanpa perisai tersambung (optocoupler disambungkan ke pin RX, yang menghalang muat naik). Kuasa Arduino melalui kabel USB (saya menggunakan ketuat dinding USB).
Sekiranya anda ingin mengubah kod mengikut keinginan anda, berikut adalah gambaran keseluruhan ringkas cara kerjanya: Dalam setiap gelung, input MIDI dibaca. Sekiranya peristiwa Note On atau Note Off telah diterima, fungsi MyHandleNoteOn atau MyHandleNoteOff akan dipanggil. Mereka berdua memanggil fungsi updateVelocityArray, yang menyimpan halaju (iaitu seberapa keras anda menekan tombol) nombor kunci. Sekiranya halaju lebih tinggi daripada yang disimpan sebelumnya, warna LED yang sesuai ditetapkan ke "warna semasa". Setelah peristiwa MIDI ditangani, fungsi updateLedArray dipanggil. Ini mengemas kini "warna semasa" (nilai merah, hijau dan biru yang berubah secara bebas secara linear, sehingga hujung bawah atau atas tercapai, pada ketika itu kecepatan untuk perubahan linear ditetapkan ke nombor rawak), perlahan-lahan mengurangkan kelajuan nota yang ditekan, dan mengemas kini nilai warna setiap LED yang harus berubah warnanya (kerana hit nota baru, atau pengurangan halaju). Function showLedArray memindahkan warna ke struktur Adafruit_NeoPixel yang disebut "piksel" dan menjadikan LED sebenar menunjukkan warna dalam struktur piksel.
Langkah 5: Peningkatan Kemungkinan …
Projek tidak pernah selesai. Selalu ada sesuatu yang dapat dilakukan untuk memperbaikinya:
- Protoshield mengandungi begitu sedikit bahagian yang benar-benar sia-sia; seseorang dapat memperoleh kesan yang sama dengan Arduino Nano dan PCB 15x7 lubang dengan beberapa header pin wanita.
- Sebilangan isyarat MIDI hilang. Sekiranya itu adalah NoteOn, LED yang sepadan tidak akan menyala; jika itu adalah NoteOff, ia tidak akan padam (sebab itulah saya memperkenalkan pengurangan halaju, yang memastikan bahawa LED tidak akan menyala selama-lamanya). Saya masih berusaha untuk mengetahui sebabnya. Mungkin itu masalah masa, dan MIDI.read () harus dipanggil lebih kerap.
- Sebilangan isyarat MIDI salah membaca, iaitu LED yang salah menyala. Boleh dihubungkan dengan titik di atas. Memerlukan penyelidikan.
- Litar ini dirancang untuk memberikan kesan visual yang menyenangkan tanpa banyak interaksi pengguna (selain memainkan papan kekunci). Namun, saya dapat membayangkan menambahkan potensiometer yang dibaca (menggunakan salah satu input analog Arduino) dengan mana anda dapat mengubah kelajuan maksimum di mana warna berubah (saat ini #efinisikan sebagai MAX_COLOR_CHANGE_SPEED = 20). Atau ukur waktu rata-rata antara dua peristiwa NoteOn, dan ubah MAX_COLOR_CHANGE_SPEED dengan sewajarnya - dalam lagu perlahan, warnanya harus berubah lebih perlahan.
Langkah 6: Selesai

Kuasa Arduino melalui kabel USB (saya menggunakan ketuat dinding USB). Sambungkan papan kekunci MIDI anda ke bicu MIDI, dan mulakan rockin '. Tonton saya memainkan muzik ringan (pun, seburuk yang dimaksudkan).
Disyorkan:
Jalur LED Rgb Terkawal RC: 4 Langkah (dengan Gambar)

Jalur LED Rgb Dikendalikan RC: Buat jalur LED dikawal rc anda sendiri untuk pencahayaan bilik individu! Sebilangan besar jalur LED rgb dikendalikan oleh alat kawalan jauh inframerah. Untuk mematikan atau menghidupkan atau menukar warna, anda mesti berada di hadapan penerima. Ini membosankan dan tidak
Jalur LED DIY: Cara Memotong, Menghubungkan, Memateri dan Jalur LED Kuasa: 3 Langkah (dengan Gambar)

Jalur LED DIY: Cara Memotong, Menghubungkan, Memateri dan Jalur LED Kuasa: Panduan pemula untuk membuat projek cahaya anda sendiri menggunakan jalur LED. Jalur LED yang fleksibel dan mudah digunakan, jalur LED adalah pilihan terbaik untuk pelbagai aplikasi. Saya akan membuat liputan asas-asas memasang jalur LED 60 LED / m dalaman yang sederhana, tetapi dalam
Lampu Jalur LED Mudah (Tingkatkan Jalur LED Anda): 4 Langkah (dengan Gambar)

Lampu Jalur LED Mudah (Tingkatkan Jalur LED Anda): Saya telah menggunakan jalur LED sejak sekian lama dan selalu menyukai kesederhanaannya. Anda hanya memotong sekeping peranan, memateri beberapa kabel padanya, memasang bekalan kuasa dan anda mempunyai sumber cahaya untuk diri sendiri. Selama bertahun-tahun saya telah menemui
Lampu Kertas Lampu Jalur LED: 4 Langkah

Lampu Kertas Jalur Lampu LED: Dimensi penuh lampu adalah 6x6x10. Saya menggunakan pencetak 3D saya (CR-10 Mini), dan beberapa Jalur LED dan elektronik yang saya dapati di sekitar rumah. Ia adalah lampu meja yang hebat
Pengawal Lampu Jalur LED MIDI 5V untuk Spielatron atau MIDI Synth lain: 7 Langkah (dengan Gambar)

Pengawal Lampu Jalur LED MIDI 5V untuk Spielatron atau MIDI Synth Lain-lain: Pengawal ini menyalakan lampu jalur LED triwarna untuk 50mS per nota. Biru untuk G5 hingga D # 6, merah untuk E6 hingga B6 dan hijau untuk C7 hingga G7. Pengawal adalah peranti ALSA MIDI sehingga perisian MIDI dapat mengeluarkan ke LED pada masa yang sama dengan peranti synth MIDI