Turinys:
- Prekės
- 1 žingsnis: idėja
- 2 žingsnis: schema ir garso apdorojimas
- 3 žingsnis: LED ratas
- 4 žingsnis: vizualizacijos
- 5 veiksmas: jutiklinių mygtukų valdikliai
- 6 veiksmas: mušimo aptikimas ir servo „šokiai“
- 7 žingsnis: 3D formos
- 8 žingsnis: maitinimo šaltinis
- 9 veiksmas: „Bluetooth“valdymas
- 10 veiksmas: valdymo programa, pagrįsta „Blynk“
- 11 žingsnis: eskizai ir bibliotekos
- 12 žingsnis: būsimi patobulinimai
Video: Nešiojami vakarėlio žibintai: 12 žingsnių (su nuotraukomis)
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:45
Tinkercad projektai »
Ar galite įnešti šviesos į vakarėlį ir padaryti jį linksmesnį?
Toks buvo klausimas. Ir atsakymas yra TAIP (žinoma).
Ši instrukcija skirta nešiojamam įrenginiui, kuris klausosi muzikos ir sukuria muzikos vizualizaciją, iš koncentrinių „Neopixel“šviesos diodų žiedų.
Buvo bandyta priversti prietaisą „šokti“, ty judėti pagal muzikos ritmą, tačiau ritmo aptikimas pasirodė sudėtingesnis uždavinys, nei atrodo (be jokių šnekų), todėl „šokti“yra šiek tiek nepatogu, bet vis tiek yra.
Įrenginys yra įjungtas „Bluetooth“ir reaguos į teksto komandas. Aš neturėjau laiko parašyti programos, skirtos valdyti „Party Lights“(„Android“arba „iOS“). Jei atliekate užduotį - praneškite man !!!
Jei jums patinka ši pamoka, balsuokite už ją konkurse „Padaryk švytėjimą“!
Prekės
Norėdami sukurti „Party Lights“, jums reikės:
- STM32F103RCBT6 „Leaflabs Leaf Maple Mini USB ARM Cortex -M3“modulis, skirtas „Arduino“(nuoroda čia) - prietaiso smegenys. Šie palyginti pigūs įrenginiai yra tokie galingi, todėl neaišku, kodėl kada nors grįžtumėte į „Arduino“.
- MSGEQ7 juostos grafinis ekvalaizeris IC DIP-8 MSGEQ7 (nuoroda čia)
- HC-05 arba HC-06 „Bluetooth“modulis (nuoroda čia)
- „Adafruit MAX9814“mikrofonas (nuoroda čia)
- Standartinis servo variklis (nuoroda čia) yra tai, kad norite, kad jūsų prietaisas „šoktų“
- CJMCU 61 bitų WS2812 5050 RGB LED tvarkyklės kūrimo plokštė (nuoroda čia)
- TTP223 jutiklinio klavišo modulio talpinė nustatoma savaiminio užrakinimo/be užrakto jungiklių plokštė (nuoroda čia)
-
Itin kompaktiškas 5000 mAh dviejų USB išėjimų „Super Slim Power Bank“(nuoroda čia)
- Rezistoriai, kondensatoriai, laidai, klijai, varžtai, prototipų plokštės ir kt.
1 žingsnis: idėja
Idėja yra turėti nešiojamąjį įrenginį, kurį būtų galima pastatyti šalia muzikos šaltinio ir kuris sukurtų spalvingą muzikos vizualizaciją. Turėtumėte turėti galimybę valdyti įrenginio elgesį mygtukais (lietimu) ir „Bluetooth“.
Šiuo metu „Party Lights“yra įdiegtos 7 vizualizacijos (praneškite man, jei turite daugiau idėjų!):
- Koncentriniai spalvoti apskritimai
- Maltos kryžius
- Pulsuojančios lemputės
- Židinys (mano asmeninis mėgstamiausias)
- Bėgimo žibintai
- Šviesūs medžiai
- Šoniniai segmentai
Pagal numatytuosius nustatymus įrenginys kiekvieną minutę peržiūrės vizualizacijas. Tačiau vartotojas gali pasirinkti laikytis vienos vizualizacijos ir (arba) rankiniu būdu jas peržiūrėti.
Vizualizacijos, kurios keičia jų spalvų paletę, taip pat gali būti „įšaldytos“, jei vartotojui patinka tam tikras spalvų derinys.
Ir dar keletą valdiklių vartotojas gali pakeisti mikrofono jautrumą ir įjungti/išjungti servo variklio „šokio“režimą.
2 žingsnis: schema ir garso apdorojimas
Fritzinis scheminis failas yra įtrauktas į „Github“paketą „failų“pakatalogyje.
Iš esmės, MSEQ7 lustas atlieka garso apdorojimą, padalindamas garso signalą į 7 juostas: 63 Hz, 160 Hz, 400 Hz, 1 kHz, 2,5 kHz, 6,25 kHz ir 16 kHz
Mikrovaldiklis naudoja tas 7 juostas, kad sukurtų įvairias vizualizacijas, iš esmės atitinkamas juostų amplitudes suskirstydamas į LED šviesos intensyvumą ir spalvų derinius.
Garso šaltinis yra mikrofonas su 3 stiprumo valdymo lygiais. Galite pereiti prie stiprinimo nustatymų naudodami vieną iš mygtukų, priklausomai nuo to, kiek garsus yra garso šaltinis.
Mikrokontroleris taip pat bando atlikti „ritmo“aptikimą 63 Hz „boso“juostoje. Aš vis dar dirbu prie patikimo būdo aptikti ir išlaikyti ritmo derinimą.
„Liečiamų“mygtukų naudojimas buvo eksperimentas. Manau, kad jie veikia gana gerai, tačiau spaudos atsiliepimų trūkumas šiek tiek glumina.
3 žingsnis: LED ratas
Vizualizacijos esmė yra 61 LED ratas.
Atminkite, kad dalis yra atskiri žiedai, kuriuos turėsite surinkti. Elektros linijoms aš naudoju varinius laidus (kurie taip pat gražiai laiko žiedus) ir plonus signalinius laidus.
Šviesos diodai sunumeruoti nuo 0 iki 60, pradedant nuo apatinio išorinio šviesos diodo ir einant pagal laikrodžio rodyklę į vidų. Centrinis šviesos diodas yra 60.
Kiekviena vizualizacija remiasi dvimačiais duomenų masyvais, kurie susieja kiekvieną šviesos diodą į tam tikrą tikslinio vizualizavimo segmento vietą.
Pavyzdžiui, koncentriniams apskritimams yra 5 segmentai:
- Išorinis ratas, šviesos diodai 0 - 23, 24 šviesos diodai
- Antras išorinis apskritimas, šviesos diodai 24 - 39, 16 šviesos diodų
- Trečias apskritimas (centre), šviesos diodai 40 - 51, 12 šviesos diodų
- Antrasis vidinis ratas, šviesos diodai 52 - 59, 8 šviesos diodai
- Viduje LED, LED 60, 1 LED ilgio
Vizualizacija susieja 5 iš 7 garso kanalų ir palaipsniui uždega šviesos diodus pagal jų padėtį apskritoje juostoje, proporcingai garso diapazonui.
Kitos vizualizacijos naudoja skirtingas duomenų struktūras ir formatus, tačiau idėja visada yra tai, kad vizualizacijas valdytų duomenų masyvai, o ne tiek kodas. Tokiu būdu vizualizacijas galima pritaikyti prie skirtingų formų (daugiau ar mažiau šviesos diodų, daugiau EQ juostų) nekeičiant kodo, tik duomenų masyvų reikšmių.
Pavyzdžiui, eskizo vizualizacijos duomenų struktūra atrodo taip:
// 1 ir 3 vizualizacija - visi 5 apskritimai, sudaryti iš baitų TOTAL_LAYERS1 = 5; const baitas 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 žingsnis: vizualizacijos
Iki šiol yra 7 vizualizacijos ir pradžios animacija:
Pradinė animacija
Įjungus prietaisą, rodomas fejerverko imitacija. Tai turėjo būti LED ir „Servo“bandymų seka, tačiau vėliau tapo animacine tokio bandymo versija
Koncentriniai spalvoti apskritimai
Šviesos sukasi aplink ekraną koncentriniais apskritimais, proporcingomis atitinkamos ekvivalentinės juostos amplitudei. Atsitiktinis perjungimas pagal laikrodžio rodyklę ir prieš laikrodžio rodyklę ir lėtai sukamos spalvos per 256 spalvų ratą
Maltos kryžius
Viena juosta yra centrinis šviesos diodas. Kita juosta yra vertikalios ir horizontalios šviesos diodų linijos, o likę segmentai reiškia kiekvieną EQ juostą. Visi segmentai yra besisukančių spalvų 128 poslinkiais, kad išliktų kontrastas.
Pulsuojančios lemputės
Kiekvienas apskritimas vienu metu uždega visus šviesos diodus, kad būtų sukurta tam tikra eq juosta, o lėtai sukasi spalvos su nedideliu poslinkiu. EQ juostos palaipsniui perkeliamos iš vieno apskritimo į kitą, sukuriant progresą į išorę.
Židinys
Juostos yra pusiau apskritimai, apšviesti iš apačios į viršų, prasidedantys ryškiai raudona spalva, o pakeliui pridedant geltonos spalvos, imituojant degančią ugnį židinyje. Retkarčiais ryškiai balta „kibirkštis“atsitiktinai iššauna. Nėra spalvų sukimosi
Bėgimo žibintai
Kiekvienas koncentriškas apskritimas yra atskira EQ juosta. Pagrindiniai šviesos diodai yra tie, kurie yra vertikalioje linijoje žemiau centrinio šviesos diodo. Kai šviesos diodas užsidega proporcingai juostos amplitudei, jis pradeda „bėgti“aplink atitinkamą apskritimą, lėtai mažindamas intensyvumą. Tiek laikrodžio rodyklių, tiek prieš laikrodžio rodyklių sukimas yra palaikomas, perjungiant atsitiktinai.
Šviesūs medžiai
Segmentai apšviečiami tiesia linija nuo apatinio šviesos diodo aukštyn, o tada į šonus koncentriniais pusiau apskritimais, imituojančiais palmes. Spalvų sukimas.
Šoniniai segmentai
Tai ankstesnio Maltos kryžiaus versija, kurioje naudojami tik 2 įstrižainės segmentai. Manoma, kad tai panaši į garso bangų piktogramą.
5 veiksmas: jutiklinių mygtukų valdikliai
Yra 4 lietimui jautrūs mygtukai:
- Peržiūrėkite vizualizacijas ir tęskite dabartinę, kol bus pasirinkta kita (pagal numatytuosius nustatymus vizualizacijos ciklas kas 30 sekundžių)
- „Įšaldyti“/ „atšaldyti“dabartinę spalvų schemą - jei jums patinka tam tikras spalvų derinys, galite jį užšaldyti - spalvų sukimas išjungtas ir vizualizacija bus tęsiama naudojant šią spalvų paletę
- Sureguliuokite mikrofono jautrumą
- Įjunkite / išjunkite „šokių režimą“
Šokių režimu prietaisas bandys aptikti šiuo metu grojamos muzikos „ritmą“ir pasukti galvą pagal taktą. Kol kas „šokiai“yra gana nepatogūs nei gražūs, jei atvirai.
6 veiksmas: mušimo aptikimas ir servo „šokiai“
Įrenginys nuolat bando aptikti dabartinės melodijos „ritmą“kaip atstumą tarp iš eilės esančių 63 Hz juostos smailių. Aptikęs (ir tik tada, kai šokio režimas įjungtas), prietaisas suaktyvins servo variklį, kad atsitiktinai pasuktų į kairę arba į dešinę pagal ritmą.
Laukiamos bet kokios šviesios idėjos, kaip tai padaryti patikimesnę!
„Music_Test_LED“eskizas išleidžia 7 EQ juostas, tinkamas braižyti naudojant „Arduino IDE“.
7 žingsnis: 3D formos
Visas „Party Lights“mazgas buvo sukurtas nuo nulio, naudojant „Autodesk TinkerCAD“.
Originalus dizainas yra čia. Github.com aplanke „files/3D“yra STL modeliai.
Šis dizainas parodo, kaip prietaisas atrodo surinktas.
Visi komponentai buvo atspausdinti, o po to surinkti/suklijuoti.
„Kupolyje“yra mikrovaldiklis, „Bluetooth“plokštė ir mikrofonas. Mikrovaldiklis dedamas ant 40 mm x 60 mm plokštės ir yra palaikomas specialiais bėgiais.
Servo yra kupolo „kojoje“, o mygtukai - pagrinde.
Baterijų skyrius yra atspausdintas specialiai baterijų, nurodytų skyriuje „Priedai“, tipui. Jei nuspręsite naudoti kitą bateriją, skyrius turės būti atitinkamai suprojektuotas.
8 žingsnis: maitinimo šaltinis
Itin kompaktiškas, 5000 mAh talpos dvigubas USB išėjimas „Super Slim Power Bank“, atrodo, suteikia pakankamai energijos kelioms valandoms.
Baterijų skyrius suprojektuotas taip, kad būtų atskirtas nuo likusio prietaiso ir galėtų būti pakeistas kitu, skirtu kitokio tipo akumuliatoriui.
USB kištukas buvo pastatytas ir karštai priklijuotas, kad būtų galima prijungti akumuliatorių, kai jis slysta.
9 veiksmas: „Bluetooth“valdymas
Pridedamas HC-05 modulis, leidžiantis belaidžiu būdu valdyti įrenginį.
Įjungtas įrenginys sukuria „Bluetooth“ryšį, pavadintą „LEDDANCE“, su kuriuo galite susieti telefoną.
Idealiu atveju turėtų būti programėlė, leidžianti valdyti „PartyLights“(pasirinkti spalvų paletę, imituoti mygtukų paspaudimus ir pan.). Tačiau dar neparašiau nė vieno.
Jei norite padėti parašyti „Android“ar „iOS“programą „Party Lights“, praneškite man!
Norėdami valdyti įrenginį, šiuo metu galite naudoti „Bluetooth“terminalo programą ir siųsti šias komandas:
- LEDDBUTT - kur yra „1“, „2“, „3“arba „4“imituoja atitinkamo mygtuko paspaudimą. Pvz.: LEDDBUTT1
- LEDDCOLRc - kur c yra skaičius nuo 0 iki 255 - norimos spalvos padėtis spalvų ratuke. Įrenginys persijungs į nurodytą LED spalvą.
-
LEDDSTAT - pateikia 3 simbolių skaičių, kurį sudaro tik „0“ir „1“:
- pirmoji padėtis: „0“- spalvos nesisuka, „1“- spalvos sukasi
- antroji padėtis: „0“- šokių režimas išjungtas, „1“- šokių režimas įjungtas
- trečioji padėtis: „0“- mikrofonas yra įprasto stiprinimo, „1“- mikrofonas yra labai stiprus
10 veiksmas: valdymo programa, pagrįsta „Blynk“
„Blynk“(blynk.io) yra aparatinės įrangos agnostinė IoT platforma. Naudojau „Blynk“savo „IoT“automatinėje augalų drėkinimo sistemoje, kuri buvo pamokoma, ir buvau sužavėtas platformos lengvumu ir tvirtumu.
„Blynk“palaiko prisijungimą prie kraštinių įrenginių per „Bluetooth“- būtent tai, ko mums reikia „PartyLights“.
Jei to dar nepadarėte, atsisiųskite „Blynk“programą, užsiregistruokite ir atkurkite „Blynk PartyLights“programą naudodami ekrano kopijas, pridėtas prie šio veiksmo. Įsitikinkite, kad virtualios smeigtuko užduotys yra tokios pačios kaip ir ekrano kopijose, kitaip programos mygtukai neveiks taip, kaip numatyta.
Faile „blynk_settings.h“yra mano asmeninis Blynk UID. Kai kuriate projektą, jam bus priskirtas naujas, kurį galėsite naudoti.
Įkelkite „PartyLightsBlynk.ino“eskizą, įjunkite programą. Susiekite su „Bluetooth“įrenginiu ir mėgaukitės vakarėliu.
11 žingsnis: eskizai ir bibliotekos
Pagrindinis eskizas ir pagalbiniai failai yra „Github.com“čia.
„Party Lights“eskize buvo naudojamos šios bibliotekos:
- „TaskScheduler“- daugiafunkcinis kooperatyvas - čia (sukūriau aš)
- „AverageFilter“- šabloninis vidutinis filtras - čia (sukūriau aš)
- Servo - Servo valdymas - yra standartinė „Arduino“biblioteka
- WS2812B -NEOPixel control - ateina kaip STM32 paketo dalis
Šiame „Wiki“puslapyje paaiškinta, kaip naudoti STM32 plokštes su „Arduino IDE“.
12 žingsnis: būsimi patobulinimai
Šį dizainą būtų galima patobulinti, ir jūs galėtumėte tai apsvarstyti, jei pradėsite šį projektą:
- Vietoj „Maple Mini“plokštės naudokite ESP32. ESP32 turi 2 procesorius, „Bluetooth“ir „WiFi“kaminus ir gali veikti 60 MHz, 120 MHz ir net 240 MHz dažniu.
- Mažesnis dizainas - gautas įrenginys yra didelis. Gali būti kompaktiškesnis (ypač jei atsisakote šokių idėjos ir susijusios servo)
- Sumušimų aptikimą galima be galo pagerinti. Tai, kas mums, žmonėms, natūralu, atrodo sudėtinga kompiuterio užduotis
- Galima būtų sukurti ir įgyvendinti daug daugiau vizualizacijų.
- Ir, žinoma, galėtų būti parašyta programa, skirta valdyti įrenginį belaidžiu būdu su šaunia vartotojo sąsaja.
Rekomenduojamas:
Nešiojami „Disco V2“-garso valdomi šviesos diodai: 11 žingsnių (su nuotraukomis)
„Portable Disco V2“-su garsu valdomi šviesos diodai: nuo to laiko, kai padariau pirmąją nešiojamąją diskoteka, nuėjau ilgą kelią į savo elektronikos kelionę. Pradinėje konstrukcijoje aš nulaužiau grandinę ant prototipo plokštės ir sugebėjau sukurti tvarkingą, mažą kišeninę diskoteką. Šį kartą aš sukūriau savo PCB ir
Paprasti ir moduliniai nešiojami žibintai!: 5 žingsniai (su nuotraukomis)
Paprasti ir moduliniai nešiojami žibintai! Prisijunkite prie visų rūšių aksesuarų ir pakeiskite spalvas, kad atitiktų aprangą/jausmus/atostogas/visus dalykus! Sunkumas: pradedantiesiems+ (lituoklis
„TiNM 2020 ZKJ“- vakarėlio skrybėlė: 10 žingsnių
„TiNM 2020 ZKJ“- vakarėlio skrybėlė: tai labai paprastas instrukcijų rinkinys, kurį sukūriau norėdamas dokumentuoti, kaip man pavyko sukurti šią linksmą „vakarėlio skrybėlę“. naudojant „Circuit Playground Express“
Interaktyvūs kiemo žibintai, takų žibintai: 3 žingsniai
Interaktyvūs kiemo žibintai, „Walkway Lights“: norėjau pastatyti kažkokius interaktyvius kiemo žibintus savo kieme. Idėja buvo ta, kad kai kas nors vaikščiojo vienu keliu, jis pradės animaciją ta kryptimi, kuria jūs einate. Pradėjau nuo „Dollar General“1,00 USD saulės lempučių
Lengvai nešiojami LED žibintai: 4 žingsniai
Lengvai dėvimi nebrangūs LED žibintai: šis projektas parodo, kaip pasigaminti keletą paprastų žibintų naudojant LED, dvi mygtukų/laikrodžių baterijas, maskavimo juostą ir segtuvą. Šviesos diodai (LED) yra naudingi dėl mažo energijos suvartojimo, ilgaamžiškumo ir mažos šilumos. Mažos lemputės gali