Obsah:

Prenosné párty svetlá: 12 krokov (s obrázkami)
Prenosné párty svetlá: 12 krokov (s obrázkami)

Video: Prenosné párty svetlá: 12 krokov (s obrázkami)

Video: Prenosné párty svetlá: 12 krokov (s obrázkami)
Video: Jaké číslo od 1 do 31 se člověk narodil, takový je celý jeho život 2024, November
Anonim
Image
Image
Nápad
Nápad

Projekty Tinkercad »

Môžete priniesť svetlo na večierok a urobiť ho zábavnejším?

To bola otázka. A odpoveď je ÁNO (samozrejme).

Tento návod sa týka výroby prenosného zariadenia, ktoré počúva hudbu a vytvára vizualizáciu hudby zo sústredných prstencov LED Neopixel.

Pokúsili sme sa, aby zariadenie „tancovalo“, tj. Aby sa pohybovalo do rytmu hudby, ale detekcia úderov sa ukázala byť komplikovanejšou úlohou, ako sa zdá (žiadna slovná hračka nie je určená), takže „tanec“je trochu nepríjemný, ale stále tam je.

Zariadenie má Bluetooth a bude reagovať na textové príkazy. Nemal som čas napísať aplikáciu na ovládanie Party Lights (Android alebo iOS). Ak ste na túto úlohu, dajte mi prosím vedieť !!!

Ak sa vám tento návod páči, hlasujte zaň v súťaži Make It Glow!

Zásoby

Na stavbu párty svetiel budete potrebovať:

  • STM32F103RCBT6 Leaflabs Leaf Maple Mini USB ARM Cortex -M3 modul pre Arduino (odkaz tu) - mozog zariadenia. Tieto relatívne lacné zariadenia sú také výkonné, že nie je jasné, prečo by ste sa niekedy vrátili k Arduinu.
  • Pásmový grafický ekvalizér MSGEQ7 DIP-8 MSGEQ7 (odkaz tu)
  • Modul Bluetooth HC-05 alebo HC-06 (odkaz tu)
  • Mikrofón Adafruit MAX9814 (odkaz tu)
  • Štandardný servomotor (odkaz tu) chcete, aby vaše zariadenie „tancovalo“
  • CJMCU 61 Bit WS2812 5050 RGB LED Driver Development Board (odkaz tu)
  • TTP223 Modul dotykového kľúča, kapacitne nastaviteľný samosvorný/bezzámkový rozvádzač (odkaz tu)
  • Extrémne kompaktný duálny USB výstup 5 000 mAh, supertenká powerbanka (odkaz tu)

  • Rezistory, kondenzátory, vodiče, lepidlo, skrutky, prototypové dosky atď.

Krok 1: Myšlienka

Nápad
Nápad

Cieľom je mať prenosné zariadenie, ktoré by bolo možné umiestniť blízko zdroja hudby a ktoré by vytváralo farebné vizualizácie hudby. Správanie zariadenia by ste mali ovládať pomocou tlačidiel (dotyk) a Bluetooth.

V súčasnej dobe má Party Lights implementovaných 7 vizualizácií (dajte mi vedieť, ak máte ďalšie nápady!):

  1. Sústredné farebné kruhy
  2. Maltézsky kríž
  3. Pulzujúce svetlá
  4. Krb (môj osobný favorit)
  5. Bežné svetlá
  6. Svetlé stromy
  7. Bočné segmenty

V predvolenom nastavení zariadenie cykluje medzi vizualizáciami každú minútu. Užívateľ sa však môže rozhodnúť, že sa bude držať jednej vizualizácie a/alebo ich ručne cyklovať.

Vizualizácie, ktoré otáčajú svoju paletu farieb, by mohli byť tiež „zmrazené“, ak sa používateľovi páči konkrétna farebná kombinácia.

A ako niekoľko ďalších ovládacích prvkov môže užívateľ zmeniť citlivosť mikrofónu a zapnúť/vypnúť režim „tanca“servomotora.

Krok 2: Schématické a zvukové spracovanie

Schématické a zvukové spracovanie
Schématické a zvukové spracovanie
Schématické a zvukové spracovanie
Schématické a zvukové spracovanie
Schématické a zvukové spracovanie
Schématické a zvukové spracovanie
Schématické a zvukové spracovanie
Schématické a zvukové spracovanie

Fritzujúci schematický súbor je súčasťou balíka na Githube v podpriečinku „súbory“.

Čip MSEQ7 v zásade spracováva zvuk a rozdeľuje zvukový signál do 7 pásiem: 63 Hz, 160 Hz, 400 Hz, 1 kHz, 2,5 kHz, 6,25 kHz a 16 kHz

Mikrokontrolér používa týchto 7 pásiem na vytváranie rôznych vizualizácií, v zásade mapuje príslušné amplitúdy pásma na intenzitu svetla LED a farebné kombinácie.

Zdrojom zvuku je mikrofón s 3 úrovňami ovládania zisku. Nastavenia zisku môžete prepínať pomocou jedného z tlačidiel v závislosti od toho, ako ďaleko/na koľko je zdroj zvuku.

Mikrokontrolér sa tiež pokúša vykonať detekciu „rytmu“v 63 Hz „basovom“pásme. Stále pracujem na spoľahlivom spôsobe detekcie a udržania vyrovnania úderov.

Použitie „dotykových“tlačidiel bolo experimentom. Myslím si, že fungujú celkom dobre, nedostatok spätnej väzby od novinárov je však trochu mätúci.

Krok 3: LED koleso

LED koleso
LED koleso
LED koleso
LED koleso
LED koleso
LED koleso

Jadrom vizualizácie je 61 LED koliesko.

Upozorňujeme, že časť je dodávaná ako jednotlivé prstene, ktoré budete musieť zostaviť. Skôr som používal medené vodiče pre elektrické vedenia (ktoré tiež pekne držia prstence pohromade) a tenké signálne vodiče.

LED diódy sú očíslované od 0 do 60, začínajúc od spodnej vonkajšej LED diódy a smerujú v smere hodinových ručičiek dovnútra. Stredová LED dióda má číslo 60.

Každá vizualizácia sa spolieha na dvojrozmerné dátové polia, ktoré mapujú každú diódu LED do konkrétnej polohy pre cieľový segment vizualizácie.

Napríklad pre sústredné kruhy existuje 5 segmentov:

  • Vonkajší kruh, LED diódy 0 - 23, 24 diód LED dlhé
  • Druhý vonkajší kruh, diódy LED 24 - 39, 16 diód LED dlhé
  • Tretí kruh (v strede), LED diódy 40 - 51, 12 diód LED dlhé
  • Druhý vnútorný kruh, LED diódy 52 - 59, 8 LED diód dlhé
  • Vnútri LED, LED 60, 1 LED dlhá

Vizualizácia mapuje 5 zo 7 zvukových kanálov a postupne rozsvieti diódy LED podľa ich polohy v kruhovom pásme úmerne k úrovni zvuku v pásme.

Ostatné vizualizácie používajú rôzne dátové štruktúry a formáty, ale myšlienkou je vždy mať vizualizácie založené na údajových poliach, nie natoľko na kóde. Týmto spôsobom bolo možné vizualizácie prispôsobiť rôznym tvarom (viac alebo menej diód LED, viac pásiem EQ) bez zmeny kódu, iba hodnôt v dátových poliach.

Napríklad takto vyzerá dátová štruktúra pre vizualizáciu 1 v náčrte:

// Vizualizácia 1 a 3 - celých 5 kruhov kontrastný bajt 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 19 21 21 23 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}};

Krok 4: Vizualizácie

Vizualizácie
Vizualizácie
Vizualizácie
Vizualizácie
Vizualizácie
Vizualizácie
Vizualizácie
Vizualizácie

Zatiaľ je k dispozícii 7 vizualizácií a úvodná animácia:

Úvodná animácia

Keď je zariadenie zapnuté, zobrazí sa imitácia ohňostroja. Malo ísť o testovaciu sekvenciu LED a serva, ale neskôr sa vyvinula do animovanej verzie tohto testu

Sústredné farebné kruhy

Svetlá obiehajú displej v sústredných kruhoch úmerných amplitúde príslušného ekvivalenčného pásma. Náhodné prepínanie medzi hodinami a proti smeru hodinových ručičiek a pomalé otáčanie farieb na 256 farebnom koliesku

Maltézsky kríž

Jedno pásmo je stredová LED. Ďalším pásmom sú zvislé a vodorovné čiary diód LED a zostávajúce segmenty predstavujúce každé pásmo EQ. Všetky segmenty majú rotujúce farby so 128 offsetmi, aby zostali kontrastné.

Pulzujúce svetlá

Každý kruh rozsvieti všetky LED diódy súčasne pre vyhradené pásmo ekv., Pričom pomaly otáča farby s miernym posunom. Pásma ekvalizéra sa postupne posúvajú z jedného kruhu do druhého, čím sa vytvára vonkajší postup.

Krb

Pásy sú polkruhy osvetlené zdola nahor, začínajúc jasne červenou a žltou cestou hore, simulujúcou horiaci oheň v krbe. Príležitostne žiarivo biela „iskra“náhodne vystrelí nahor. Neexistuje žiadne striedanie farieb

Bežné svetlá

Každý koncentrický kruh je samostatným pásmom EQ. Vedúce diódy LED sú tie na zvislej čiare pod stredovou diódou LED. Akonáhle sa LED dióda rozsvieti proporcionálne k amplitúde pásma, začne „behať“okolo príslušného kruhu a pomaly klesá intenzita. Podporované je otáčanie v smere hodinových ručičiek aj proti smeru hodinových ručičiek, pričom dochádza k náhodnému prepínaniu.

Svetlé stromy

Segmenty sú osvetlené v priamke od spodnej LED diódy hore a potom do strán v sústredných polkruhoch napodobňujúcich palmy. Rotácia farieb.

Bočné segmenty

Toto je verzia predchádzajúceho maltézskeho kríža, v ktorej boli použité iba 2 diagonálne segmenty. Má sa podobať na ikonu zvukových vĺn.

Krok 5: Dotykové ovládacie prvky

Dotykové ovládacie prvky
Dotykové ovládacie prvky

K dispozícii sú 4 tlačidlá citlivé na dotyk:

  1. Cyklus medzi vizualizáciami a udržiavanie aktuálnej, až kým nevyberiete inú (predvolene sa cykly vizualizácií každých 30 sekúnd)
  2. Aktuálna farebná schéma „Zmraziť“/ „Rozmraziť“- ak sa vám páči konkrétna farebná kombinácia, môžete ju zmraziť - striedanie farieb je deaktivované a vizualizácia bude pokračovať iba s touto paletou farieb
  3. Upravte citlivosť mikrofónu
  4. Zapnite / vypnite „tanečný režim“

V tanečnom režime sa zariadenie pokúsi rozpoznať „úder“práve prehrávanej hudby a podľa taktu pootočí hlavou. Aby som bol úprimný, „tancovanie“je zatiaľ dosť trápne ako krásne.

Krok 6: Detekcia rytmu a „tancujúce“servo

Detekcia úderov a servo
Detekcia úderov a servo

Zariadenie sa neustále pokúša detekovať „úder“aktuálnej melódie ako vzdialenosť medzi po sebe nasledujúcimi vrcholmi pásma 63 Hz. Akonáhle je detekovaný (a iba vtedy, ak je tanečný režim ZAPNUTÝ), zariadenie aktivuje svoj servomotor, aby sa náhodne otáčalo vľavo alebo vpravo podľa rytmu.

Vítané sú všetky skvelé nápady, ako zvýšiť spoľahlivosť tejto služby!

Skica „Music_Test_LED“vydáva 7 pásiem EQ spôsobom vhodným na vykresľovanie pomocou Arduino IDE.

Krok 7: 3D tvary

3D tvary
3D tvary
3D tvary
3D tvary
3D tvary
3D tvary

Celá zostava Party Lights bola navrhnutá od začiatku pomocou programu Autodesk TinkerCAD.

Tu sa nachádza pôvodný dizajn. Priečinok „súbory/3D“na github.com obsahuje modely STL.

Tento dizajn ukazuje, ako zariadenie vyzerá zmontované.

Všetky komponenty boli vytlačené a potom zostavené/zlepené dohromady.

V „kupole“je uložený mikrokontrolér, doska Bluetooth a mikrofón. Mikrokontrolér je umiestnený na doske s rozmermi 40 mm x 60 mm a je podopretý určenými koľajnicami.

Servo je umiestnené v „nohe“kupoly, zatiaľ čo tlačidlá sú umiestnené v spodnej časti.

Priestor pre batériu je vytlačený špeciálne pre typ batérie uvedený v časti Spotrebný materiál. Ak sa rozhodnete použiť inú batériu, priehradka bude musieť byť zodpovedajúcim spôsobom prepracovaná.

Krok 8: Napájanie

Zdroj
Zdroj
Zdroj
Zdroj

Ultrakompaktný duálny výstup USB s výkonom 5 000 mah Zdá sa, že superštíhla napájacia banka poskytuje dostatok energie na hodiny prevádzky.

Priehradka na batériu je navrhnutá tak, aby sa oddelila od zvyšku zariadenia a mohla byť nahradená tou, ktorá je určená pre iný typ batérie.

Zástrčka USB bola umiestnená a prilepená za tepla, aby sa zapojila batéria, keď sa zasunie.

Krok 9: Ovládanie Bluetooth

Ovládanie Bluetooth
Ovládanie Bluetooth

Je pridaný modul HC-05, ktorý poskytuje spôsob bezdrôtového ovládania zariadenia.

Keď je zapnuté, zariadenie vytvorí pripojenie Bluetooth s názvom „LEDDANCE“, s ktorým môžete spárovať telefón.

V ideálnom prípade by mala existovať aplikácia, ktorá umožní ovládať funkciu PartyLights (výber farebnej palety, simulácia stlačení tlačidiel atď.). Zatiaľ som však žiadny nenapísal.

Ak máte záujem pomôcť s napísaním aplikácie pre Android alebo iOS pre Party Lights, dajte nám vedieť!

Na ovládanie zariadenia môžete v súčasnosti používať aplikáciu Bluetooth Terminal a odosielať nasledujúce príkazy:

  • LEDDBUTT - kde je '1', '2', '3' alebo '4' simuluje stlačenie príslušného tlačidla. Príklad: LEDDBUTT1
  • LEDDCOLRc - kde c je číslo od 0 do 255 - poloha požadovanej farby na farebnom koliesku. Zariadenie sa prepne na zadanú farbu LED.
  • LEDDSTAT - vráti trojznakové číslo pozostávajúce iba z '0 a' 1:

    • prvá pozícia: '0' - farby sa neotáčajú, '1' - farby sa otáčajú
    • druhá pozícia: '0' - tanečný režim je vypnutý, '1' - tanečný režim je zapnutý
    • tretia pozícia: '0' - mikrofón má normálny zisk, '1' - mikrofón má vysoký zisk

Krok 10: Ovládajte aplikáciu na základe Blynka

Ovládacia aplikácia založená na Blynku
Ovládacia aplikácia založená na Blynku
Ovládacia aplikácia založená na Blynku
Ovládacia aplikácia založená na Blynku
Ovládacia aplikácia založená na Blynku
Ovládacia aplikácia založená na Blynku
Ovládacia aplikácia založená na Blynku
Ovládacia aplikácia založená na Blynku

Blynk (blynk.io) je hardvérovo-agnostická platforma IoT. Použil som Blynk v mojom IoT systéme automatického zavlažovania rastlín podľa pokynov a bol som ohromený jednoduchosťou a robustnosťou platformy.

Blynk podporuje pripojenie k okrajovým zariadeniam prostredníctvom Bluetooth - presne to, čo pre PartyLights potrebujeme.

Ak ste to ešte neurobili, stiahnite si aplikáciu Blynk, zaregistrujte sa a znova vytvorte aplikáciu Blynk PartyLights pomocou snímok obrazovky priložených k tomuto kroku. Uistite sa, že priradenia virtuálnych pinov sú rovnaké ako na snímkach obrazovky, v opačnom prípade tlačidlá v aplikácii nebudú fungovať podľa plánu.

Súbor "blynk_settings.h" obsahuje moje osobné Blynk UID. Keď vytvoríte svoj projekt, bude mu priradený nový, ktorý budete používať.

Nahrajte skicu PartyLightsBlynk.ino, spustite aplikáciu. Spárujte so zariadením Bluetooth a užite si párty.

Krok 11: Skice a knižnice

Skice a knižnice
Skice a knižnice

Hlavný náčrt a podporné súbory sú umiestnené na Github.com tu.

V skici Party Lights boli použité nasledujúce knižnice:

  • TaskScheduler - kooperatívny multitasking - tu (mnou vyvinutý)
  • AverageFilter - filter s priemerom podľa šablóny - tu (mnou vyvinutý)
  • Servo - ovládanie servomotorov - je štandardnou knižnicou Arduino
  • Ovládanie WS2812B -NEOPixel - je súčasťou balenia STM32

Táto stránka Wiki vysvetľuje, ako používať dosky STM32 s Arduino IDE.

Krok 12: Budúce zlepšenia

Budúce vylepšenia
Budúce vylepšenia

V tomto dizajne by bolo možné vylepšiť niekoľko vecí, o ktorých by ste mohli zvážiť, ak sa pustíte do tohto projektu:

  • Namiesto dosky Maple Mini použite ESP32. ESP32 má 2 procesory, súpravy Bluetooth a WiFi a môže pracovať na frekvencii 60 MHz, 120 MHz a dokonca 240 MHz.
  • Menší dizajn - výsledné zariadenie je veľké. Mohlo by to byť kompaktnejšie (najmä ak upustíte od tanečného nápadu a súvisiaceho serva)
  • Detekciu úderov je možné nekonečne vylepšovať. To, čo je pre nás ľudí prirodzené, sa zdá byť pre počítač náročnou úlohou
  • Dalo by sa vymyslieť a implementovať oveľa viac vizualizácií.
  • A samozrejme by mohla byť napísaná aplikácia na bezdrôtové ovládanie zariadenia pomocou skvelého používateľského rozhrania.

Odporúča: