Daftar Isi:
2025 Pengarang: John Day | [email protected]. Terakhir diubah: 2025-01-23 14:49
Ini adalah instruksi pertama saya, jadi bersabarlah.
Saya suka membuat musik, dan dalam situasi langsung seperti konser ruang tamu, saya suka jika ada efek cahaya yang selaras dengan apa yang saya mainkan. Jadi saya membuat kotak berbasis Arduino yang membuat strip LED menyala dalam warna acak ketika saya menekan nada di keyboard MIDI saya, dan di mana saya menekan nada itu.
Perlengkapan
- Arduino Uno
- Protoshield Arduino
- jack MIDI
- dioda 1N4148
- 6N138 opto coupler
- resistor: 2x 220 Ohm, 1x 10kOhm, 1x 470Ohm
- Strip LED WS2812B (60 LED)
- beberapa kabel sisa
- tabung panas menyusut
- casing yang cocok untuk Arduino (saya menggunakan kotak sambungan plastik)
Anda juga akan membutuhkan
- besi solder dan solder
- Keyboard MIDI dan kabel MIDI
Langkah 1: Elektronik
Sirkuit ini cukup mudah. Ini terdiri dari input MIDI standar (kiri Arduino) dan koneksi ke strip LED (kanan Arduino). Tempatkan semua bagian di protoshield, ada banyak ruang. Biasanya disarankan untuk menggunakan catu daya eksternal untuk memberi daya pada strip LED, tetapi saya menemukan bahwa ketika Anda bermain, hanya beberapa LED yang menyala pada saat yang bersamaan, jadi ada tidak ada masalah dalam menggunakan Arduino +5V / GND sebagai output daya. (Cobalah untuk menghindari menekan semua tombol secara bersamaan, dan dengan kecepatan penuh.;-)) Jika Anda memutuskan untuk menggunakan catu daya eksternal, cukup sambungkan ke pin Arduino +5V dan GND. Beberapa orang merekomendasikan memasukkan kapasitor 100uF (tidak ditampilkan dalam skema) di antara dua garis ini.
Solder bagian-bagian ke protoshield dan sambungkan strip LED seperti yang ditunjukkan pada skema.
Langkah 2: Menghubungkan Strip LED
Penting untuk menghubungkan ujung kanan - ujung input - strip LED ke sirkuit. Strip saya memiliki konektor perempuan sebagai input, dan memiliki segitiga kecil sepanjang menunjuk jauh dari input. Pada output, ada konektor laki-laki (untuk dapat menghubungkannya ke strip lain, yang tidak kita butuhkan), jadi saya memotongnya dan menyoldernya ke tiga kabel yang berasal dari Arduino. Gunakan tabung heat shrink untuk mengikat ketiga kabel ke strip LED bersama-sama, dan membuatnya tidak terlalu terlihat.
Strip LED yang saya gunakan dilengkapi dengan pita perekat di bagian belakangnya, sehingga dapat dengan mudah direkatkan ke bagian belakang keyboard MIDI.
Langkah 3: Menyesuaikan Proyek ke Keyboard Anda
Anda mungkin harus menyesuaikan strip LED dan kode Arduino ke keyboard Anda. Milik saya memiliki 76 tombol, dan panjang strip hampir persis dengan lebar keyboard. Jika Anda memiliki mis. 61 kunci, Anda mungkin memerlukan strip yang lebih pendek. Strip LED dapat dipotong di antara dua LED mana pun. Pastikan Anda memotong bagian yang benar, ia memiliki ujung input (dengan konektor perempuan) dan ujung keluaran (dengan konektor laki-laki), Anda harus menjaga ujung input. Dalam kode, ubah #defines untuk
- NUMBER_OF_LEDS ke jumlah LED yang tersisa di strip Anda setelah memotong ujungnya,
- NUMBER_OF_KEYS ke jumlah tombol pada keyboard Anda, dan
- MIN_KEY ke nomor nada MIDI dari kunci terendah Anda. Anda mungkin menemukan ini di panduan pengguna keyboard; atau gunakan alat yang menampilkan nomor catatan MIDI, seperti KMidiMon untuk Linux, atau Pocket MIDI untuk windows atau Mac; atau coba nilai yang berbeda hingga perangkat merespons semua tombol di keyboard Anda
Langkah 4: Kode Arduino
Kode Arduino menggunakan perpustakaan MIDI (v4.3.1) oleh Forty Seven Effects dan perpustakaan Adafruit NeoPixel (v1.3.4) oleh Adafruit. Instal perpustakaan ini menggunakan Arduino IDE. Kemudian kompilasi kode dan unggah ke Arduino tanpa pelindung terhubung (optocoupler terhubung ke pin RX, yang menghambat unggahan). Nyalakan Arduino melalui kabel USB (saya menggunakan kutil dinding USB).
Jika Anda ingin memodifikasi kode sesuai keinginan Anda, berikut adalah gambaran singkat cara kerjanya: Di setiap loop, input MIDI dibacakan. Jika acara Note On atau Note Off telah diterima, fungsi MyHandleNoteOn atau MyHandleNoteOff akan dipanggil. Keduanya memanggil fungsi updateVelocityArray, yang menyimpan kecepatan (yaitu seberapa keras Anda menekan tombol) dari nomor kunci. Jika kecepatan lebih tinggi dari yang disimpan sebelumnya, warna LED yang sesuai diatur ke "warna saat ini". Setelah kejadian MIDI ditangani, fungsi updateLedArray dipanggil. Ini memperbarui "warna saat ini" (nilai merah, hijau dan biru yang berubah secara independen secara linier, hingga ujung bawah atau atas tercapai, di mana kecepatan untuk perubahan linier diatur ke angka acak), perlahan-lahan mengurangi kecepatan nada yang ditekan, dan memperbarui nilai warna setiap LED yang harus berubah warnanya (karena ketukan nada baru, atau pengurangan kecepatan). Fungsi showLedArray mentransfer warna ke struktur Adafruit_NeoPixel yang disebut "piksel" dan membuat LED sebenarnya menunjukkan warna dalam struktur piksel.
Langkah 5: Kemungkinan Peningkatan…
Sebuah proyek tidak pernah selesai. Selalu ada sesuatu yang dapat dilakukan untuk memperbaikinya:
- Protoshield berisi begitu sedikit bagian itu benar-benar sia-sia; seseorang dapat dengan mudah mencapai efek yang sama dengan Arduino Nano dan PCB lubang 15x7 ditambah beberapa pin header perempuan.
- Beberapa sinyal MIDI hilang. Jika itu NoteOn, LED yang sesuai tidak akan menyala; jika itu NoteOff, itu tidak akan padam (itulah sebabnya saya memperkenalkan pengurangan kecepatan, yang memastikan bahwa LED tidak akan tetap menyala tanpa batas). Aku masih mencoba mencari tahu alasannya. Mungkin ini masalah waktu, dan MIDI.read() harus dipanggil lebih sering.
- Beberapa sinyal MIDI salah dibaca, yaitu LED yang salah menyala. Bisa dihubungkan dengan poin di atas. Perlu beberapa penyelidikan.
- Sirkuit ini dirancang untuk memberikan efek visual yang menyenangkan tanpa banyak interaksi pengguna (selain memainkan keyboard). Namun, saya bisa membayangkan menambahkan potensiometer yang dibacakan (menggunakan salah satu input analog Arduino) yang dengannya Anda dapat mengubah kecepatan maksimum perubahan warna (saat ini #didefinisikan sebagai MAX_COLOR_CHANGE_SPEED = 20). Atau ukur waktu rata-rata antara dua acara NoteOn, dan ubah MAX_COLOR_CHANGE_SPEED sesuai dengan itu - dalam lagu lambat, warnanya akan berubah lebih lambat.
Langkah 6: Selesai
Nyalakan Arduino melalui kabel USB (saya menggunakan kutil dinding USB). Hubungkan keyboard MIDI Anda ke jack MIDI, dan mulai rockin '. Tonton saya memainkan sedikit musik ringan (permainan kata, seburuk itu, dimaksudkan).
Direkomendasikan:
Dekorasi Jendela Cahaya Natal Terkendali WiFi: 4 Langkah
WiFi Controlled Christmas Light Window Decoration: Kontrol strip lampu LED dari ponsel atau PC Anda - banyak pola lampu bertema Natal yang menyenangkan
ESP8266 RGB LED STRIP Kontrol WIFI - NODEMCU Sebagai Remote IR untuk Strip Led yang Dikendalikan Melalui Wifi - Kontrol Smartphone LED STRIP RGB: 4 Langkah
ESP8266 RGB LED STRIP Kontrol WIFI | NODEMCU Sebagai Remote IR untuk Strip Led yang Dikendalikan Melalui Wifi | RGB LED STRIP Smartphone Control: Hi guys dalam tutorial ini kita akan belajar bagaimana menggunakan nodemcu atau esp8266 sebagai remote IR untuk mengontrol strip LED RGB dan Nodemcu akan dikendalikan oleh smartphone melalui wifi. Jadi pada dasarnya Anda dapat mengontrol STRIP LED RGB dengan ponsel cerdas Anda
Strip LED RGB Terkendali WiFi Dengan ESP8266: 5 Langkah
WiFi Controlled RGB LED Strip Dengan ESP8266: Idenya adalah untuk membuat lampu LED yang dapat dikontrol dari WiFi. Saya memiliki beberapa strip LED cadangan dari Natal yang tergeletak di sekitar, jadi saya mendaur ulang ini ke ESP8266 yang memungkinkan LED dikendalikan dari WiFi.ESP8266 dapat berfungsi sebagai server web, ini
Neopiksel Terkendali Smartphone (Strip LED) Dengan Aplikasi Blynk Melalui WiFi: 6 Langkah
Smartphone Controlled Neopixels (LED Strip) Dengan Aplikasi Blynk Melalui WiFi: Saya membuat proyek ini setelah saya terinspirasi oleh neopiksel yang dikendalikan smartphone di rumah teman tetapi dibeli di toko. Saya pikir "Alangkah sulitnya membuat sendiri, itu akan jauh lebih murah juga!"Begini caranya.Catatan:Saya berasumsi Anda fa
Bertenaga Arduino, Strip Lampu LED Memudar Terkendali Sensor: 6 Langkah (dengan Gambar)
Bertenaga Arduino, Strip Lampu LED Memudar Terkendali Sensor: Saya baru-baru ini memperbarui dapur saya dan tahu bahwa pencahayaan akan 'mengangkat' tampilan lemari. Saya memilih 'True Handless' jadi saya memiliki celah di bawah permukaan kerja, serta kickboard, di bawah lemari dan di atas lemari yang tersedia dan