Turinys:

Nešiojami vakarėlio žibintai: 12 žingsnių (su nuotraukomis)
Nešiojami vakarėlio žibintai: 12 žingsnių (su nuotraukomis)

Video: Nešiojami vakarėlio žibintai: 12 žingsnių (su nuotraukomis)

Video: Nešiojami vakarėlio žibintai: 12 žingsnių (su nuotraukomis)
Video: Baseino žiemojimas - žingsnis po žingsnio 2024, Lapkritis
Anonim
Image
Image
Idėja
Idėja

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
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ų!):

  1. Koncentriniai spalvoti apskritimai
  2. Maltos kryžius
  3. Pulsuojančios lemputės
  4. Židinys (mano asmeninis mėgstamiausias)
  5. Bėgimo žibintai
  6. Šviesūs medžiai
  7. Š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

Schema ir garso apdorojimas
Schema ir garso apdorojimas
Schema ir garso apdorojimas
Schema ir garso apdorojimas
Schema ir garso apdorojimas
Schema ir garso apdorojimas
Schema ir garso apdorojimas
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

LED ratas
LED ratas
LED ratas
LED ratas
LED ratas
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

Vizualizacijos
Vizualizacijos
Vizualizacijos
Vizualizacijos
Vizualizacijos
Vizualizacijos
Vizualizacijos
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

Palieskite mygtukų valdiklius
Palieskite mygtukų valdiklius

Yra 4 lietimui jautrūs mygtukai:

  1. Peržiūrėkite vizualizacijas ir tęskite dabartinę, kol bus pasirinkta kita (pagal numatytuosius nustatymus vizualizacijos ciklas kas 30 sekundžių)
  2. „Įš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ę
  3. Sureguliuokite mikrofono jautrumą
  4. Į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“

Mušimo aptikimas ir servo
Mušimo aptikimas ir servo

Į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

3D formos
3D formos
3D formos
3D formos
3D formos
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

Maitinimo šaltinis
Maitinimo šaltinis
Maitinimo šaltinis
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

„Bluetooth“valdymas
„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“

Valdymo programa, pagrįsta „Blynk“
Valdymo programa, pagrįsta „Blynk“
Valdymo programa, pagrįsta „Blynk“
Valdymo programa, pagrįsta „Blynk“
Valdymo programa, pagrįsta „Blynk“
Valdymo programa, pagrįsta „Blynk“
Valdymo programa, pagrįsta „Blynk“
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

Eskizai ir bibliotekos
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

Būsimi patobulinimai
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: