İçindekiler:
- Gereçler
- Adım 1: Fikir
- 2. Adım: Şematik ve Ses İşleme
- Adım 3: LED Tekerlek
- 4. Adım: Görselleştirmeler
- Adım 5: Düğme Kontrollerine dokunun
- Adım 6: Algılama ve Servo "dansı" yendi
- 7. Adım: 3B Şekiller
- Adım 8: Güç Kaynağı
- 9. Adım: Bluetooth Kontrolü
- Adım 10: Blynk'e Dayalı Kontrol Uygulamayı
- Adım 11: Eskizler ve Kitaplıklar
- Adım 12: Gelecekteki İyileştirmeler
Video: Taşınabilir Parti Işıkları: 12 Adım (Resimlerle)
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:18
Tinkercad Projeleri »
Bir partiye ışık getirip daha eğlenceli hale getirebilir misin?
Soru buydu. Ve cevap EVET (elbette).
Bu talimat, müzik dinleyen ve eşmerkezli Neopiksel LED halkalarından müzik görselleştirmesi yaratan taşınabilir bir cihaz yapmakla ilgilidir.
Cihazı "dans etmek", yani müziğin ritmine göre hareket ettirmek için bir girişimde bulunuldu, ancak vuruş algılamanın göründüğünden daha karmaşık bir görev olduğu ortaya çıktı (punto amaçlanmadı), bu nedenle "dans etmek" biraz garip, ama hala orada.
Cihaz Bluetooth özelliklidir ve metin komutlarına yanıt verir. Party Lights'ı (Android veya iOS) kontrol etmek için bir Uygulama yazmaya zamanım olmadı. Göreve hazırsanız - lütfen bana bildirin !!!
Bu talimatı beğendiyseniz, lütfen Make It Glow yarışmasında oy verin!
Gereçler
Parti Işıkları oluşturmak için ihtiyacınız olacak:
- Arduino için STM32F103RCBT6 Leaflabs Leaf Maple Mini USB ARM Cortex-M3 Modülü (buraya bağlantı) - cihazın beyni. Bu nispeten ucuz cihazlar o kadar güçlü ki, neden bir Arduino'ya geri döneceğiniz belli değil.
- MSGEQ7 Bant Grafik Ekolayzer IC DIP-8 MSGEQ7 (buraya bağlantı)
- HC-05 veya HC-06 Bluetooth modülü (buraya bağlantı)
- Adafruit MAX9814 mikrofon (buraya bağlantı)
- Standart bir servo motor (buradaki bağlantı) cihazınızın "dans etmesini" mi istiyorsunuz?
- CJMCU 61 Bit WS2812 5050 RGB LED Sürücü Geliştirme Kartı (buraya bağlantı)
- TTP223 Dokunmatik Anahtar Modülü Kapasitif Ayarlanabilir Kendinden Kilitli/Kilitsiz Anahtar Kartı (buraya bağlantı)
-
Ultra Kompakt 5000 mah Çift USB Çıkışı Süper İnce Güç Bankası (buraya bağlantı)
- Dirençler, kapasitörler, teller, yapıştırıcılar, vidalar, prototipleme panoları vb.
Adım 1: Fikir
Buradaki fikir, bir müzik kaynağına yakın yerleştirilebilecek ve renkli müzik görselleştirmeleri yaratacak taşınabilir bir cihaza sahip olmaktır. Cihaz davranışını düğmeler (dokunma) ve Bluetooth aracılığıyla kontrol edebilmelisiniz.
Şu anda Party Lights 7 görselleştirmeye sahiptir (daha fazla fikriniz varsa bana bildirin!):
- eşmerkezli renkli daireler
- Malta haçı
- Titreşen ışıklar
- Şömine (kişisel favorim)
- Çalışan ışıklar
- hafif ağaçlar
- yan segmentler
Varsayılan olarak, cihaz her dakika görselleştirmeler arasında geçiş yapacaktır. Ancak, bir kullanıcı tek bir görselleştirmeye bağlı kalmayı ve/veya bunlar arasında manuel olarak geçiş yapmayı seçebilir.
Kullanıcı belirli bir renk kombinasyonunu beğenirse, renk paletini döndüren görselleştirmeler de "dondurulabilir".
Ve birkaç kontrol daha olarak, kullanıcı mikrofon hassasiyetini değiştirebilir ve servo motor "dans" modunu etkinleştirebilir/devre dışı bırakabilir.
2. Adım: Şematik ve Ses İşleme
Github'daki pakette "files" alt klasöründe bir fritzing şematik dosyası bulunur.
Temel olarak, bir MSEQ7 yongası ses işlemeyi yapar ve bir ses sinyalini 7 banda böler: 63Hz, 160Hz, 400Hz, 1kHz, 2.5kHz, 6.25kHz ve 16kHz
Mikrodenetleyici, çeşitli görselleştirmeler oluşturmak için bu 7 bandı kullanır, temel olarak ilgili bant genliklerini LED ışık yoğunluğu ve renk kombinasyonlarına eşler.
Ses kaynağı, 3 seviyeli kazanç kontrolüne sahip bir mikrofondur. Ses kaynağının ne kadar uzak/yüksek olduğuna bağlı olarak düğmelerden birini kullanarak kazanç ayarları arasında geçiş yapabilirsiniz.
Mikrodenetleyici ayrıca 63Hz "bas" bandında "vuruş" algılaması gerçekleştirmeye çalışır. Hala vuruş hizalamasını algılamak ve sürdürmek için güvenilir bir yol üzerinde çalışıyorum.
"Dokunma" düğmelerinin kullanımı bir deneydi. Bence oldukça iyi çalışıyorlar, ancak basın geri bildirimi eksikliği biraz kafa karıştırıcı.
Adım 3: LED Tekerlek
Görselleştirmenin özü, 61 LED'lik bir tekerlektir.
Parçanın, bir araya getirmeniz gereken ayrı halkalar olarak geldiğini lütfen unutmayın. Güç hatları için (halkaları da güzel bir şekilde bir arada tutan) bakır teller ve ince sinyal kabloları kullandım.
LED'ler, alt dış LED'den başlayarak ve saat yönünde içe doğru giden 0'dan 60'a kadar numaralandırılmıştır. Ortadaki LED 60 numaradır.
Her görselleştirme, her bir LED'i hedef görselleştirme segmenti için belirli bir konuma eşleyen iki boyutlu veri dizilerine dayanır.
Örneğin, eşmerkezli daireler için 5 segment vardır:
- Dış daire, LED'ler 0 - 23, 24 LED'ler uzunluğunda
- İkinci dış daire, LED'ler 24 - 39, 16 LED uzunluğunda
- Üçüncü daire (ortada), LED'ler 40 - 51, 12 LED uzunluğunda
- İkinci iç daire, LED'ler 52 - 59, 8 LED uzunluğunda
- İç LED, LED 60, 1 LED uzun
Görselleştirme, 7 ses kanalından 5'ini eşler ve LED'leri, banttaki ses düzeyiyle orantılı olarak dairesel banttaki konumlarına göre kademeli olarak yakar.
Diğer görselleştirmeler farklı veri yapıları ve biçimleri kullanır, ancak fikir, görselleştirmeleri her zaman kod tarafından değil, veri dizileri tarafından yönlendirilir. Bu şekilde, görselleştirmeler, kodu değiştirmeden, sadece veri dizilerindeki değerleri değiştirmeden farklı şekillere (daha fazla veya daha az LED, daha fazla EQ bandı) ayarlanabilir.
Örneğin, çizimde görselleştirme 1 için veri yapısı şu şekilde görünür:
// Görselleştirme 1 ve 3 - tam 5 daireconst bayt TOTAL_LAYERS1 = 5; const bayt 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 } };
4. Adım: Görselleştirmeler
Şimdiye kadar 7 görselleştirme ve bir başlangıç animasyonu var:
Başlangıç animasyonu
Cihaz açıldığında, bir havai fişek taklidi görüntülenir. Bunun bir LED ve Servo test dizisi olması gerekiyordu, ancak daha sonra bu tür bir testin animasyonlu bir versiyonuna dönüştü.
eşmerkezli renkli daireler
Işıklar, ilgili eq bandının genliği ile orantılı olarak eşmerkezli dairelerde ekranın etrafında döner. Saat ve saat yönünün tersine rastgele geçiş yapmak ve renkleri 256 renk çarkı üzerinde yavaşça döndürmek
Malta haçı
Bir bant merkez LED'dir. Başka bir bant, LED'lerin dikey ve yatay çizgileridir ve kalan bölümler, her biri bir EQ bandını temsil eder. Tüm segmentler, kontrastı korumak için renkleri 128 ofset olarak döndürüyor.
Titreşen ışıklar
Her daire, özel bir eq bandı için tüm LED'leri birlikte yakar ve renkleri hafif bir sapma ile yavaşça döndürür. EQ bantları, dışa doğru ilerleme yaratarak aşamalı olarak bir daireden diğerine kaydırılır.
Şömine
Bantlar, bir şöminede yanan bir ateşi simüle eden, parlak kırmızıyla başlayan ve yolda sarı ekleyen, aşağıdan yukarıya doğru aydınlatılan yarım dairelerdir. Ara sıra parlak beyaz "kıvılcım" rastgele fırlar. Renk döndürme yok
Çalışan ışıklar
Her eşmerkezli daire ayrı bir EQ bandıdır. Önde gelen LED'ler, orta LED'in altındaki dikey çizgide bulunanlardır. LED, bant genliği ile orantılı olarak yandığında, yoğunluğu yavaşça azaltarak ilgili dairenin etrafında "koşmaya" başlar. Rastgele geçiş yaparak hem saat hem de saat yönünün tersine dönüşler desteklenir.
hafif ağaçlar
Segmentler, alt LED'den yukarı doğru düz bir çizgide ve ardından palmiye ağaçlarını taklit eden eşmerkezli yarım dairelerde yanlara doğru aydınlatılır. Renk döndürme.
yan segmentler
Bu, önceki Malta Haçı'nın sadece 2 diyagonal segmenti kullanılan bir versiyonudur. Ses dalgaları simgesine benzemesi gerekiyordu.
Adım 5: Düğme Kontrollerine dokunun
4 dokunmaya duyarlı düğme vardır:
- Görselleştirmeler arasında geçiş yapın ve bir diğeri seçilene kadar mevcut olanı devam ettirin (varsayılan olarak görselleştirmeler her 30 saniyede bir döngü yapar)
- Mevcut renk şemasını "Dondur" / "dondur" - belirli bir renk kombinasyonunu seviyorsanız, onu dondurabilirsiniz - renk döndürme devre dışı bırakılır ve görselleştirme yalnızca bu renk paleti ile devam eder
- Mikrofon hassasiyetini ayarlayın
- "Dans modunu" aç / kapat
Dans modunda cihaz o anda çalmakta olan müziğin “ritimini” algılamaya çalışacak ve ritme göre başını çevirecektir. Şimdiye kadar "dans", dürüst olmak gerekirse, güzel olmaktan çok garipti.
Adım 6: Algılama ve Servo "dansı" yendi
Cihaz, 63Hz bandının ardışık tepe noktaları arasındaki bir mesafe olarak mevcut melodinin "vuruşunu" sürekli olarak algılamaya çalışıyor. Bir kez algılandığında (ve yalnızca dans modu AÇIK ise), cihaz, vuruşa göre rastgele sola veya sağa dönmek için servo motorunu etkinleştirir.
Bunu nasıl daha güvenilir hale getireceğinize dair parlak fikirlere açığız!
'Music_Test_LED' çizimi, Arduino IDE kullanılarak çizim yapmaya uygun bir şekilde 7 EQ bandı çıkarır.
7. Adım: 3B Şekiller
Tüm Parti Işıkları montajı, Autodesk TinkerCAD kullanılarak sıfırdan tasarlandı.
Özgün tasarım burada yer almaktadır. github.com'daki "files/3D" klasörü STL modellerini içerir.
Bu tasarım, cihazın nasıl monte edilmiş göründüğünü gösterir.
Tüm bileşenler yazdırıldı ve daha sonra birleştirildi/yapıştırıldı.
"Kubbe", mikrodenetleyiciyi, Bluetooth kartını ve bir mikrofonu barındırıyor. Mikrodenetleyici 40 mm x 60 mm'lik bir panoya yerleştirilir ve belirlenmiş raylarla desteklenir.
Servo, kubbenin "bacağında" bulunurken, düğmeler tabanda bulunur.
Pil bölmesi, Sarf Malzemeleri bölümünde belirtilen pil türü için özel olarak yazdırılmıştır. Farklı bir pil kullanmayı seçerseniz, bölmenin buna göre yeniden tasarlanması gerekecektir.
Adım 8: Güç Kaynağı
Ultra Kompakt 5000 mah Çift USB Çıkışlı Süper İnce Güç Bankası, saatlerce çalışma için yeterli güç sağlıyor gibi görünüyor.
Pil bölmesi, cihazın geri kalanından ayrılacak ve farklı bir pil türü için tasarlanmış olanla değiştirilebilecek şekilde tasarlanmıştır.
USB fişi, pili içeri girerken bağlamak için yerleştirildi ve sıcak yapıştırıldı.
9. Adım: Bluetooth Kontrolü
Cihazı kablosuz olarak kontrol etmenin bir yolunu sağlamak için bir HC-05 modülü eklenir.
Cihaz açıldığında, telefonunuzu eşleştirebileceğiniz "LEDDANCE" adlı bir Bluetooth bağlantısı oluşturur.
İdeal olarak, PartyLights'ı kontrol etmeye izin veren bir Uygulama olmalıdır (bir renk paleti seçme, düğme basışlarını simüle etme, vb.). Ancak henüz bir tane yazmadım.
Parti Işıkları için bir Android veya iOS Uygulaması yazmaya yardım etmekle ilgileniyorsanız, lütfen bana bildirin!
Cihazı kontrol etmek için şu anda Bluetooth terminal uygulamasını kullanabilir ve aşağıdaki komutları gönderebilirsiniz:
- LEDDBUTT - nerede '1', '2', '3' veya '4', ilgili bir düğmeye basmayı simüle eder. Örn.: LEDDBUTT1
- LEDDCOLRc - burada c, 0 ile 255 arasında bir sayıdır - bir renk tekerleğinde istenen rengin konumu. Cihaz belirtilen LED rengine geçecektir.
-
LEDDSTAT - yalnızca '0'lar ve '1'lerden oluşan 3 karakterlik bir sayı döndürür:
- ilk konum: '0' - renkler dönmüyor, '1' - renkler dönüyor
- ikinci konum: '0' - dans modu kapalı, '1' - dans modu açık
- üçüncü konum: '0' - mikrofon normal kazançta, '1' - mikrofon yüksek kazançta
Adım 10: Blynk'e Dayalı Kontrol Uygulamayı
Blynk (blynk.io), donanımdan bağımsız bir IoT platformudur. Blynk'i IoT Otomatik Bitki Sulama Sistemi talimatımda kullandım ve platformun kolaylığı ve sağlamlığından çok etkilendim.
Blynk, Bluetooth üzerinden uç cihazlara bağlanmayı destekler - tam olarak PartyLights için ihtiyacımız olan şey.
Henüz yapmadıysanız, lütfen Blynk Uygulamasını indirin, kaydolun ve bu adıma ekli ekran görüntülerini kullanarak Blynk PartyLights Uygulamasını yeniden oluşturun. Lütfen sanal pin atamalarının ekran görüntülerindekiyle aynı olduğundan emin olun, aksi takdirde uygulamadaki düğmeler istendiği gibi çalışmayacaktır.
"blynk_settings.h" dosyası kişisel Blynk UID'mi içerir. Projenizi oluşturduğunuzda, kullanmanız için yeni bir proje atanacaktır.
PartyLightsBlynk.ino taslağını yükleyin, Uygulamayı çalıştırın. Bluetooth cihazıyla eşleştirin ve partinin tadını çıkarın.
Adım 11: Eskizler ve Kitaplıklar
Ana taslak ve destekleyici dosyalar burada Github.com'da bulunur.
Parti Işıkları taslağında aşağıdaki kitaplıklar kullanıldı:
- TaskScheduler - işbirlikçi çoklu görev - burada (benim tarafımdan geliştirildi)
- OrtalamaFilter - şablonlu ortalama filtre - burada (benim tarafımdan geliştirildi)
- Servo - Servo kontrol - standart bir Arduino kütüphanesidir
- WS2812B -NEOPixel kontrolü - STM32 paketinin bir parçası olarak gelir
Bu Wiki sayfası, STM32 kartlarının Arduino IDE ile nasıl kullanılacağını açıklar.
Adım 12: Gelecekteki İyileştirmeler
Bu tasarımda, bu projeye başlarsanız göz önünde bulundurabileceğiniz birkaç şey geliştirilebilir:
- Maple Mini kartı yerine ESP32 kullanın. ESP32, 2 CPU, Bluetooth ve WiFi yığınına sahiptir ve 60MHz, 120MHz ve hatta 240MHz'de çalışabilir.
- Daha küçük tasarım - ortaya çıkan cihaz büyüktür. Daha kompakt olabilir (özellikle dans fikrini ve ilgili servoyu bırakırsanız)
- Vuruş algılama sonsuz derecede iyileştirilebilir. Biz insanlara doğal gelen şey, bir bilgisayar için zor bir iş gibi görünüyor.
- Çok daha fazla görselleştirme tasarlanabilir ve uygulanabilir.
- Ve elbette, cihazı kablosuz olarak harika bir UI ile kontrol etmek için bir Uygulama yazılabilir.
Önerilen:
FuseLight: Eski/Fused Tubelight'ı Stüdyo/Parti Işığına Dönüştürün: 3 Adım (Resimlerle)
FuseLight: Eski/Fused Tubelight'ı Stüdyo/Parti Işığına Dönüştürün: Burada bazı temel araçları, rgb ışıklarını ve 3d baskıyı kullanarak bir Fused Tubelight'ı bir Stüdyo/Parça ışığına dönüştürdüm. Kullanılan RGB led şeritler sayesinde birden fazla renk ve gölgeye sahip olabiliriz
Arduino & Neopixel Kola Şişesi Gökkuşağı Parti Işığı: 7 Adım (Resimlerle)
Arduino ve Neopixel Kola Şişesi Gökkuşağı Parti Işığı: Böylece oğlum Doon, eski kola şişelerinden ve Glow Sticks'in yapışkan iç kısımlarından yapılmış çok havalı bir parti ışığı görüyor ve yaklaşmakta olan Okul Sınavları Bitti Blowout PartAYYY için bir tane yapıp yapamayacağımızı soruyor! ! Elbette diyorum, ama bunlardan bazılarına sahip olmayı tercih etmez miydin
Etkileşimli Avlu Işıkları, Geçit Işıkları: 3 Adım
Etkileşimli Avlu Işıkları, Geçit Işıkları: Arka bahçem için bir çeşit etkileşimli avlu ışığı yapmak istedim. Fikir, birisi bir yöne yürüdüğünde, yürüdüğünüz yönde bir animasyon başlatacaktı. Dollar General 1.00$ güneş ışığıyla başladım
LED Parti Montu: 15 Adım (Resimlerle)
LED Parti Paltosu: New York City, çok eskimiş Kabare Yasasını nihayet yürürlükten kaldırdı. Hadi dans edelim. Bu durum için doğru kıyafete ihtiyacınız olacak. Bu palto, beklenmedik bir yeteneğe sahip çılgın bir moda parçası: çevreleyen ışık azaldıkça aydınlanıyor . Bir yaratık gibi
Kendin Yap Noel Işıkları Müziğe Ayarlandı - Koreograflı Ev Işıkları: 15 Adım (Resimlerle)
Kendin Yap Noel Işıkları Müziğe Ayarlandı - Koreograflı Ev Işıkları: Müzik Ayarlı DIY Noel Işıkları - Koreograflı Ev Işıkları Bu yeni başlayan bir DIY DEĞİLDİR. Elektronik, devre, BASIC programlama ve elektrik güvenliği ile ilgili genel zeka konularında sağlam bir kavrayışa ihtiyacınız olacak. Bu DIY, deneyimli bir kişi içindir, yani