Tartalomjegyzék:

Hordozható partyfények: 12 lépés (képekkel)
Hordozható partyfények: 12 lépés (képekkel)

Videó: Hordozható partyfények: 12 lépés (képekkel)

Videó: Hordozható partyfények: 12 lépés (képekkel)
Videó: Part 4 - Babbitt Audiobook by Sinclair Lewis (Chs 16-22) 2024, November
Anonim
Image
Image
Az ötlet
Az ötlet

Tinkercad projektek »

Tudsz fényt hozni egy buliba, és szórakoztatóbbá tenni?

Ez volt a kérdés. És a válasz: IGEN (természetesen).

Ez az útmutató egy hordozható eszköz készítéséről szól, amely zenét hallgat és zenei vizualizációt hoz létre a Neopixel LED -ek koncentrikus gyűrűiből.

Kísérletet tettek arra, hogy az eszközt "táncolják", azaz mozogjanak a zene ütemére, de az ütésfelismerés bonyolultabb feladatnak bizonyult, mint amilyennek hangzik (szójáték nem szándékolt), így a "tánc" kissé kínos, de még mindig ott van.

A készülék Bluetooth-kompatibilis, és válaszol a szöveges parancsokra. Nem volt időm írni egy alkalmazást a Party Lights vezérléséhez (Android vagy iOS). Ha hozzáért a feladathoz - kérem jelezze !!!

Ha tetszik ez az oktatható, kérjük, szavazzon rá a Make It Glow versenyen!

Kellékek

A Party Lights építéséhez szüksége lesz:

  • STM32F103RCBT6 Leaflabs Leaf Maple Mini USB ARM Cortex -M3 modul Arduino számára (link itt) - a készülék agya. Ezek a viszonylag olcsó eszközök olyan erősek, hogy nem világos, miért menne vissza egy Arduino -hoz.
  • MSGEQ7 sávú grafikus ekvalizer IC DIP-8 MSGEQ7 (link itt)
  • HC-05 vagy HC-06 Bluetooth modul (link itt)
  • Adafruit MAX9814 mikrofon (link itt)
  • Egy szabványos szervomotor (link itt) azt szeretné, hogy a készülék "táncoljon"
  • CJMCU 61 bites WS2812 5050 RGB LED illesztőprogram -fejlesztő tábla (link itt)
  • TTP223 érintőgombos modul kapacitív beállítható önzáró/zárolás nélküli kapcsolópanel (link itt)
  • Ultra kompakt 5000 mAh-s kettős USB-kimenet Szuper vékony tápegység (link itt)

  • Ellenállások, kondenzátorok, vezetékek, ragasztó, csavarok, prototípus -táblák, stb.

1. lépés: Az ötlet

Az ötlet
Az ötlet

Az ötlet az, hogy legyen egy hordozható eszköz, amelyet egy zenei forrás közelébe lehet helyezni, és amely színes zenei vizualizációkat hoz létre. Képesnek kell lennie az eszköz viselkedésének vezérlésére gombokkal (érintés) és Bluetooth -on keresztül.

Jelenleg a Party Lights 7 vizualizációt valósított meg (ha több ötlete van, tudassa velem!):

  1. Koncentrikus színes körök
  2. Máltai kereszt
  3. Pulzáló fények
  4. Kandalló (személyes kedvencem)
  5. Futófények
  6. Világos fák
  7. Oldalsó szegmensek

Alapértelmezés szerint az eszköz percenként körbejárja a vizualizációkat. A felhasználó azonban választhat, hogy ragaszkodik -e egy vizualizációhoz, és/vagy manuálisan végigböngészi azokat.

A színpalettát forgató vizualizációk is „lefagyhatnak”, ha a felhasználónak tetszik egy adott színkombináció.

És néhány további vezérlőként a felhasználó megváltoztathatja a mikrofon érzékenységét, és engedélyezheti/letilthatja a szervomotoros "tánc" módot.

2. lépés: Vázlatos és hangfeldolgozás

Vázlatos és hangfeldolgozás
Vázlatos és hangfeldolgozás
Vázlatos és hangfeldolgozás
Vázlatos és hangfeldolgozás
Vázlatos és hangfeldolgozás
Vázlatos és hangfeldolgozás
Vázlatos és hangfeldolgozás
Vázlatos és hangfeldolgozás

Egy frizuráló sematikus fájl a csomagban található a Githubon a "fájlok" almappában.

Alapvetően az MSEQ7 chip végzi a hangfeldolgozást, és felosztja az audiojelet 7 sávra: 63 Hz, 160 Hz, 400 Hz, 1 kHz, 2,5 kHz, 6,25 kHz és 16 kHz

A mikrokontroller ezt a 7 sávot használja különféle vizualizációk készítésére, alapvetően a megfelelő sáv amplitúdóit a LED fényintenzitására és színkombinációira leképezve.

A hangforrás egy mikrofon, 3 fokozatú erősítés szabályozással. Az erősítés beállításai között a gombok egyikével léphet, attól függően, hogy milyen messze/hangos a hangforrás.

A mikrokontroller megkísérli "ütés" érzékelését is végrehajtani a 63 Hz -es "basszus" sávon. Továbbra is azon dolgozom, hogy megbízható módon észleljem és tartsam a ütemek igazítását.

Az "érintőgombok" használata kísérlet volt. Szerintem elég jól működnek, azonban a sajtóvisszajelzések hiánya némileg zavaró.

3. lépés: LED kerék

LED kerék
LED kerék
LED kerék
LED kerék
LED kerék
LED kerék

A megjelenítés magja egy 61 LED -es kerék.

Kérjük, vegye figyelembe, hogy az alkatrészt gyűrűként szállítják, amelyeket össze kell szerelni. Én inkább rézhuzalokat használtam az elektromos vezetékekhez (amelyek szintén szépen összefogják a gyűrűket), és vékony jelvezetékeket.

A LED -ek 0 -tól 60 -ig vannak számozva, az alsó külső LED -től kezdve, és az óramutató járásával megegyező irányban befelé haladva. A középső LED 60.

Minden vizualizáció kétdimenziós adattömbökön alapul, amelyek minden LED-et a cél-vizualizációs szegmens meghatározott pozíciójába képeznek le.

Például koncentrikus körök esetén 5 szegmens létezik:

  • Külső kör, LED -ek 0 - 23, 24 LED hosszú
  • Második külső kör, LED -ek 24 - 39, 16 LED hosszúak
  • Harmadik kör (középen), LED -ek 40 - 51, 12 LED hosszú
  • Második belső kör, LED -ek 52 - 59, 8 LED hosszúak
  • Belső LED, LED 60, 1 LED hosszú

A vizualizáció a 7 audiocsatornából 5 -öt feltérképez, és fokozatosan világít a LED -eknek a kör alakú sávban elfoglalt helyzetüknek megfelelően, arányosan a sáv hangszintjével.

Más vizualizációk különböző adatstruktúrákat és formátumokat használnak, de az ötlet mindig az, hogy a vizualizációkat az adattömbök vezéreljék, nem annyira a kód. Ily módon a vizualizációk különböző formákhoz igazíthatók (több vagy kevesebb LED, több EQ sáv) a kód megváltoztatása nélkül, csak az adattömbök értékei.

Például a vizualizáció adatstruktúrája így néz ki a vázlatban:

// 1. és 3. vizualizáció - teljes 5 körkörös bájt 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}};

4. lépés: Vizualizációk

Vizualizációk
Vizualizációk
Vizualizációk
Vizualizációk
Vizualizációk
Vizualizációk
Vizualizációk
Vizualizációk

Eddig 7 vizualizáció és egy induló animáció létezik:

Indító animáció

A készülék bekapcsolásakor megjelenik egy tűzijáték utánzat. Ez egy LED és Servo teszt szekvencia volt, de később az ilyen teszt animált változatává fejlődött

Koncentrikus színes körök

A lámpák koncentrikus körökben mennek körbe a kijelzőn, az adott egyenérték sáv amplitúdójával arányosan. Véletlenszerű váltás az óramutató járásával ellentétes irányba és az óramutató járásával ellentétes irányba, és lassan forgatva a színeket a 256 színkörön

Máltai kereszt

Az egyik sáv a középső LED. Egy másik sáv a LED -ek függőleges és vízszintes vonalai, a többi szegmens pedig egy -egy EQ sávot képvisel. Minden szegmens forgó színű, 128 eltolásban, hogy kontraszt maradjon.

Pulzáló fények

Minden kör egyidejűleg világít az összes LED -en egy külön eq sávhoz, miközben lassan forognak a színek, enyhe eltolódással. Az EQ sávok fokozatosan eltolódnak az egyik körről a másikra, és kifelé haladnak.

Kandalló

A sávok félkörök, amelyek alulról felfelé világítanak, kezdve élénkpiros színnel, és sárgával a felfelé menet, a kandallóban égő tüzet szimulálva. Időnként fényes fehér "szikra" véletlenszerűen lő fel. Nincs színforgatás

Futófények

Minden koncentrikus kör egy külön EQ sáv. A vezető LED -ek a középső LED alatti függőleges vonalon találhatók. Amint a LED a sáv amplitúdójával arányosan világít, elkezd "futni" a megfelelő kör körül, lassan csökken az intenzitás. Mind az óramutató járásával ellentétes, mind az óramutató járásával ellentétes irányú elforgatás támogatott, véletlenszerű váltás.

Világos fák

A szegmensek egyenes vonalban világítanak az alsó LED-től felfelé, majd oldalra koncentrikus félkörökben, pálmafákat imitálva. Színforgatás.

Oldalsó szegmensek

Ez a korábbi Máltai Kereszt változata, mindössze 2 átlós szegmenst használva. Állítólag hasonlít a hanghullámok ikonjára.

5. lépés: Érintőgombok

Érintőgombos vezérlők
Érintőgombos vezérlők

4 érintésérzékeny gomb található:

  1. Váltogassa végig a vizualizációkat, és tartsa az aktuálisat addig, amíg egy másikat ki nem választ (alapértelmezés szerint a vizualizációs ciklus 30 másodpercenként)
  2. "Fagyasztás" / "feloldás" jelenlegi színséma - ha tetszik egy adott színkombináció, akkor le is fagyaszthatja - a színforgatás le van tiltva, és a megjelenítés ezzel a színpalettával folytatódik
  3. Állítsa be a mikrofon érzékenységét
  4. Kapcsolja be / ki a "tánc üzemmódot"

Táncos módban a készülék megpróbálja érzékelni az éppen játszott zene "ütését", és az ütemnek megfelelően elfordítani a fejét. Eddig a "tánc" inkább kínos, mint szép, hogy őszinte legyek.

6. lépés: Beat Detection és Servo "tánc"

Beat Detection és Servo
Beat Detection és Servo

A készülék folyamatosan próbálja érzékelni az aktuális dallam "ütését", mint a 63 Hz -es sáv egymást követő csúcsai közötti távolságot. Az észlelést követően (és csak akkor, ha a tánc üzemmód be van kapcsolva), a készülék aktiválja szervomotorját, hogy véletlenszerűen balra vagy jobbra forduljon az ütemnek megfelelően.

Szívesen fogadunk minden világos ötletet, hogyan lehet ezt megbízhatóbbá tenni!

A „Music_Test_LED” vázlat 7 EQ sávot ad ki az Arduino IDE használatával történő ábrázoláshoz.

7. lépés: 3D alakzatok

3D alakzatok
3D alakzatok
3D alakzatok
3D alakzatok
3D alakzatok
3D alakzatok

Az egész Party Lights szerelvényt a semmiből tervezték az Autodesk TinkerCAD használatával.

Az eredeti dizájn itt található. A github.com "files/3D" mappája az STL modelleket tartalmazza.

Ez a kialakítás szemlélteti, hogyan néz ki a készülék összeszerelve.

Az összes alkatrészt kinyomtatták, majd összeszerelték/összeragasztották.

A "kupola" a mikrokontrollert, a Bluetooth táblát és a mikrofont tartalmazza. A mikrokontrollert 40 mm x 60 mm -es táblára helyezték, és kijelölt sínek támasztják alá.

A szervó a kupola "lábában", míg a gombok az alapban találhatók.

Az elemtartó rekesz kifejezetten a Kellékek részben említett típusú akkumulátorra van nyomtatva. Ha egy másik akkumulátort használ, akkor a rekeszt ennek megfelelően kell átalakítani.

8. lépés: Tápegység

Tápegység
Tápegység
Tápegység
Tápegység

Az ultrakompakt 5000 mAh-s kettős USB-kimenet, a Super Slim Power Bank úgy tűnik, elegendő energiát biztosít órákon át tartó működéshez.

Az elemtartó rekesz úgy van kialakítva, hogy leválik a készülék többi részéről, és lecserélhető egy másik típusú akkumulátorra.

Az USB-csatlakozót a helyére helyezték és a helyére ragasztották, hogy az akkumulátort becsúsztatás közben becsatolja.

9. lépés: Bluetooth -vezérlés

Bluetooth vezérlés
Bluetooth vezérlés

A készülékhez HC-05 modul tartozik, amely lehetővé teszi az eszköz vezeték nélküli vezérlését.

Bekapcsolt állapotban a készülék létrehoz egy "LEDDANCE" nevű Bluetooth -kapcsolatot, amellyel párosíthatja telefonját.

Ideális esetben olyan alkalmazásnak kell lennie, amely lehetővé teszi a PartyLights vezérlését (színpaletta kiválasztása, gombnyomások szimulálása stb.). Viszont egyet még nem írtam.

Ha szeretne segíteni egy Android vagy iOS alkalmazás létrehozásában a Party Lights számára, kérjük, tudassa velem!

Az eszköz vezérléséhez jelenleg használhatja a Bluetooth terminál alkalmazást, és elküldheti a következő parancsokat:

  • LEDDBUTT - ahol az "1", "2", "3" vagy "4" szimulálja a megfelelő gomb megnyomását. Például: LEDDBUTT1
  • LEDDCOLRc - ahol c 0 -tól 255 -ig terjedő szám - a kívánt szín helyzete egy színkörön. A készülék a megadott LED színre vált.
  • LEDDSTAT - 3 karakteres számot ad vissza, amely csak 0 -ból és 1 -ből áll:

    • első pozíció: '0' - a színek nem forognak, '1' - a színek forognak
    • második pozíció: '0' - a táncmód ki van kapcsolva, '1' - a tánc mód be van kapcsolva
    • harmadik pozíció: '0' - a mikrofon normál erősítésben van, '1' - a mikrofon nagy erősítésben van

10. lépés: Vezérlőalkalmazás a Blynk alapján

Vezérlőalkalmazás a Blynk alapján
Vezérlőalkalmazás a Blynk alapján
Vezérlőalkalmazás a Blynk alapján
Vezérlőalkalmazás a Blynk alapján
Vezérlőalkalmazás a Blynk alapján
Vezérlőalkalmazás a Blynk alapján
Vezérlőalkalmazás a Blynk alapján
Vezérlőalkalmazás a Blynk alapján

A Blynk (blynk.io) egy hardver-agnosztikus IoT-platform. A Blynk -t használtam az IoT automatikus növényi öntözőrendszerben, és lenyűgözött a platform könnyűsége és robusztussága.

A Blynk támogatja a szélső eszközökhöz való Bluetooth -on keresztüli csatlakozást - pontosan erre van szükségünk a PartyLights számára.

Ha még nem tette meg, töltse le a Blynk alkalmazást, regisztráljon és hozza létre újra a Blynk PartyLights alkalmazást az ehhez a lépéshez mellékelt képernyőképek segítségével. Kérjük, győződjön meg arról, hogy a virtuális tűk hozzárendelése megegyezik a képernyőképeken láthatókkal, különben az alkalmazás gombjai nem fognak megfelelően működni.

A "blynk_settings.h" fájl tartalmazza a személyes Blynk UID azonosítómat. A projekt létrehozásakor egy újat rendel hozzá, amelyet használhat.

Töltse fel a PartyLightsBlynk.ino vázlatot, indítsa el az alkalmazást. Párosítsa Bluetooth -eszközzel, és élvezze a bulit.

11. lépés: Vázlatok és könyvtárak

Vázlatok és könyvtárak
Vázlatok és könyvtárak

A fő vázlat és a támogató fájlok a Github.com webhelyen találhatók.

A Party Lights vázlatában a következő könyvtárakat használták:

  • TaskScheduler - kooperatív multitasking - itt (én fejlesztettem)
  • AverageFilter - sablonozott átlagos szűrő - itt (én fejlesztettem)
  • A Servo - Servo control - egy szabványos Arduino könyvtár
  • WS2812B -NEOPixel vezérlés - az STM32 csomag része

Ez a Wiki oldal elmagyarázza, hogyan kell használni az STM32 táblákat Arduino IDE -vel.

12. lépés: Jövőbeli fejlesztések

Jövőbeli fejlesztések
Jövőbeli fejlesztések

Ebben a kialakításban néhány dolgon lehetne javítani, amelyeket érdemes megfontolni, ha belekezd a projektbe:

  • Használja az ESP32 -t Maple Mini tábla helyett. Az ESP32 2 CPU -val, Bluetooth és WiFi kötegekkel rendelkezik, és képes 60MHz, 120MHz és akár 240MHz frekvencián is futni.
  • Kisebb kialakítás - az így kapott eszköz nagyméretű. Kompaktabb lehet (különösen, ha elhagyja a táncos ötletet és a hozzá tartozó szervót)
  • Az ütésérzékelés végtelenül javítható. Ami nekünk, embereknek magától értetődik, nehéz feladatnak tűnik a számítógép számára
  • Sokkal több vizualizációt lehetne kitalálni és megvalósítani.
  • És természetesen egy App is írható az eszköz vezeték nélküli vezérléséhez egy hűvös felhasználói felületen.

Ajánlott: