Mündəricat:
- Təchizat
- Addım 1: Fikir
- Addım 2: Şematik və Səs İşlənməsi
- Addım 3: LED Təkər
- Addım 4: Vizualizasiya
- Addım 5: Toxunma Düymələrinə Nəzarət
- Addım 6: Beat Detection və Servo "rəqs"
- Addım 7: 3D Şekiller
- Addım 8: Enerji təchizatı
- Addım 9: Bluetooth İdarəetmə
- Addım 10: Blynk əsaslı tətbiqə nəzarət edin
- Addım 11: Eskizlər və Kitabxanalar
- Addım 12: Gələcək Təkmilləşdirmələr
Video: Portativ Partiya İşıqları: 12 addım (şəkillərlə)
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:44
Tinkercad Layihələri »
Bir partiyaya işıq gətirə və daha əyləncəli edə bilərsinizmi?
Sual bu idi. Və cavab Bəli (əlbəttə).
Bu təlimat, musiqi dinləyən və Neopixel LED -lərin konsentrik halqalarından musiqi vizualizasiyası yaradan portativ bir cihaz hazırlamaqdır.
Cihazı "rəqs" etməyə, yəni musiqinin ritminə keçməyə cəhd göstərildi, ancaq beatin aşkarlanması səsləndiyindən daha mürəkkəb bir iş olduğunu sübut etdi (heç bir cümlə nəzərdə tutulmayıb), buna görə də "rəqs etmək" bir qədər yöndəmsizdir, amma yenə də var.
Cihaz Bluetooth-a malikdir və mətn əmrlərinə cavab verəcək. Partiya işıqlarını idarə etmək üçün bir tətbiq yazmağa vaxtım yox idi (ya Android, ya da iOS). İşin öhdəsindən gələ bilsəniz - mənə bildirin !!!
Bu təlimatı sevirsinizsə, zəhmət olmasa Make It Glow yarışmasında ona səs verin!
Təchizat
Partiya işıqları qurmaq üçün sizə lazım olacaq:
- Arduino üçün STM32F103RCBT6 Leaflabs Leaf Maple Mini USB ARM Cortex -M3 Modulu (buradakı link) - cihazın beyni. Bu nisbətən ucuz qurğular o qədər güclüdür ki, niyə bir Arduinoya geri dönəcəyiniz bəlli deyil.
- MSGEQ7 Bant Qrafik Ekvalayzer IC DIP-8 MSGEQ7 (link burada)
- HC-05 və ya HC-06 Bluetooth modulu (link burada)
- Adafruit MAX9814 mikrofonu (link burada)
- Standart bir servo motor (buradakı link) cihazınızın "rəqs etməsini" istəyirsiniz
- CJMCU 61 Bit WS2812 5050 RGB LED Sürücü İnkişaf etdirmə Kartı (link burada)
- TTP223 Toxunmalı Açar Modulu Kapasitiv Ayarlanabilir Self-Lock/No-Lock Switch Board (buradakı link)
-
Ultra Kompakt 5000-mah cüt USB Çıxışlar Super İncə Güc Bankı (link burada)
- Rezistorlar, kondansatörler, tellər, yapışqan, vintlər, prototip lövhələri və s.
Addım 1: Fikir
Fikir, musiqi mənbəyinin yaxınlığında yerləşdirilə bilən və rəngli musiqi vizualizasiyaları yaradan portativ bir cihaza sahib olmaqdır. Düymələr (toxunma) və Bluetooth vasitəsilə cihazın davranışını idarə edə bilməlisiniz.
Hal -hazırda Party Lights -da 7 görselleştirme tətbiq olunur (daha çox fikiriniz varsa mənə bildirin!):
- Konsentrik rəngli dairələr
- Malta xaçı
- Pulsasiya edən işıqlar
- Şömine (şəxsi sevdiyim)
- Qaçan işıqlar
- Yüngül ağaclar
- Yan seqmentlər
Varsayılan olaraq, cihaz vizualizasiyanı hər dəqiqə dövr edəcək. Bununla birlikdə, bir istifadəçi bir vizualizmə sadiq qalmağı və/və ya əl ilə dövr etməyi seçə bilər.
İstifadəçi müəyyən bir rəng birləşməsini bəyənərsə, rəng palitrasını döndərən vizual görüntülər də "dondurula bilər".
Və daha bir neçə nəzarət olaraq istifadəçi mikrofon həssaslığını dəyişə və servo motorun "rəqs" rejimini aktiv edə/söndürə bilər.
Addım 2: Şematik və Səs İşlənməsi
"Fayllar" alt qovluğunda Github paketinə dəhşətli bir sxematik fayl daxil edilmişdir.
Əsasən, MSEQ7 çipi, səs siqnalını 7 diapazona bölməklə səs emalını həyata keçirir: 63Hz, 160Hz, 400Hz, 1kHz, 2.5kHz, 6.25kHz və 16kHz
Mikrokontrolör, bu 7 bantdan istifadə edərək müxtəlif vizualizasiyalar yaradır, əsasən müvafiq bant amplitüdlərini LED işığının intensivliyi və rəng birləşmələrinə uyğunlaşdırır.
Səs mənbəyi 3 səviyyəli qazanc nəzarətinə malik bir mikrofondur. Səs mənbəyinin nə qədər uzaq/yüksək olduğuna bağlı olaraq düymələrdən birini istifadə edərək qazanc parametrləri arasında keçə bilərsiniz.
Mikro nəzarətçi, həmçinin 63Hz "bas" bandında "beat" aşkarlamasını həyata keçirməyə çalışır. Hələ də hizalanmanı aşkar etmək və saxlamaq üçün etibarlı bir yol üzərində işləyirəm.
"Toxunma" düymələrinin istifadəsi bir sınaq idi. Düşünürəm ki, olduqca yaxşı işləyirlər, lakin mətbuat rəyinin olmaması bir az qarışıqdır.
Addım 3: LED Təkər
Vizualizasiyanın əsası 61 LED təkərdir.
Unutmayın ki, hissə ayrı -ayrı halqalar şəklində toplanacaq. Mən daha çox elektrik xətləri üçün mis telləri (halqaları bir -birinə gözəl tutan) və nazik siqnal tellərini istifadə etdim.
LEDlər alt xarici LED -dən başlayaraq saat yönünde içəri doğru gedən 0 -dan 60 -a qədər nömrələnir. Mərkəzi LED 60 rəqəmidir.
Hər bir vizual, hər bir LED-in hədəf vizual seqmenti üçün müəyyən bir mövqedə yerləşdiyi iki ölçülü məlumat dizilərinə əsaslanır.
Məsələn, konsentrik dairələr üçün 5 seqment var:
- Xarici dairə, LEDlər 0-23, 24 LED uzunluğunda
- İkinci xarici dairə, LEDlər 24 - 39, 16 LED uzunluğunda
- Üçüncü dairə (mərkəzdə), LEDlər 40 - 51, 12 LED uzunluğunda
- İkinci daxili dairə, LEDlər 52 - 59, 8 LED uzunluğunda
- LED içərisində, LED 60, 1 LED uzun
Vizualizasiya, 7 səs kanalından 5 -ni xəritələyir və LED -ləri dairəvi bantdakı mövqeyinə görə qrupdakı səs səviyyəsinə mütənasib olaraq tədricən yandırır.
Digər görselleştirmələrdə fərqli məlumat quruluşları və formatları istifadə olunur, ancaq fikir həmişə kodlara görə deyil, məlumat dizilərinə əsaslanan vizualizasiyalara sahib olmaqdır. Bu yolla, vizualizasiyalar kodu dəyişmədən fərqli formalara (daha çox və ya daha az LED, daha çox EQ diapazonuna) uyğunlaşdırıla bilər, yalnız məlumat massivlərindəki dəyərlər.
Məsələn, vizual 1 üçün məlumat quruluşu eskizdə belə görünür:
// Vizualizasiya 1 və 3 - tam 5 dairə, 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}};
Addım 4: Vizualizasiya
İndiyə qədər 7 vizuallaşdırma və bir başlanğıc animasiyası var:
Başlanğıc animasiya
Cihaz açıldıqda, atəşfəşanlığın təqlidi göstərilir. Bunun LED və Servo test ardıcıllığı olması lazım idi, lakin sonradan bu testin cizgi versiyasına çevrildi
Konsentrik rəngli dairələr
İşıqlar, eq bandının amplitüdünə mütənasib olaraq konsentrik dairələrdə ekranın ətrafında gəzir. Təsadüfi olaraq saat əqrəbi və saat əqrəbi arasında keçid və 256 rəng çarxının üzərindəki rəngləri yavaş-yavaş çevirmək
Malta xaçı
Bir bant mərkəzi LED -dir. Başqa bir bant, LED -lərin şaquli və üfüqi xətləridir və hər biri bir EQ bandını təmsil edən qalan seqmentlərdir. Bütün seqmentlər kontrast olaraq qalmaq üçün 128 ofsetdə fırlanan rənglərdir.
Pulsasiya edən işıqlar
Hər bir dairə, bütün LED -ləri xüsusi bir ekv bandı üçün bir arada yandırır, eyni zamanda rəngləri bir az ofsetlə yavaş -yavaş fırlayır. EQ bantları tədricən bir dairədən digərinə keçir və xaricə doğru irəliləyir.
Şömine
Bantlar, aşağıdan yuxarıya doğru parlaq bir qırmızı ilə başlayan və şöminədə yanan bir atəşi simulyasiya edəndə sarı əlavə edən yarı dairələrdir. Bəzən parlaq ağ "qığılcım" təsadüfi olaraq yuxarıya doğru vurur. Rəng fırlanması yoxdur
Qaçan işıqlar
Hər konsentrik dairə ayrı bir EQ qrupudur. Aparıcı LEDlər mərkəzi LED -in altındakı şaquli xəttdə olanlardır. LED bant amplituduna mütənasib olaraq yandırıldıqda, intensivliyi yavaş -yavaş azaldan müvafiq dairənin ətrafında "qaçmağa" başlayır. Təsadüfi olaraq dəyişərək həm saat həm də saat yönünün əksinə fırlanma dəstəklənir.
Yüngül ağaclar
Segmentlər aşağıdan LED-ə qədər düz bir xəttdə, sonra isə xurma ağaclarını təqlid edən konsentrik yarı dairələrdə yanır. Rəng fırlanması.
Yan seqmentlər
Bu, yalnız 2 diaqonal seqmentin istifadə edildiyi əvvəlki Malta Xaçının bir versiyasıdır. Səs dalğalarının simvoluna bənzədiyi güman edilir.
Addım 5: Toxunma Düymələrinə Nəzarət
Toxunmaya həssas 4 düymə var:
- Vizualizasiyadan keçin və digərini seçənə qədər mövcud olanı davam etdirin (hər 30 saniyədə standart görselleştirme dövrü)
- "Dondur" / "dondur" cari rəng sxemi - müəyyən bir rəng birləşməsini bəyənsəniz, onu dondura bilərsiniz - rəng fırlanması deaktivdir və vizualizasiya yalnız bu rəng palitrası ilə davam edəcək.
- Mikrofon həssaslığını tənzimləyin
- "Rəqs rejimi" ni yandırın / söndürün
Rəqs rejimində cihaz hazırda çalınan musiqinin "ritmini" aşkar etməyə və ritmə uyğun olaraq başını çevirməyə çalışacaq. İndiyə qədər "rəqs" gözəl olmaqdan çox yöndəmsizdir, düzünü desəm.
Addım 6: Beat Detection və Servo "rəqs"
Cihaz, 63Hz diapazonunun ardıcıl zirvələri arasındakı məsafə olaraq, mövcud melodiyanın "ritmini" aşkar etməyə çalışır. Aşkar edildikdən sonra (və yalnız rəqs rejimi AÇIQ olduqda), cihaz ritminə görə təsadüfi olaraq sola və ya sağa dönmək üçün servo motorunu işə salacaq.
Bunu daha etibarlı etmək üçün hər hansı bir parlaq fikir xoş gəlir!
'Music_Test_LED' eskizi, 7 EQ qrupunu Arduino IDE -dən istifadə edərək plan qurmaq üçün uyğun bir şəkildə çıxarır.
Addım 7: 3D Şekiller
Bütün Party Lights montajı Autodesk TinkerCAD istifadə edərək sıfırdan hazırlanmışdır.
Orijinal dizayn burada yerləşir. Github.com saytındakı "fayllar/3D" qovluğunda STL modelləri var.
Bu dizayn cihazın necə yığılmış olduğunu göstərir.
Bütün komponentlər çap olundu və sonra birləşdirildi/yapışdırıldı.
"Günbəz" mikro nəzarətçiyə, Bluetooth lövhəsinə və mikrofona ev sahibliyi edir. Mikro nəzarətçi 40 mm x 60 mm lövhəyə yerləşdirilib və təyin olunmuş relslərlə dəstəklənir.
Servo günbəzin "ayağında", düymələr isə bazada yerləşir.
Batareya bölməsi, Xüsusilə Təchizat bölməsində göstərilən batareya növü üçün yazılmışdır. Fərqli bir batareya istifadə etməyi seçsəniz, bölmə buna uyğun olaraq yenidən dizayn edilməli olacaq.
Addım 8: Enerji təchizatı
Ultra Kompakt 5000-mah cüt USB Çıxışları Super İncə Güc Bankı, saatlarla işləmək üçün kifayət qədər güc təmin etdiyi görünür.
Batareya bölməsi cihazın qalan hissəsindən ayrılacaq şəkildə hazırlanmışdır və başqa bir batareya növü üçün nəzərdə tutulmuşla əvəz edilə bilər.
USB fişi yerləşdirildikdə və içəriyə batırıldıqda batareyanı bağlamaq üçün isti yapışdırıldı.
Addım 9: Bluetooth İdarəetmə
Cihazı simsiz idarə etmək üçün bir HC-05 modulu əlavə olunur.
Cihaz aktiv olduqda, telefonunuzu qoşa biləcəyiniz "LEDDANCE" adlı bir Bluetooth bağlantısı yaradır.
İdeal olaraq, PartyLights -ı idarə etməyə imkan verən bir tətbiq olmalıdır (rəng palitrası seçmək, düyməni basmağı simulyasiya etmək və s.). Halbuki hələ bir dənə də yazmamışam.
Party Lights üçün bir Android və ya iOS Tətbiqi yazmağa kömək etmək istəyirsinizsə, mənə bildirin!
Cihazı idarə etmək üçün hazırda Bluetooth terminal tətbiqindən istifadə edə və aşağıdakı əmrləri göndərə bilərsiniz:
- LEDDBUTT - harada '1', '2', '3' və ya '4' müvafiq düyməni basmağı simulyasiya edir. Məsələn: LEDDBUTT1
- LEDDCOLRc - burada c 0 -dan 255 -ə qədər olan rəqəmdir - rəng çarxında istədiyiniz rəngin mövqeyi. Cihaz göstərilən LED rənginə keçəcək.
-
LEDDSTAT - yalnız '0' və '1' lərdən ibarət 3 simvollu bir rəqəm qaytarır:
- birinci mövqe: '0' - rənglər dönmür, '1' - rənglər fırlanır
- ikinci mövqe: '0' - rəqs rejimi qapalı, '1' - rəqs rejimi açıqdır
- üçüncü mövqe: '0' - mikrofon normal qazancdadır, '1' - mikrofon yüksək qazancdadır
Addım 10: Blynk əsaslı tətbiqə nəzarət edin
Blynk (blynk.io) hardware-agnostik IoT platformasıdır. Ily Avtomatik Bitki Suvarma Sistemimdə Blynk -dən istifadə etdim və platformanın asanlığı və möhkəmliyi ilə heyran qaldım.
Blynk, Bluetooth vasitəsilə kənar cihazlara qoşulmağı dəstəkləyir - PartyLights üçün ehtiyacımız olan şey.
Əgər hələ yoxsa, zəhmət olmasa Blynk Tətbiqini yükləyin, bu addıma əlavə edilmiş ekran görüntülərindən istifadə edərək Blynk PartyLights Tətbiqini qeydiyyatdan keçirin və yenidən yaradın. Zəhmət olmasa virtual pin tapşırıqlarının ekran görüntüləri ilə eyni olduğundan əmin olun, əks halda tətbiqdəki düymələr nəzərdə tutulduğu kimi işləməyəcək.
"Blynk_settings.h" faylı şəxsi Blynk UID -ni ehtiva edir. Layihənizi yaratdığınız zaman istifadə etməyiniz üçün yenisi təyin ediləcək.
PartyLightsBlynk.ino eskizini yükləyin, Tətbiqi işə salın. Bluetooth cihazı ilə cütləşin və partiyadan zövq alın.
Addım 11: Eskizlər və Kitabxanalar
Əsas eskiz və dəstəkləyici sənədlər Github.com saytında burada yerləşir.
Party Lights eskizində aşağıdakı kitabxanalar istifadə edilmişdir:
- TaskScheduler - kooperativ çoxlu iş - burada (mənim tərəfimdən hazırlanmışdır)
- AverageFilter - şablonlu orta filtr - burada (mənim tərəfimdən hazırlanmışdır)
- Servo - Servo nəzarət - standart bir Arduino kitabxanasıdır
- WS2812B -NEOPixel nəzarət - STM32 paketinin bir hissəsi olaraq gəlir
Bu Wiki səhifəsi, Arduino IDE ilə STM32 lövhələrini necə istifadə edəcəyinizi izah edir.
Addım 12: Gələcək Təkmilləşdirmələr
Bu dizaynda bir neçə şeyi inkişaf etdirmək olar ki, bu layihəyə başlasanız düşünə bilərsiniz:
- Maple Mini lövhəsi yerinə ESP32 istifadə edin. ESP32 2 CPU, Bluetooth və WiFi yığınlarına malikdir və 60MHz, 120MHz və hətta 240MHz -də işləyə bilər.
- Kiçik dizayn - yaranan cihaz böyük işdir. Daha kompakt ola bilər (xüsusən rəqs ideyasını və əlaqəli servoyu buraxsanız)
- Beat aşkarlanması sonsuz dərəcədə təkmilləşdirilə bilər. Biz insanlara təbii olaraq gələn şey, kompüter üçün çətin bir iş kimi görünür
- Daha çox vizualizasiyalar hazırlana və tətbiq oluna bilər.
- Və əlbəttə ki, sərin bir UI ilə cihazı simsiz idarə etmək üçün bir tətbiq yazıla bilər.
Tövsiyə:
RGB LEDləri olan Partiya Bluetooth Dinamik: 7 addım
RGB LEDli Partiya Bluetooth Dinamik: Salam, bu mənim ilk təlimatımdır, sizə RGB LEDləri ilə bu Partiya Dinamikini necə hazırladığımı göstərəcəyəm. Bu layihə JBL Pulse -dan ilhamlanıb və bu təlimat verilə bilər, lakin çox şeyə sahib ola biləcəyi çox ucuz və asan bir layihədir
Dəyişdirici Oyuncaqlar: Luditek LED Partiya İşığı: 7 addım
Oyuncaqları Dəyişdirin: Luditek LED Partiya İşığı: Oyuncaq uyğunlaşması, məhdud motor qabiliyyətli və ya inkişaf qüsurlu uşaqların oyuncaqlar ilə müstəqil şəkildə əlaqə qurmasına imkan vermək üçün yeni yollar və xüsusi həllər açır. Əksər hallarda, uyğunlaşdırılmış oyuncaqlara ehtiyacı olan uşaqlar
TiNM 2020 ZKJ - Partiya Şapkası: 10 addım
TiNM 2020 ZKJ - Partiya Şapkası: Bu əyləncəli "partiya şapkası" nı necə hazırladığımı sənədləşdirmək üçün hazırladığım çox əsas təlimatlar toplusudur. Circuit Playground Express istifadə edin
İnteraktiv həyət işıqları, keçid işıqları: 3 addım
İnteraktiv həyət işıqları, keçid işıqları: Arxa həyətim üçün bir növ interaktiv həyət işıqları qurmaq istəyirdim. Fikir, kimsə bir tərəfə getdiyi zaman, getdiyin istiqamətdə bir animasiya quracaqdı. Dollar General 1.00 dollarlıq günəş işığı ilə başladım
DIY Milad İşıqları Musiqiyə Quruldu - Xoreoqrafik Ev İşıqları: 15 Addım (Şəkillərlə)
DIY Milad İşıqları Musiqiyə Quruldu - Xoreoqrafiya Edilmiş Ev İşıqları: Musiqiyə Qurulan DIY Milad İşıqları - Xoreoqrafiya Edilmiş Ev İşıqları Bu yeni başlayan DIY deyil. Elektronika, dövrə, BASIC proqramlaşdırma və elektrik təhlükəsizliyi haqqında ümumi müdrikliklərə dair möhkəm bir anlayışa ehtiyacınız olacaq. Bu DIY təcrübəli bir adam üçündür, buna görə də