Mündəricat:

Portativ Partiya İşıqları: 12 addım (şəkillərlə)
Portativ Partiya İşıqları: 12 addım (şəkillərlə)

Video: Portativ Partiya İşıqları: 12 addım (şəkillərlə)

Video: Portativ Partiya İşıqları: 12 addım (şəkillərlə)
Video: Azərbaycanda kişi arvadını başqası ilə tutdu: "Neçə saatdır girmisən evə, 5000 verirəm, get ..." 2024, Noyabr
Anonim
Image
Image
Fikir
Fikir

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
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!):

  1. Konsentrik rəngli dairələr
  2. Malta xaçı
  3. Pulsasiya edən işıqlar
  4. Şömine (şəxsi sevdiyim)
  5. Qaçan işıqlar
  6. Yüngül ağaclar
  7. 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

Sxematik və Səs Qenerasiyası
Sxematik və Səs Qenerasiyası
Sxematik və Səs Emalı
Sxematik və Səs Emalı
Sxematik və Səs Emalı
Sxematik və Səs Emalı
Sxematik və Səs Emalı
Sxematik və Səs Emalı

"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

LED Təkər
LED Təkər
LED Təkər
LED Təkər
LED Təkər
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

Vizualizasiyalar
Vizualizasiyalar
Vizualizasiyalar
Vizualizasiyalar
Vizualizasiyalar
Vizualizasiyalar
Vizualizasiyalar
Vizualizasiyalar

İ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

Touch Button Controls
Touch Button Controls

Toxunmaya həssas 4 düymə var:

  1. 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ü)
  2. "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.
  3. Mikrofon həssaslığını tənzimləyin
  4. "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"

Beat Detection və Servo
Beat Detection və Servo

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

3D Şekiller
3D Şekiller
3D Şekiller
3D Şekiller
3D Şekiller
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ı

Enerji təchizatı
Enerji təchizatı
Enerji təchizatı
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ə

Bluetooth Nəzarəti
Bluetooth Nəzarəti

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 -ə əsaslanan nəzarət proqramı
Blynk -ə əsaslanan nəzarət proqramı
Blynk -ə əsaslanan nəzarət proqramı
Blynk -ə əsaslanan nəzarət proqramı
Blynk -ə əsaslanan nəzarət proqramı
Blynk -ə əsaslanan nəzarət proqramı
Blynk -ə əsaslanan nəzarət proqramı
Blynk -ə əsaslanan nəzarət proqramı

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

Eskizlər və Kitabxanalar
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

Gələcək Təkmilləşdirmələr
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ə: