Mundarija:

Portativ partiya chiroqlari: 12 qadam (rasmlar bilan)
Portativ partiya chiroqlari: 12 qadam (rasmlar bilan)

Video: Portativ partiya chiroqlari: 12 qadam (rasmlar bilan)

Video: Portativ partiya chiroqlari: 12 qadam (rasmlar bilan)
Video: Faqat dahogina buni 15 soniyada yechishi mumkin! O'zingizni sinab ko'ring!!! 2024, Noyabr
Anonim
Image
Image
Fikr
Fikr

Tinkercad loyihalari »

Siz ziyofatga yorug'lik olib, uni yanada qiziqarli qila olasizmi?

Bu savol shu edi. Va javob ha (albatta).

Bu ko'rsatma musiqani tinglaydigan va Neopixel LEDlarning konsentrik halqalaridan musiqa vizualizatsiyasini yaratadigan ko'chma qurilma yaratish haqida.

Qurilmani "raqs" qilishga, ya'ni musiqa ritmiga o'tishga urinishdi, lekin ritmni aniqlash, aytilganidan ko'ra murakkabroq vazifa ekanini isbotladi (hech qanday ma'no yo'q), shuning uchun "raqs" biroz noqulay, lekin hali ham bor.

Qurilma Bluetooth-ni yoqadi va matnli buyruqlarga javob beradi. Partiya chiroqlarini boshqarish uchun ilova yozishga vaqtim yo'q edi (Android yoki iOS). Agar siz vazifani bajara olsangiz - menga xabar bering !!!

Agar sizga bu ko'rsatma yoqqan bo'lsa, iltimos, "Make It Glow" tanlovida unga ovoz bering!

Ta'minotlar

Partiya chiroqlarini yaratish uchun sizga kerak bo'ladi:

  • STM32F103RCBT6 Leaflabs Leaflabs Leaf Maple Mini USB ARM Cortex -M3 Arduino uchun moduli (bu erga havola) - qurilmaning miyasi. Bu nisbatan arzon qurilmalar shunchalik kuchliki, nima uchun Arduino -ga qaytganingiz noma'lum.
  • MSGEQ7 tarmoqli grafik ekvalayzer IC DIP-8 MSGEQ7 (bu erga havola)
  • HC-05 yoki HC-06 Bluetooth moduli (havola shu erda)
  • Adafruit MAX9814 mikrofoni (havola shu erda)
  • Standart servo dvigatel (bu erga havola), siz qurilmangiz "raqsga" tushishini xohlaysizmi?
  • CJMCU 61 bitli WS2812 5050 RGB LED drayverlarni ishlab chiqish kartasi (havola shu erda)
  • TTP223 sensorli tugmachali modul, o'z-o'zidan qulflanadigan qulflash moslamasi (bu erda havola)
  • Ultra Compact 5000 mah mahalli ikkita USB ulagichi Super Slim Power Bank (bu erga havola)

  • Rezistorlar, kondansatörler, simlar, elim, vintlar, prototiplash taxtalari va boshqalar.

1 -qadam: Fikr

Fikr
Fikr

Musiqa manbaiga yaqin joylashtirilishi mumkin bo'lgan portativ qurilmaga ega bo'lish va bu rang -barang musiqa vizualizatsiyasini yaratishdir. Siz qurilmaning harakatlarini tugmalar (sensorli) va Bluetooth orqali boshqarishingiz kerak.

Hozirgi vaqtda Party Lights -da 7 ta vizualizatsiya mavjud (agar sizda ko'proq g'oyalar bo'lsa, menga xabar bering!):

  1. Rangli kontsentrik doiralar
  2. Malta xoch
  3. Pulsatsiyalanuvchi chiroqlar
  4. Kamin (mening shaxsiy sevimlilarim)
  5. Yugurish chiroqlari
  6. Yengil daraxtlar
  7. Yon segmentlar

Odatiy bo'lib, qurilma har daqiqada vizualizatsiya orqali aylanadi. Biroq, foydalanuvchi bitta vizualizatsiyaga sodiq qolishi va/yoki qo'lda aylanishi mumkin.

Ranglar palitrasini aylantiruvchi vizualizatsiya, agar foydalanuvchi ma'lum bir rang kombinatsiyasini yoqtirsa, "muzlatib qo'yilishi" mumkin.

Yana bir nechta boshqaruv elementlari sifatida foydalanuvchi mikrofon sezgirligini o'zgartirishi va servo dvigatelning "raqs" rejimini yoqishi/o'chirishi mumkin.

2 -qadam: sxematik va tovushli ishlov berish

Sxematik va tovushli ishlov berish
Sxematik va tovushli ishlov berish
Sxematik va tovushli ishlov berish
Sxematik va tovushli ishlov berish
Sxematik va tovushli ishlov berish
Sxematik va tovushli ishlov berish
Sxematik va tovushli ishlov berish
Sxematik va tovushli ishlov berish

Qo'rqinchli sxematik fayl Github paketiga "fayllar" pastki jildiga kiritilgan.

Asosan, MSEQ7 mikrosxemasi ovozli signalni 7 diapazonga ajratuvchi ovozni qayta ishlash bilan shug'ullanadi: 63Hz, 160Hz, 400Hz, 1kHz, 2.5kHz, 6.25kHz va 16kHz

Mikrokontroller o'sha 7 diapazondan foydalanib, turli vizualizatsiyalarni yaratadi, asosan tegishli diapazon amplitudalarini LED yorug'lik intensivligi va rang kombinatsiyalariga joylashtiradi.

Ovoz manbai - bu 3 darajali daromadni boshqaruvchi mikrofon. Ovoz manbai qanchalik baland/balandligiga qarab tugmachalardan birini ishlatib, siz daromad parametrlarini o'zgartirishingiz mumkin.

Shuningdek, mikrokontroller 63 gigagertsli "bass" diapazonida "urish" aniqlashni amalga oshirishga harakat qiladi. Men haligacha zarba moslamasini aniqlash va saqlashning ishonchli usuli ustida ishlayapman.

"Sensorli" tugmalardan foydalanish tajriba edi. O'ylaymanki, ular juda yaxshi ishlaydi, ammo matbuot bilan aloqaning yo'qligi biroz chalkashtirib yuboradi.

3 -qadam: LED g'ildiragi

LED g'ildiragi
LED g'ildiragi
LED g'ildiragi
LED g'ildiragi
LED g'ildiragi
LED g'ildiragi

Vizualizatsiya yadrosi - 61 LEDli g'ildirak.

E'tibor bering, bu qism alohida halqalar bo'lib, ularni birlashtirish kerak bo'ladi. Menimcha, elektr uzatish liniyalari uchun mis simlar (ular halqalarni bir -biriga mahkam ushlab turadi) va ingichka signal simlari.

LEDlar pastki tashqi LEDdan boshlab soat yo'nalishi bo'yicha ichkariga qarab 0 dan 60 gacha raqamlangan. Markaziy LED 60 raqami.

Har bir vizualizatsiya har bir LEDni maqsadli vizualizatsiya segmenti uchun ma'lum bir pozitsiyaga joylashtiradigan ikki o'lchovli ma'lumotlar massiviga tayanadi.

Masalan, konsentrik doiralar uchun 5 segment mavjud:

  • Tashqi aylana, LEDlar 0-23, 24 LED uzunlik
  • Ikkinchi tashqi doira, LEDlar 24 - 39, 16 LED uzunligi
  • Uchinchi doira (markazda), LEDlar uzunligi 40 - 51, 12 LED
  • Ikkinchi ichki doira, uzunligi 52-59, 8 LED
  • LED ichida, LED 60, uzunligi 1 LED

Vizualizatsiya 7 ta audio kanaldan 5 tasini xaritaga joylashtiradi va LEDlarni dumaloq diapazonidagi joylashuviga qarab, guruhdagi ovoz darajasiga mutanosib ravishda yonadi.

Boshqa vizualizatsiya turli xil ma'lumotlar tuzilmalari va formatlarini ishlatadi, lekin har doim ham vizualizatsiyani kodlar bilan emas, balki ma'lumotlar massivlari boshqaradi. Shunday qilib, vizualizatsiyani kodni o'zgartirmasdan, turli shakllarga (ko'p yoki kamroq LED, ko'proq EQ diapazonlari) sozlash mumkin, faqat ma'lumotlar massividagi qiymatlar.

Masalan, vizualizatsiya 1 uchun ma'lumotlar strukturasi eskizda shunday ko'rinadi:

// Vizualizatsiya 1 va 3 - to'liq 5 ta doiralar 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 -qadam: Vizualizatsiya

Vizualizatsiya
Vizualizatsiya
Vizualizatsiya
Vizualizatsiya
Vizualizatsiya
Vizualizatsiya
Vizualizatsiya
Vizualizatsiya

Hozircha 7 ta vizualizatsiya va boshlang'ich animatsiya mavjud:

Boshlang'ich animatsiya

Qurilma yoqilganda, fişekka taqlid ko'rsatiladi. Bu LED va Servo sinovlari ketma -ketligi bo'lishi kerak edi, lekin keyinchalik bunday sinovning jonlantirilgan versiyasiga aylandi

Rangli kontsentrik doiralar

Chiroqlar displey atrofida mos ekv diapazonining amplitudasiga mutanosib konsentrik doiralarda aylanadi. Tasodifiy soat va soat sohasi farqli o'laroq, 256 rangli g'ildirak ustidagi ranglarni sekin aylantirish

Malta xoch

Bitta tarmoqli - bu markaziy LED. Yana bir diapazon - LEDlarning vertikal va gorizontal chiziqlari, va qolgan segmentlar har birining EQ diapazonini ifodalaydi. Barcha segmentlar kontrast bo'lib qolish uchun 128 ofsetda aylanadigan ranglardir.

Pulsatsiyalanuvchi chiroqlar

Har bir doira barcha LEDlarni bir ovozdan yondiradi, bunda maxsus ekv -band ishlatiladi, shu bilan birga ranglar asta -sekin siljiydi. EQ guruhlari asta -sekin bir doiradan ikkinchisiga siljiydi, bu esa tashqi tomonga siljishni beradi.

Kamin

Bantlar pastdan yuqoriga qadar och qizil rangdan boshlangan va kaminda yonayotgan olovni simulyatsiya qilishda sariq qo'shilgan yarim doira. Vaqti -vaqti bilan yorqin oq "uchqun" tasodifan yuqoriga ko'tariladi. Rangning aylanishi yo'q

Yugurish chiroqlari

Har bir konsentrik doiralar alohida EQ diapazonidir. Etakchi LEDlar markaziy LED ostidagi vertikal chiziqda joylashgan. LED tarmoqli amplitudasiga mutanosib ravishda yonib turganda, u aylana bo'ylab "yugurishni" boshlaydi va asta -sekin kamayadi. Har ikkala soat yo'nalishi bo'yicha va teskari yo'nalishda aylanishlar qo'llab-quvvatlanadi, ular tasodifiy o'zgaradi.

Yengil daraxtlar

Segmentlar pastdan svetodioddan yuqoriga to'g'ri chiziqda, so'ngra yonma-yon kontsentrik yarim doira shaklida, palma daraxtlariga taqlid qilinadi. Rang aylanishi.

Yon segmentlar

Bu oldingi Malta xochining faqat 2 diagonal segmenti ishlatilgan versiyasidir. Ovoz to'lqinlari belgisiga o'xshash bo'lishi kerak.

5 -qadam: Tugmalar boshqaruvini bosing

Sensorli tugmachalarni boshqarish
Sensorli tugmachalarni boshqarish

Sensorli 4 ta tugma mavjud:

  1. Vizualizatsiyani aylantiring va boshqasini tanlaguningizcha joriyni saqlang (odatiy vizualizatsiya har 30 soniyada aylanadi)
  2. "Muzlatish" / "muzdan tushirish") joriy rang sxemasi - agar sizga ma'lum bir rang kombinatsiyasi yoqsa, uni muzlatib qo'yishingiz mumkin - rang aylanishi o'chirilgan va vizualizatsiya faqat shu ranglar palitrasida davom etadi.
  3. Mikrofon sezgirligini sozlash
  4. "Raqs rejimi" ni yoqing / o'chiring

Raqs rejimida qurilma hozirda yangrayotgan musiqaning "zarbasini" aniqlashga va ritmga ko'ra boshini burishga harakat qiladi. Hozircha "raqs" go'zaldan ko'ra ancha noqulay, rostini aytsam.

6 -qadam: Beat Detection va Servo "raqs"

Beat Detection va Servo
Beat Detection va Servo

Qurilma doimiy ravishda 63 Gts diapazonining ketma -ket cho'qqilari orasidagi masofa sifatida hozirgi ohangning "zarbasini" aniqlashga harakat qilmoqda. Aniqlangandan so'ng (va faqat raqs rejimi yoqilgan bo'lsa), qurilma servo dvigatelini ishga tushiradi, bu zarbaga ko'ra tasodifiy chapga yoki o'ngga buriladi.

Buni yanada ishonchli qilish bo'yicha har qanday yorqin fikrlar qabul qilinadi!

"Music_Test_LED" eskizi Arduino IDE yordamida chizish uchun mos keladigan tarzda 7 ta EQ tasmasini chiqaradi.

7 -qadam: 3D shakllari

3D shakllari
3D shakllari
3D shakllari
3D shakllari
3D shakllari
3D shakllari

Party Lights -ning butun yig'ilishi Autodesk TinkerCAD yordamida noldan yaratilgan.

Asl dizayn bu erda joylashgan. Github.com saytidagi "fayllar/3D" jildida STL modellari mavjud.

Ushbu dizayn qurilmaning qanday yig'ilganligini ko'rsatadi.

Barcha komponentlar chop etildi, so'ngra yig'ildi/yopishtirildi.

"Gumbaz" da mikrokontroller, Bluetooth platasi va mikrofon joylashgan. Mikrokontroller 40 mm x 60 mm o'lchamdagi taxtaga joylashtirilgan va belgilangan relslar bilan quvvatlanadi.

Servo gumbazning "oyog'ida", tugmalar esa taglikda joylashgan.

Batareya bo'linmasi "Ta'minot" bo'limida ko'rsatilgan batareya turi uchun maxsus bosilgan. Agar siz boshqa batareyadan foydalanishni tanlasangiz, bo'linma shunga mos ravishda qayta loyihalashga to'g'ri keladi.

8 -qadam: Elektr ta'minoti

Quvvatlantirish manbai
Quvvatlantirish manbai
Quvvatlantirish manbai
Quvvatlantirish manbai

Ultra-ixcham 5000 mah mahalli ikkita USB-chiqadigan Super Slim Power Bank bir necha soat ishlash uchun etarli quvvat beradi.

Batareya bo'linmasi shunday qurilganki, u qurilmaning qolgan qismidan ajralib turadi va uni boshqa turdagi batareyalarga mo'ljallangan bilan almashtirish mumkin.

Batareyani ichkariga ulashda USB vilkasi joylashtirilgan va issiq yopishtirilgan.

9 -qadam: Bluetooth nazorati

Bluetooth nazorati
Bluetooth nazorati

Qurilmani simsiz boshqarish usulini ta'minlash uchun HC-05 moduli qo'shilgan.

Yoqilganda, qurilma "LEDDANCE" deb nomlangan Bluetooth ulanishini yaratadi, siz uni telefoningiz bilan ulashingiz mumkin.

Ideal holda, PartyLights -ni boshqarishga imkon beradigan ilova bo'lishi kerak (ranglar palitrasini tanlash, tugmachalarni bosishni simulyatsiya qilish va hk). Biroq, men hali hech narsa yozmaganman.

Agar siz partiya chiroqlari uchun Android yoki iOS ilovasini yozishga yordam berishni xohlasangiz, menga xabar bering!

Qurilmani boshqarish uchun siz hozirda Bluetooth terminal ilovasidan foydalanishingiz va quyidagi buyruqlarni yuborishingiz mumkin:

  • LEDDBUTT - bu erda '1', '2', '3' yoki '4' tegishli tugmani bosishni simulyatsiya qiladi. Masalan: LEDDBUTT1
  • LEDDCOLRc - bu erda c - 0 dan 255 gacha bo'lgan raqam - rangli g'ildirakdagi kerakli rangning o'rni. Qurilma belgilangan LED rangiga o'tadi.
  • LEDDSTAT - faqat "0" va "1" dan iborat 3 ta belgi raqamini qaytaradi:

    • birinchi pozitsiya: '0' - ranglar aylanmaydi, '1' - ranglar aylanadi
    • ikkinchi pozitsiya: '0' - raqs rejimi o'chirilgan, '1' - raqs rejimi yoqilgan
    • uchinchi pozitsiya: "0" - mikrofon normal daromad, "1" - mikrofon yuqori daromad

10 -qadam: Blynk -ga asoslangan dasturni boshqarish

Blynk asosida boshqariladigan ilova
Blynk asosida boshqariladigan ilova
Blynk asosida boshqariladigan ilova
Blynk asosida boshqariladigan ilova
Blynk asosida boshqariladigan ilova
Blynk asosida boshqariladigan ilova
Blynk asosida boshqariladigan ilova
Blynk asosida boshqariladigan ilova

Blynk (blynk.io)-bu apparat-agnostik IoT platformasi. Men Blynk -ni IoT avtomatik o'simliklarni sug'orish tizimida ko'rsatma sifatida ishlatardim va platformaning qulayligi va mustahkamligi meni hayratda qoldirdi.

Blynk Bluetooth orqali zamonaviy qurilmalarga ulanishni qo'llab -quvvatlaydi - bu bizga PartyLights uchun kerak bo'lgan narsa.

Agar sizda hali yo'q bo'lsa, iltimos, Blynk ilovasini yuklab oling, ro'yxatdan o'ting va Blynk PartyLights ilovasini ushbu bosqichga biriktirilgan ekran tasvirlari yordamida qayta yarating. Iltimos, virtual pinni belgilash ekran tasvirlari bilan bir xil ekanligiga ishonch hosil qiling, aks holda ilovadagi tugmalar mo'ljallangan tarzda ishlamaydi.

"Blynk_settings.h" faylida mening shaxsiy Blynk UID mavjud. Loyihangizni yaratganingizda, unga siz uchun yangisi tayinlanadi.

PartyLightsBlynk.ino eskizini yuklang, ilovani yoqing. Bluetooth qurilmasi bilan ulang va bayramdan zavqlaning.

11 -qadam: eskizlar va kutubxonalar

Eskizlar va kutubxonalar
Eskizlar va kutubxonalar

Asosiy eskiz va yordamchi fayllar Github.com saytida joylashgan.

Party Lights eskizida quyidagi kutubxonalar ishlatilgan:

  • TaskScheduler - ko'p vazifali kooperativ - bu erda (men ishlab chiqqanman)
  • AverageFilter - shablonli o'rtacha filtr - bu erda (men ishlab chiqqan)
  • Servo - Servo boshqaruvi - bu standart Arduino kutubxonasi
  • WS2812B -NEOPixel nazorati - STM32 paketining bir qismi sifatida keladi

Bu Wiki sahifasida STM32 platalarini Arduino IDE bilan qanday ishlatish tushuntiriladi.

12 -qadam: kelajakdagi yaxshilanishlar

Kelajakdagi yaxshilanishlar
Kelajakdagi yaxshilanishlar

Agar siz ushbu loyihani boshlasangiz, bu dizaynda bir nechta narsalarni yaxshilashingiz mumkin:

  • Maple Mini taxtasi o'rniga ESP32 dan foydalaning. ESP32 -da 2 ta CPU, Bluetooth va Wi -Fi to'plamlari mavjud va ular 60 MGts, 120 MGts va hatto 240 MGts da ishlay oladi.
  • Kichik dizayn - natijada paydo bo'lgan qurilma juda katta. Bu ixchamroq bo'lishi mumkin (ayniqsa, agar siz raqs g'oyasini va unga tegishli servolarni tashlasangiz)
  • Beat aniqlashni cheksiz yaxshilash mumkin. Biz odamlar uchun tabiiy ravishda keladigan narsa, kompyuter uchun qiyin vazifa bo'lib tuyuladi
  • Ko'p vizualizatsiyalarni ishlab chiqish va amalga oshirish mumkin.
  • Va, albatta, ajoyib UI yordamida qurilmani simsiz boshqarish uchun ilova yozilishi mumkin.

Tavsiya: