Kazalo:

Prenosne luči za zabave: 12 korakov (s slikami)
Prenosne luči za zabave: 12 korakov (s slikami)

Video: Prenosne luči za zabave: 12 korakov (s slikami)

Video: Prenosne luči za zabave: 12 korakov (s slikami)
Video: Я работаю в Страшном музее для Богатых и Знаменитых. Страшные истории. Ужасы. 2024, Julij
Anonim
Image
Image
Ideja
Ideja

Tinkercad projekti »

Lahko prinesete luč na zabavo in jo naredite bolj zabavno?

To je bilo vprašanje. In odgovor je DA (seveda).

Ta pouk govori o izdelavi prenosne naprave, ki posluša glasbo in ustvarja vizualizacijo glasbe iz koncentričnih obročev LED diod Neopixel.

Naredili so poskus, da bi naprava "zaplesala", torej se premaknila v ritmu glasbe, vendar se je odkrivanje utripov izkazalo za bolj zapleteno nalogo, kot se sliši (brez besedne igre), zato je "ples" nekoliko nerodno, ampak še vedno je tam.

Naprava podpira Bluetooth in se bo odzvala na besedilne ukaze. Nisem imel časa za pisanje aplikacije za nadzor Party Lights (Android ali iOS). Če ste kos nalogi - prosim, sporočite mi !!!

Če vam je ta pouk všeč, ga glasujte na natečaju Make It Glow!

Zaloge

Za izdelavo Party Lights potrebujete:

  • STM32F103RCBT6 Leaflabs Leaf Maple Mini USB ARM Cortex -M3 Modul za Arduino (povezava tukaj) - možgani naprave. Te relativno poceni naprave so tako močne, da ni jasno, zakaj bi se kdaj vrnili na Arduino.
  • MSGEQ7 Pasovni grafični izenačevalnik IC DIP-8 MSGEQ7 (povezava tukaj)
  • Modul Bluetooth HC-05 ali HC-06 (povezava tukaj)
  • Mikrofon Adafruit MAX9814 (povezava tukaj)
  • Standardni servo motor (povezava tukaj) želite, da vaša naprava "pleše"
  • CJMCU 61 -bitna WS2812 5050 RGB LED gonilna plošča za razvoj (povezava tukaj)
  • TTP223 Modul s tipko na dotik Kapacitivna nastavljiva samozaporna/stikalna plošča brez zaklepanja (povezava tukaj)
  • Ultra kompaktni 5000-mah dvojni USB izhod Super Slim Power Bank (povezava tukaj)

  • Upori, kondenzatorji, žice, lepilo, vijaki, plošče za izdelavo prototipov itd.

1. korak: Ideja

Ideja
Ideja

Zamisel je, da bi imeli prenosno napravo, ki bi jo lahko postavili blizu glasbenega vira in bi ustvarili pisane glasbene vizualizacije. Vedenje naprave bi morali nadzorovati z gumbi (na dotik) in Bluetooth.

Trenutno ima Party Lights izvedenih 7 vizualizacij (sporočite mi, če imate več idej!):

  1. Koncentrični pisani krogi
  2. Malteški križ
  3. Utripajoče luči
  4. Kamin (meni osebno najljubši)
  5. Tekalne luči
  6. Svetla drevesa
  7. Stranski segmenti

Privzeto bo naprava vsako minuto krožila po vizualizacijah. Uporabnik pa se lahko odloči za eno vizualizacijo in/ali ročno premikanje po njej.

Vizualizacije, ki zasučejo njihovo barvno paleto, bi lahko bile tudi "zamrznjene", če je uporabniku všeč določena barvna kombinacija.

Kot nekaj dodatnih kontrol lahko uporabnik spremeni občutljivost mikrofona in omogoči/onemogoči način "plesa" servo motorja.

2. korak: Shematska in zvočna obdelava

Shematska in zvočna obdelava
Shematska in zvočna obdelava
Shematska in zvočna obdelava
Shematska in zvočna obdelava
Shematska in zvočna obdelava
Shematska in zvočna obdelava
Shematska in zvočna obdelava
Shematska in zvočna obdelava

Shematska datoteka z rezanjem je vključena v paket na Githubu v podmapi "datoteke".

V bistvu čip MSEQ7 izvaja obdelavo zvoka in razdeli zvočni signal na 7 pasov: 63Hz, 160Hz, 400Hz, 1kHz, 2.5kHz, 6.25kHz in 16kHz

Mikrokrmilnik uporablja teh 7 pasov za ustvarjanje različnih vizualizacij, ki v osnovi preslikajo ustrezne amplitude pasov v jakost LED svetlobe in barvne kombinacije.

Vir zvoka je mikrofon s tremi stopnjami nadzora ojačanja. Nastavitve ojačanja lahko preklapljate z enim od gumbov, odvisno od tega, kako daleč/glasen je vir zvoka.

Mikrokrmilnik poskuša tudi zaznati "beat" na 63Hz "bas" pasu. Še vedno delam na zanesljivem načinu odkrivanja in vzdrževanja poravnave utripov.

Uporaba gumbov na dotik je bil poskus. Mislim, da delujejo precej dobro, vendar je pomanjkanje povratnih informacij tiska nekoliko zmedeno.

3. korak: LED kolo

LED kolo
LED kolo
LED kolo
LED kolo
LED kolo
LED kolo

Jedro vizualizacije je 61 LED kolo.

Upoštevajte, da je del v obliki posameznih obročev, ki jih boste morali sestaviti. Včasih sem mislil, da so bakrene žice za daljnovode (ki tudi lepo držijo obroče skupaj) in tanke signalne žice.

Svetleče diode so oštevilčene od 0 do 60, začenši od spodnje zunanje LED in gredo navznoter v smeri urinega kazalca. Osrednja LED je številka 60.

Vsaka vizualizacija temelji na dvodimenzionalnih podatkovnih nizih, ki preslikajo vsako LED v določen položaj za ciljni segment vizualizacije.

Na primer, za koncentrične kroge obstaja 5 segmentov:

  • Zunanji krog, LED dolžine 0 - 23, 24 LED
  • Drugi zunanji krog, LED diode 24 - 39, dolge 16 LED
  • Tretji krog (na sredini), LED diode 40 - 51, dolge 12 LED
  • Drugi notranji krog, LED diode 52 - 59, dolge 8 LED
  • Notranja LED, LED 60, dolga 1 LED

Vizualizacija preslika 5 od 7 zvočnih kanalov in postopoma prižge LED glede na njihov položaj v krožnem pasu, sorazmerno s stopnjo zvoka v pasu.

Druge vizualizacije uporabljajo različne strukture podatkov in oblike, vendar je ideja vedno, da vizualizacije poganjajo podatkovni nizi, ne toliko koda. Na ta način bi lahko vizualizacije prilagodili različnim oblikam (več ali manj LED, več pasov EQ) brez spreminjanja kode, samo vrednosti v podatkovnih nizih.

Tako je na primer struktura podatkov za vizualizacijo 1 videti na skici:

// Vizualizacija 1 in 3 - polnih 5 bajtov kroga conconst 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. korak: Vizualizacije

Vizualizacije
Vizualizacije
Vizualizacije
Vizualizacije
Vizualizacije
Vizualizacije
Vizualizacije
Vizualizacije

Doslej je na voljo 7 vizualizacij in zagonska animacija:

Začetna animacija

Ko je naprava vklopljena, se prikaže imitacija ognjemeta. To naj bi bilo testno zaporedje LED in servo, kasneje pa se je razvilo v animirano različico takega testa

Koncentrični pisani krogi

Luči obkrožajo zaslon v koncentričnih krogih, sorazmernih z amplitudo ustreznega pasu eq. Naključno preklapljanje med uro in uro in počasi vrtenje barv na 256 barvnem kolesu

Malteški križ

En pas je osrednja LED. Drug pas so navpične in vodoravne črte LED, preostali segmenti pa predstavljajo vsak EQ pas. Vsi segmenti se vrtijo v 128 odmikih, da ostanejo kontrastni.

Utripajoče luči

Vsak krog soglasno prižge vse LED diode za namenski pas eq, medtem ko se barve počasi vrtijo z rahlim odmikom. EQ pasovi se postopoma premikajo iz enega kroga v drugega, kar ustvarja napredovanje navzven.

Ognjišče

Trakovi so polkrogi, osvetljeni od spodaj navzgor, začenši s svetlo rdečo in na poti navzgor dodajo rumeno, ki simulira goreč ogenj v kaminu. Občasno se naključno požene gor svetlo bela "iskra". Barvne rotacije ni

Tekalne luči

Vsak koncentrični krog je ločen pas EQ. Vodilne LED so tiste na navpični črti pod sredinsko LED. Ko LED zasveti sorazmerno z amplitudo pasu, začne "teči" po ustreznem krogu in počasi zmanjšuje intenzivnost. Podprta sta vrtenja v smeri urnega kazalca in v nasprotni smeri urinega kazalca, ki se naključno preklapljajo.

Svetla drevesa

Segmenti so osvetljeni v ravni črti od spodnje LED navzgor in nato stransko v koncentričnih polkrogih, ki posnemajo palme. Vrtenje barve.

Stranski segmenti

To je različica prejšnjega malteškega križa, v katerem sta bila uporabljena samo 2 diagonalna segmenta. Menda je podoben ikoni za zvočne valove.

5. korak: Dotaknite se gumbov za upravljanje

Upravljanje gumbov na dotik
Upravljanje gumbov na dotik

Obstajajo 4 tipke, občutljive na dotik:

  1. Premikajte se po vizualizacijah in obdržite trenutno, dokler ni izbrana druga (privzeto ciklus vizualizacij poteka vsakih 30 sekund)
  2. "Zamrzni" / "odmrzni" trenutno barvno shemo - če vam je všeč določena barvna kombinacija, jo lahko zamrznete - vrtenje barve je onemogočeno in vizualizacija se bo nadaljevala samo s to barvno paleto
  3. Prilagodite občutljivost mikrofona
  4. Vklopite / izklopite "plesni način"

V plesnem načinu bo naprava poskušala zaznati "utrip" trenutno predvajane glasbe in obrniti glavo glede na utrip. Če sem iskren, je "ples" doslej bolj neroden kot lep.

6. korak: zaznavanje utripov in servo "ples"

Zaznavanje utripov in servo
Zaznavanje utripov in servo

Naprava nenehno poskuša zaznati "utrip" trenutne melodije kot razdaljo med zaporednimi vrhovi pasu 63Hz. Ko je zaznana (in samo, če je plesni način VKLOPLJEN), bo naprava aktivirala svoj servo motor, da bo naključno zavila levo ali desno glede na utrip.

Kakršne koli svetle ideje, kako to narediti bolj zanesljivo, so dobrodošle!

Skica "Music_Test_LED" oddaja 7 pasov EQ na način, ki je primeren za risanje s pomočjo Arduino IDE.

7. korak: 3D oblike

3D oblike
3D oblike
3D oblike
3D oblike
3D oblike
3D oblike

Celoten sklop Party Lights je bil zasnovan iz nič z uporabo Autodesk TinkerCAD.

Prvotna zasnova se nahaja tukaj. Mapa "files/3D" na github.com vsebuje modele STL.

Ta zasnova ponazarja, kako je naprava sestavljena.

Vse komponente so bile natisnjene in nato sestavljene/zlepljene.

"Kupola" gosti mikrokrmilnik, ploščo Bluetooth in mikrofon. Mikrokrmilnik je nameščen na plošči 40 mm x 60 mm in je podprt z določenimi tirnicami.

Servo se nahaja v "nogi" kupole, gumbi pa na dnu.

Predal za baterije je natisnjen posebej za vrsto baterije, omenjeno v razdelku Potrošni material. Če se odločite za uporabo druge baterije, bo treba prostor ustrezno prilagoditi.

8. korak: Napajanje

Napajanje
Napajanje
Napajanje
Napajanje

Zdi se, da izjemno kompaktna 5000-mah dvojna USB izhoda Super Slim Power Bank zagotavljata dovolj energije za ure delovanja.

Predal za baterije je zasnovan tako, da se loči od preostale naprave in ga je mogoče zamenjati s tistim, ki je zasnovan za drugo vrsto baterije.

Vtič USB je bil nameščen in vroče lepljen, da priključi baterijo, ko vstopi.

9. korak: Nadzor Bluetooth

Nadzor Bluetooth
Nadzor Bluetooth

Za brezžično upravljanje naprave je dodan modul HC-05.

Ko je naprava vklopljena, ustvari povezavo Bluetooth, imenovano "LEDDANCE", s katero lahko povežete telefon.

V idealnem primeru bi morala obstajati aplikacija, ki omogoča nadzor PartyLights (izbira barvne palete, simulacija pritiskanja gumbov itd.). Nisem pa ga še napisal.

Če želite pomagati pri pisanju aplikacije za Android ali iOS za Party Lights, mi to sporočite!

Za nadzor naprave lahko trenutno uporabljate terminalno aplikacijo Bluetooth in pošljete naslednje ukaze:

  • LEDDBUTT - kjer je "1", "2", "3" ali "4" simulira pritisk na ustrezen gumb. Npr.: LEDDBUTT1
  • LEDDCOLRc - kjer je c številka od 0 do 255 - položaj želene barve na barvnem kolesu. Naprava bo preklopila na določeno barvo LED.
  • LEDDSTAT - vrne 3 -mestno številko, ki je sestavljena samo iz '0' in '1':

    • prvi položaj: '0' - barve se ne vrtijo, '1' - barve se vrtijo
    • drugo mesto: '0' - plesni način je izklopljen, '1' - plesni način je vklopljen
    • tretji položaj: '0' - mikrofon je v normalnem pojačanju, '1' - mikrofon ima visoko ojačanje

10. korak: Nadzirajte aplikacijo na podlagi Blynka

Nadzorna aplikacija, ki temelji na Blynku
Nadzorna aplikacija, ki temelji na Blynku
Nadzorna aplikacija na podlagi Blynka
Nadzorna aplikacija na podlagi Blynka
Nadzorna aplikacija, ki temelji na Blynku
Nadzorna aplikacija, ki temelji na Blynku
Nadzorna aplikacija, ki temelji na Blynku
Nadzorna aplikacija, ki temelji na Blynku

Blynk (blynk.io) je strojno-agnostična platforma IoT. Uporabil sem Blynk v svojem avtomatskem namakalnem sistemu IoT za namakanje rastlin in bil sem navdušen nad enostavnostjo in robustnostjo platforme.

Blynk podpira povezovanje z robnimi napravami prek Bluetootha - točno tisto, kar potrebujemo za PartyLights.

Če tega še niste storili, prenesite aplikacijo Blynk, se registrirajte in znova ustvarite aplikacijo Blynk PartyLights s pomočjo posnetkov zaslona, priloženih temu koraku. Prepričajte se, da so dodelitve navideznih pin enake kot na posnetkih zaslona, sicer gumbi v aplikaciji ne bodo delovali, kot je predvideno.

Datoteka "blynk_settings.h" vsebuje moj osebni UID Blynk. Ko ustvarite svoj projekt, vam bo dodeljen nov za uporabo.

Naložite skico PartyLightsBlynk.ino, zaženite aplikacijo. Seznanite se z napravo Bluetooth in uživajte v zabavi.

11. korak: Skice in knjižnice

Skice in knjižnice
Skice in knjižnice

Glavna skica in podporne datoteke so na Github.com tukaj.

V skici Party Lights so bile uporabljene naslednje knjižnice:

  • TaskScheduler - kooperativno večopravilnost - tukaj (razvil sem ga)
  • AverageFilter - povprečni filter s predlogo - tukaj (razvil sem ga)
  • Servo - Servo nadzor - je standardna knjižnica Arduino
  • WS2812B -NEOPixel nadzor - je del paketa STM32

Ta stran Wiki pojasnjuje, kako uporabljati plošče STM32 z Arduino IDE.

12. korak: Prihodnje izboljšave

Prihodnje izboljšave
Prihodnje izboljšave

V tej zasnovi bi lahko izboljšali nekaj stvari, o katerih bi lahko razmislili, če se lotite tega projekta:

  • Namesto Maple Mini plošče uporabite ESP32. ESP32 ima 2 procesorja, Bluetooth in Wi -Fi niz in lahko deluje pri 60MHz, 120MHz in celo 240MHz.
  • Manjša oblika - nastala naprava je velika. Lahko bi bil bolj kompakten (še posebej, če opustite plesno idejo in s tem povezan servo)
  • Odkrivanje utripov bi lahko neskončno izboljšali. Kar se nam, ljudem, naravno zdi, je za računalnik težka naloga
  • Lahko bi zasnovali in izvedli veliko več vizualizacij.
  • In seveda bi lahko napisali aplikacijo za brezžično upravljanje naprave s kul uporabniškim vmesnikom.

Priporočena: