Daftar Isi:

Lampu Pesta Portabel: 12 Langkah (dengan Gambar)
Lampu Pesta Portabel: 12 Langkah (dengan Gambar)

Video: Lampu Pesta Portabel: 12 Langkah (dengan Gambar)

Video: Lampu Pesta Portabel: 12 Langkah (dengan Gambar)
Video: Spot light Sinar Laser terjauh #shortvideo #spotlight #laser #lampusorot #pasarmalam 2024, November
Anonim
Image
Image
Ide
Ide

Proyek Tinkercad »

Bisakah Anda membawa cahaya ke pesta dan membuatnya lebih menyenangkan?

Itulah pertanyaannya. Dan jawabannya adalah YA (tentu saja).

Instruksi ini adalah tentang membuat perangkat portabel yang mendengarkan musik dan membuat visualisasi musik dari cincin konsentris LED Neopixel.

Upaya telah dilakukan untuk membuat perangkat "menari", yaitu, bergerak mengikuti irama musik, tetapi deteksi ketukan terbukti menjadi tugas yang lebih rumit daripada kedengarannya (tidak ada permainan kata-kata), jadi "menari" agak canggung, tapi masih ada.

Perangkat berkemampuan Bluetooth dan akan merespons perintah teks. Saya tidak punya waktu untuk menulis Aplikasi untuk mengontrol Lampu Pesta (baik Android atau iOS). Jika Anda siap dengan tugas itu - beri tahu saya!!!

Jika Anda menyukai instruksi ini, silakan pilih dalam kontes Make It Glow!

Perlengkapan

Untuk membuat Lampu Pesta, Anda memerlukan:

  • STM32F103RCBT6 Leaflabs Leaf Maple Mini USB ARM Cortex-M3 Modul untuk Arduino (tautan di sini) - otak perangkat. Perangkat yang relatif murah ini sangat kuat, tidak jelas mengapa Anda akan kembali ke Arduino.
  • MSGEQ7 Band Graphic Equalizer IC DIP-8 MSGEQ7 (tautan di sini)
  • Modul Bluetooth HC-05 atau HC-06 (tautan di sini)
  • Mikrofon Adafruit MAX9814 (tautan di sini)
  • Motor servo standar (tautan di sini) adalah Anda ingin perangkat Anda "menari"
  • Papan Pengembangan Driver LED CJMCU 61 Bit WS2812 5050 RGB (tautan di sini)
  • TTP223 Touch Key Module Capacitive Settable Self-Lock/No-Lock Switch Board (tautan di sini)
  • Ultra Compact 5000-mah Dual USB Output Bank Daya Super Slim (tautan di sini)

  • Resistor, kapasitor, kabel, lem, sekrup, papan prototipe, dll. dll.

Langkah 1: Idenya

Ide
Ide

Idenya adalah untuk memiliki perangkat portabel yang dapat ditempatkan dekat dengan sumber musik, dan itu akan menciptakan visualisasi musik yang penuh warna. Anda harus dapat mengontrol perilaku perangkat melalui tombol (sentuh) dan Bluetooth.

Saat ini, Party Lights memiliki 7 visualisasi yang diterapkan (beri tahu saya jika Anda memiliki lebih banyak ide!):

  1. Lingkaran warna-warni konsentris
  2. salib malta
  3. Lampu berdenyut
  4. Perapian (favorit pribadi saya)
  5. Lampu berjalan
  6. Pohon ringan
  7. Segmen menyamping

Secara default, perangkat akan menggilir visualisasi setiap menit. Namun, pengguna dapat memilih untuk tetap menggunakan satu visualisasi dan/atau memutarnya secara manual.

Visualisasi yang memutar palet warna mereka juga bisa "dibekukan" jika pengguna menyukai kombinasi warna tertentu.

Dan sebagai beberapa kontrol lagi, pengguna dapat mengubah sensitivitas mikrofon dan mengaktifkan/menonaktifkan mode "menari" motor servo.

Langkah 2: Pemrosesan Skema dan Suara

Pemrosesan Skema dan Suara
Pemrosesan Skema dan Suara
Pemrosesan Skema dan Suara
Pemrosesan Skema dan Suara
Pemrosesan Skema dan Suara
Pemrosesan Skema dan Suara
Pemrosesan Skema dan Suara
Pemrosesan Skema dan Suara

File skema fritzing disertakan dalam paket di Github di subfolder "file".

Pada dasarnya, chip MSEQ7 melakukan pemrosesan audio, membagi sinyal audio menjadi 7 band: 63Hz, 160Hz, 400Hz, 1kHz, 2.5kHz, 6.25kHz, dan 16kHz.

Mikrokontroler menggunakan 7 band tersebut untuk membuat berbagai visualisasi, pada dasarnya memetakan amplitudo masing-masing band menjadi intensitas cahaya LED dan kombinasi warna.

Sumber suara adalah mikrofon dengan 3 tingkat kontrol penguatan. Anda dapat menggilir pengaturan penguatan menggunakan salah satu tombol tergantung pada seberapa jauh/keras sumber suara.

Mikrokontroler juga mencoba melakukan deteksi "beat" pada pita "bass" 63Hz. Saya masih bekerja pada cara yang dapat diandalkan untuk mendeteksi dan mempertahankan keselarasan beat.

Penggunaan tombol "sentuh" adalah sebuah eksperimen. Saya pikir mereka bekerja dengan cukup baik, namun, kurangnya umpan balik pers agak membingungkan.

Langkah 3: Roda LED

Roda LED
Roda LED
Roda LED
Roda LED
Roda LED
Roda LED

Inti dari visualisasi adalah 61 roda LED.

Harap dicatat bahwa bagian itu datang sebagai cincin individu yang harus Anda satukan. Saya menggunakan kabel tembaga untuk saluran listrik (yang juga menyatukan cincin dengan baik), dan kabel sinyal tipis.

LED diberi nomor 0 hingga 60 mulai dari LED luar bawah dan searah jarum jam ke dalam. LED tengah adalah nomor 60.

Setiap visualisasi bergantung pada larik data dua dimensi, yang memetakan setiap LED ke posisi tertentu untuk segmen visualisasi target.

Misalnya, untuk lingkaran konsentris, ada 5 segmen:

  • Lingkaran luar, LED 0 - 23, panjang 24 LED
  • Lingkaran luar kedua, LED 24-39, panjang 16 LED
  • Lingkaran ketiga (tengah), LED 40 - 51, panjang 12 LED
  • Lingkaran dalam kedua, LED 52 - 59, panjang 8 LED
  • Di dalam LED, LED 60, 1 LED panjang

Visualisasi memetakan 5 dari 7 saluran audio dan menyalakan LED secara progresif sesuai dengan posisinya di pita melingkar sebanding dengan tingkat suara di pita.

Visualisasi lain menggunakan struktur dan format data yang berbeda, tetapi idenya adalah selalu memiliki visualisasi yang didorong oleh larik data, bukan oleh kode. Dengan cara ini visualisasi dapat disesuaikan ke berbagai bentuk (lebih banyak atau lebih sedikit LED, lebih banyak pita EQ) tanpa mengubah kode, hanya nilai dalam array data.

Misalnya, ini adalah bagaimana struktur data untuk visualisasi 1 terlihat seperti dalam sketsa:

// Visualisasi 1 & 3 - 5 lingkaran penuhconst byte TOTAL_LAYERS1 = 5; const byte LAYERS1[TOTAL_LAYERS1][25] = { //00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 { 24, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23 }, { 16, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39 }, { 12, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51 }, { 8, 52, 53, 54, 55, 56, 57, 58, 59 }, { 1, 60 } };

Langkah 4: Visualisasi

Visualisasi
Visualisasi
Visualisasi
Visualisasi
Visualisasi
Visualisasi
Visualisasi
Visualisasi

Sejauh ini ada 7 visualisasi dan animasi start-up:

Animasi permulaan

Saat perangkat dihidupkan, tiruan kembang api ditampilkan. Ini seharusnya menjadi urutan pengujian LED dan Servo, tetapi kemudian berkembang menjadi versi animasi dari pengujian tersebut

Lingkaran warna-warni konsentris

Lampu mengelilingi layar dalam lingkaran konsentris sebanding dengan amplitudo masing-masing pita persamaan. Beralih secara acak antara clock- dan counter-clock-wise dan perlahan-lahan memutar warna di atas 256 roda warna

salib malta

Satu band adalah pusat LED. Pita lainnya adalah garis vertikal dan horizontal LED, dan segmen yang tersisa mewakili masing-masing pita EQ. Semua segmen memutar warna dalam 128 offset agar tetap kontras.

Lampu berdenyut

Setiap lingkaran menyalakan semua LED secara serempak untuk pita eq khusus, sambil memutar warna secara perlahan dengan sedikit offset. Pita EQ secara progresif digeser dari satu lingkaran ke lingkaran berikutnya menciptakan perkembangan luar.

Perapian

Garis-garisnya berbentuk setengah lingkaran yang menyala dari bawah ke atas dimulai dengan warna merah terang dan menambahkan warna kuning ke atas sebagai simulasi api yang menyala di perapian. Sesekali "percikan" putih cerah muncul secara acak. Tidak ada rotasi warna

Lampu berjalan

Setiap lingkaran konsentris adalah pita EQ yang terpisah. LED terkemuka adalah yang berada di garis vertikal di bawah LED tengah. Setelah LED menyala sebanding dengan amplitudo pita, ia mulai "berjalan" di sekitar lingkaran masing-masing secara perlahan mengurangi intensitas. Rotasi jam dan berlawanan arah jarum jam didukung, beralih secara acak.

Pohon ringan

Segmen menyala dalam garis lurus dari LED bawah ke atas dan kemudian menyamping dalam setengah lingkaran konsentris yang meniru pohon palem. Rotasi warna.

Segmen menyamping

Ini adalah versi Maltese Cross sebelumnya dengan hanya 2 segmen diagonal yang digunakan. Seharusnya menyerupai ikon untuk gelombang suara.

Langkah 5: Kontrol Tombol Sentuh

Kontrol Tombol Sentuh
Kontrol Tombol Sentuh

Ada 4 tombol sensitif sentuhan:

  1. Putar melalui visualisasi dan pertahankan yang sekarang sampai yang lain dipilih (secara default siklus visualisasi setiap 30 detik)
  2. Skema warna "Bekukan" / "cairkan" saat ini - jika Anda menyukai kombinasi warna tertentu, Anda dapat membekukannya - rotasi warna dinonaktifkan dan visualisasi akan berlanjut hanya dengan palet warna ini
  3. Sesuaikan sensitivitas mikrofon
  4. Aktifkan / nonaktifkan "mode menari"

Dalam mode dansa, perangkat akan mencoba mendeteksi "ketukan" musik yang sedang diputar dan memutar kepalanya sesuai irama. Sejauh ini "menari" agak canggung daripada indah, jujur.

Langkah 6: Deteksi Beat dan Servo "menari"

Deteksi Beat dan Servo
Deteksi Beat dan Servo

Perangkat terus mencoba mendeteksi "denyut" nada saat ini sebagai jarak antara puncak berurutan dari pita 63Hz. Setelah terdeteksi (dan hanya jika mode dansa AKTIF), perangkat akan mengaktifkan motor servonya untuk berbelok ke kiri atau kanan secara acak sesuai irama.

Setiap ide cemerlang tentang bagaimana membuat ini lebih dapat diandalkan dipersilakan!

Sketsa 'Music_Test_LED' menghasilkan 7 pita EQ dengan cara yang sesuai untuk diplot menggunakan Arduino IDE.

Langkah 7: Bentuk 3D

Bentuk 3D
Bentuk 3D
Bentuk 3D
Bentuk 3D
Bentuk 3D
Bentuk 3D

Seluruh perakitan Lampu Pesta dirancang dari awal menggunakan Autodesk TinkerCAD.

Desain asli terletak di sini. Folder "files/3D" di github.com berisi model STL.

Desain ini menggambarkan bagaimana perangkat terlihat dirakit.

Semua komponen dicetak dan kemudian dirakit/direkatkan.

"Kubah" menampung mikrokontroler, papan Bluetooth, dan mikrofon. Mikrokontroler ditempatkan pada papan 40mm x 60 mm dan didukung oleh rel yang ditunjuk.

Servo terletak di "kaki" kubah, sedangkan tombol terletak di pangkalan.

Tempat baterai dicetak khusus untuk jenis baterai yang disebutkan di bagian Persediaan. Jika Anda memilih untuk menggunakan baterai yang berbeda, kompartemen harus dirancang ulang sesuai dengan itu.

Langkah 8: Catu Daya

Sumber Daya listrik
Sumber Daya listrik
Sumber Daya listrik
Sumber Daya listrik

Ultra-Compact 5000-mah Dual USB Outputs Super Slim Power Bank tampaknya memberikan daya yang cukup untuk pengoperasian berjam-jam.

Kompartemen baterai dirancang sedemikian rupa sehingga terlepas dari perangkat lainnya dan dapat diganti dengan kompartemen yang dirancang untuk jenis baterai yang berbeda.

Colokan USB diposisikan dan direkatkan di tempatnya untuk menyambungkan baterai saat dimasukkan.

Langkah 9: Kontrol Bluetooth

Kontrol Bluetooth
Kontrol Bluetooth

Modul HC-05 ditambahkan untuk menyediakan cara untuk mengontrol perangkat secara nirkabel.

Saat aktif, perangkat membuat koneksi Bluetooth yang disebut "LEDDANCE", yang dapat Anda pasangkan dengan ponsel Anda.

Idealnya, harus ada Aplikasi yang memungkinkan pengontrolan PartyLights (memilih palet warna, mensimulasikan penekanan tombol, dll.). Namun, saya belum menulis satu pun.

Jika Anda tertarik untuk membantu menulis Aplikasi Android atau iOS untuk Lampu Pesta, beri tahu saya!

Untuk mengontrol perangkat, saat ini Anda dapat menggunakan aplikasi terminal Bluetooth, dan mengirim perintah berikut:

  • LEDDBUTT - di mana '1', '2', '3', atau '4' mensimulasikan menekan tombol masing-masing. Contoh: LEDDBUTT1
  • LEDDCOLRc - di mana c adalah angka dari 0 hingga 255 - posisi warna yang diinginkan pada roda warna. Perangkat akan beralih ke warna LED yang ditentukan.
  • LEDDSTAT - mengembalikan nomor 3 karakter yang terdiri dari '0' dan '1 saja:

    • posisi pertama: '0' - warna tidak berputar, '1' - warna berputar
    • posisi kedua: '0' - mode menari mati, '1' - mode menari aktif
    • posisi ketiga: '0' - mikrofon dalam penguatan normal, '1' - mikrofon dalam penguatan tinggi

Langkah 10: Kontrol Aplikasi Berdasarkan Blynk

Kontrol Aplikasi Berdasarkan Blynk
Kontrol Aplikasi Berdasarkan Blynk
Kontrol Aplikasi Berdasarkan Blynk
Kontrol Aplikasi Berdasarkan Blynk
Kontrol Aplikasi Berdasarkan Blynk
Kontrol Aplikasi Berdasarkan Blynk
Kontrol Aplikasi Berdasarkan Blynk
Kontrol Aplikasi Berdasarkan Blynk

Blynk (blynk.io) adalah platform IoT agnostik perangkat keras. Saya menggunakan Blynk dalam Sistem Irigasi Tanaman Otomatis IoT saya yang dapat diinstruksikan dan terkesan dengan kemudahan dan kekokohan platform.

Blynk mendukung koneksi ke perangkat edge melalui Bluetooth - persis seperti yang kami butuhkan untuk PartyLights.

Jika Anda belum melakukannya, silakan unduh Aplikasi Blynk, daftar dan buat ulang Aplikasi Blynk PartyLights menggunakan tangkapan layar yang terlampir pada langkah ini. Pastikan penetapan pin virtual sama seperti pada tangkapan layar, jika tidak, tombol pada aplikasi tidak akan berfungsi sebagaimana mestinya.

File "blynk_settings.h" berisi UID Blynk pribadi saya. Saat Anda membuat proyek, proyek tersebut akan diberi proyek baru untuk Anda gunakan.

Unggah sketsa PartyLightsBlynk.ino, jalankan Aplikasi. Pasangkan dengan perangkat Bluetooth dan nikmati pestanya.

Langkah 11: Sketsa dan Perpustakaan

Sketsa dan Perpustakaan
Sketsa dan Perpustakaan

Sketsa utama dan file pendukung terletak di Github.com di sini.

Pustaka berikut digunakan dalam sketsa Lampu Pesta:

  • TaskScheduler - multitasking kooperatif - di sini (dikembangkan oleh saya)
  • AverageFilter - filter rata-rata templated - di sini (dikembangkan oleh saya)
  • Servo - Kontrol servo - adalah perpustakaan Arduino standar
  • WS2812B -NEOPixel control - hadir sebagai bagian dari paket STM32

Halaman Wiki ini menjelaskan cara menggunakan papan STM32 dengan Arduino IDE.

Langkah 12: Perbaikan di Masa Depan

Perbaikan masa depan
Perbaikan masa depan

Beberapa hal dapat diperbaiki dalam desain ini, yang mungkin Anda pertimbangkan jika Anda memulai proyek ini:

  • Gunakan ESP32 alih-alih papan Maple Mini. ESP32 memiliki 2 CPU, Bluetooth dan tumpukan WiFi, dan dapat berjalan pada 60MHz, 120MHz, dan bahkan 240MHz.
  • Desain yang lebih kecil - perangkat yang dihasilkan berukuran besar. Bisa lebih kompak (terutama jika Anda menjatuhkan ide menari dan servo terkait)
  • Deteksi ketukan dapat ditingkatkan tanpa batas. Apa yang datang secara alami kepada kita manusia, tampaknya menjadi tugas yang sulit bagi komputer
  • Lebih banyak visualisasi dapat dirancang dan diimplementasikan.
  • Dan, tentu saja, Aplikasi dapat ditulis untuk mengontrol perangkat secara nirkabel dengan UI yang keren.

Direkomendasikan: