Skelbimas

Po kelių mėnesių atgal, doleris3000 griaustinių ir žaibų nuotaikos lemputė virėjų virė visuomenėje. Tai buvo stulbinančiai graži lemputė, tačiau kainų etiketė nepaliko to niekam prieinama, nepažeidžiant jų sveiko proto. Tai, ką mes pagaminsime šiandien, nėra visiškai tas pats - vietoj meno kūrinio mes darome ką nors praktiškesnio, tačiau jis taps daug šaunesnis ir labiau pritaikomas.

Aš nusprendžiau praleisti garsiakalbius, darydamas prielaidą, kad turbūt savo kambaryje jau turite gerą garsiakalbių porą, kurią verčiau naudoti, o atvirai kalbant, įdėti kolonėlę į lempą yra savotiškai keista. Vietoje to pridėsiu mikrofoną, kuris leis žaibui automatiškai reaguoti į garsius triukšmus - nuo tikro perkūnijos, garso takelio, atkuriamo iš jūsų kompiuterio, ar stereo.

Taip pat ketiname naudoti pilnų RGB „Neopixel“ šviesos diodų (WS2812B) juostą, kad galėtume atkurti ne baltos spalvos spalvas ir valdyti kiekvieną pikselį.

Įspėjimas: maitinimo šaltinis, kurį aš panaudojau šiame projekte, turi sraigtinius gnybtus, jungiamus prie gyvos kintamosios srovės laido. Jei neturite patikimo laido kištuko, įsitikinkite, kad nusipirkote visiškai uždarą maitinimo šaltinį. Bent jau turėsite įterpti PSU saugioje projekto dėžutėje.

instagram viewer

0 žingsnis: Įvadas

Štai demonstracinis vaizdo filmas apie baigtą projektą. Iki šiol įgyvendinau kelis skirtingus režimus, pradedant nuo standartinio žaibo ir baigiant drumzlinu rūgšties debesiu ir spalvinga nuotaikos lempa, kurią galima pasirinkti iš nuotolinio valdymo pulto.

Visą kodą ir reikalingas bibliotekas galite atsisiųsti iš šią „Github“ saugyklą.

1 žingsnis: jums reikės

Kaip sukurti debesies lempą su garsą reaguojančiomis žaibiškomis debesies lempų medžiagomis
  • WS2812B styga, paprastai kainuoja apie 50 USD už 5 metrus. Nesijaudinkite, jei turite kito tipo „Neopixel“ sruogą, ją beveik neabejotinai palaiko „FastLED“ sąsaja, tačiau jūsų laidai gali būti skirtingi (be signalo, jums gali reikėti sinchronizavimo linijos pavyzdys).
  • 5V, 10A + maitinimo šaltinis - Aš nusipirkau kokius 15A vienetus po 11 USD. Jie naudoja 120–240 V kintamosios srovės įvestį ir sukuria nepaprastą 5 V išvestį, kurios pakaks, kad maitintume visus mūsų pikselius visu ryškumu ir „Arduino“.
  • Elektros kabeliai, kištukas ir vidinis jungiklis
  • Projekto apvadas
  • Du Arduinos. 10 USD „Funduino“ klonai yra puikūs. Antrasis yra būtinas nuotoliniam valdymui, o pirmasis valdo pagrindinę logiką ir šviesos diodus.
  • Du 2,2k (arba apie tai) omų varžai - tiksli vertė neturi tiek reikšmės, turėtų veikti maždaug nuo 1,5k iki 47k.
  • Bandomoji Lenta
  • IR imtuvas TSOP4838
  • IR nuotolinio valdymo pultas - aš pirkau dideliais kiekiais po maždaug 2 USD, tačiau bet kuris nuotolinio valdymo pultas turėtų veikti su kodų modifikacijomis.
  • Didelis mikrofono modulis
  • Įpjaukite MDF medieną, kad iš jos išpjaustytumėte pagrindą, ir dėlionės.
  • Polistireno pakavimo medžiagos / dėžutės įdėklai.
  • Polipropileno medvilnės pagalvių įdaras. Iš kelių siaubingų senų pagalvėlių išsitraukiau daugiau nei pakankamai. Jei tai nėra pasirinkimas, turėtumėte galėti nusipirkti naujo už maždaug 10 USD arba naudoti dar pigesnę vatą. Aš bandžiau su abiem - vata prireikė daugiau darbo, norint ją erzinti, ir ji nebuvo tokia pūkuota, bet, žiupsneliu, ji veiks.
  • Grandinė ir kabliukai pakabinti debesį - turėtų sulaikyti daugiau nei 5 kg.
  • Klijų pistoletas su žemos temperatūros nustatymu
  • Purškimo klijai - tokiu būdu lengviau klijuoti įdarą ant savo debesies, tačiau taip pat gali veikti klijų pistoletas.

Bendros išlaidos yra apie 100 USD, neįskaitant įrankių, bet didžiąją dalį to aš surinkau iš namo. Visi elektronikos komponentai yra paprastai prieinami; mikrofoną galima rasti jutiklių komplekte arba nusipirkti atskirai.

2 žingsnis: supjaustykite pagrindą

Kaip sukurti debesies lempą su garsą reaguojančiu žaibo debesies žibintu 1, pjaunančiu pagrindą

Iš MDF laužo gabalo išpjaukite grubų pagrindą su pjūklu - tiksli forma akivaizdžiai priklauso nuo jūsų, bet dėl ​​kažkokių priežasčių, mano manymu, debesis yra inksto pupelių forma. Prie to pritvirtinsime keletą kabliukų, kad pakaktų, tačiau kitu atveju tai tik suteikia tvirtą pagrindą, ant kurio galima remtis. Centrinė sritis bus skirta elektronikai, PSU ir grandinei valdyti, todėl įsitikinkite, kad turite pakankamai vietos, kad bent jau projekto korpusą galėtumėte pastatyti su kai kuriais jį supančiais kabliukais.

3 žingsnis: Polistirolo sluoksnis

Kaip pastatyti debesies lempą su garso reaktyviosios žaibo debesies lempa 2 sluoksniu ant polistirolo

Tai yra sunkiausias ir kūrybingiausias žingsnis, tačiau mes tikrai kuriame tik ką nors svarbaus ir kinda-sorta debesies formos, kad būtų galima klijuoti LED juostelę. Klijuokite didelius polistirolo gabaliukus, įpakuodami ant pagrindo (ir po juo), naudodami klijų pistoletą, palaikydami žemą šilumos lygį. Jei jūsų nustatymai nėra žemi, prieš bandydami klijuoti, išjunkite šilumos pistoletą ir leiskite šiek tiek atvėsti. Jei temperatūra yra per aukšta, jūs tiesiog ištirpsite per pakavimo medžiagą.

Prieš klijuodami kitą, įsitikinkite, kad kiekvienas gabalas yra tvirtas, ir geriau klijuoti daugiau nei nepakankamai.

Vėlgi, nepamirškite palikti pakankamai didelę ertmę debesies viduje, kad tilptų elektronika, grandinė ir kabliukai.

4 žingsnis: nubraižykite 3D debesies formą

Kaip sukurti debesies lempą su garsą reaguojančiu žaibo debesies žibintu 3, iš kurio išgaunamas debesis

Drožimo peiliu priartinkite savo debesį, apvalindami kampus ir pjaustydami nereikalingą medžiagą, kol pasieksite grubią 3D debesies formą. Nesvarbu, kokia šiurkšti padėtis, nes vėliau viską apimsime įdaru - galėsite lengvai paslėpti klaidas.

5 žingsnis: sutvarkykite kablius, sutvarkykite

Kaip sukurti debesies lempą su garsu reaktyviniu žaibo debesies žibintu 4 purškiama balta spalva

Galiausiai pritvirtinkite tris ar keturis kabliukus prie MDF pagrindo, iš kiekvieno debesies ertmės kampo. Turėsite išgręžti nedidelę skylę, nes MDF sunku įsukti tiesiai į vietą.

Aš taip pat viskam daviau paprastą baltų purškiamų dažų sluoksnį, kad būtų užtikrinta vienoda spalvų bazė, tačiau nesu įsitikinęs, ar tai iš tikrųjų buvo būtina.

6 žingsnis: Klijuokite LED juosteles

Kaip pastatyti debesies lempą su garso reaktyvaus žaibo debesies lempa 5 klijais ant led juostelių

Prieš pradėdami klijuoti šviesos diodus, pradėkite nuo naujos juostelės arba suskaičiuokite, kiek šviesos diodų iš viso turite - turėsite išsiaiškinti, kiek išnaudojote vėliau programavimo veiksme. Iškirpkite mažą skylę savo debesies šone ir kiškite per laidus, kurie sudaro jūsų LED juostos pradžią, į debesies ertmę. Būkite labai atsargūs, kad pradedate nuo teisingo galo - šviesos diodų juostos yra jautrios krypčiai, todėl įsitikinkite, kad signalo rodyklės nukreiptos nuo ertmės.

Lėtai dirbdami, prieš traukdami juostelę prie pagrindo, kad uždengtumėte apatinę dalį, apskritimo pavidalu priklijuokite LED taškus prie polistireno pagrindo. Vėlgi - nereikia čia būti tobulam, nes kai mes viską išsklaidėme ir uždusome įdaru, vis tiek viskas atrodo gana stulbinamai.

Aš iš viso panaudojau 85 šviesos diodus, arba šiek tiek daugiau nei 2,5 m, du kartus apjuosdamas pagrindinį korpusą ir apačioje naudodamas vieną šviesos diodų eilutę.

7 veiksmas: laidų schema

Kaip sukurti debesies lempą su garsą reaguojančio žaibo debesies lempos laidų jungimo schema

Laidų komplektai yra sudėtingi, tačiau lengvai suskaidomi į skyrius.

Pirmiausia įjunkite ir pritvirtinkite maitinimo šaltinį, geriausia - atskiroje projekto byloje. Aš nesiruošiu jums skaityti paskaitų apie gyvų kintamųjų laidų saugumą, todėl aš manysiu, kad jūs galite tvarkyti šią dalį, o jūs turite iš jos 5 V ir GND liniją.

SVARBU: programuojant ir testuojant „Arduino“, 5 V maitinimo šaltinis turėtų likti atskirtas nuo „Arduino“ ( Vis dėlto visi GND yra prijungti) - jis turėtų maitinti tik LED juostelę, o „Arduino“ naudoja 5 V USB. Kai baigsite programavimą, USB turėtų būti atjungtas ir nebeteikia 5 V įtampos „Arduino“ - šiuo metu 5 V maitinimo šaltinį turėtumėte prijungti prie 5 V bėgio, esančio kairėje Bandomoji Lenta.

Pradėkite nuo žemės paviršiaus ir 5 V kaiščių sujungimo iš kiekvieno „Arduino“ prie kairiojo šoninio lentos bėgio. Jie naudojasi tuo pačiu energijos šaltiniu, nesvarbu, ar tai yra išorinis PSU, kurį turime, ar USB, prijungtas prie vieno iš jų.

Toliau užpildykite „I2C“ laidų skyrių - štai kas leidžia mūsų dviem Arduinos bendrauti. Paimkite A4 kaiščius iš abiejų „Arduinos“ ant vienos lentos eilutės, tada iš tos eilės prijunkite 2,2k varžą prie 5 V bėgelio. Pakartokite A5, sujungdami juos atskiroje eilutėje, su kitu 2,2k varžos vėl į 5V.

Prijunkite IR imtuvą kitą kartą - patikrinkite kaiščio konfigūraciją, jei turite kitą modelį, tačiau signalo kaištis turėtų eiti į D11 viename Arduino. Įkelkite „thundercloud_ir_receiver.ino“ eskizas šiam Arduino (visas kodas čia), tada atjunkite USB lizdą, nes mums jo nebereikia.

Iš kitos Arduino prijunkite Duomenys signalo kaištis nuo jūsų LED juostos pradžios iki D6. GND iš jūsų šviesos diodų turėtų būti įprastas su visais „Arduinos“, tačiau šiuo metu 5V ateis tiesiai iš PSU.

Taip pat prie šio Arduino prijunkite mikrofono modulį prie A0. Įkelk kitą griaustinis.ino eskizą ir kol kas derinimo metu palaikykite USB jungtį. Pradėkite keisdami NUM_LEDS kinta atitinkamai.

8 žingsnis: Klijuokite įdarą

Kaip sukurti debesies lempą su garsu reaktyvinio žaibo debesies lempa 7, klijuojančia ant įdaro

Paskutinis žingsnis - klijuokite savo įdarą. Čia nėra jokios specialios technikos - tiesiog purškite debesį klijų sluoksniu ir užgriebkite saują įdaro. Su įdaru dirbti yra lengviau, jei jau išmirkote, kad padidintumėte paviršiaus plotą.

Jei naudojote tą patį nuotolinio valdymo pultą kaip ir aš, mygtukas „STROBE“ perkelia jį į garsui reaktyvaus debesies režimą; „FLASH“ yra spalvingų spalvų režimas, o „FADE“ - lėto blukimo spalvų nuotaikos lemputė.

9 žingsnis: Kodo paaiškinimas

Kaip sukurti debesies lempą su garso reaktyviosios žaibo rūgšties debesies demonstracine versija

Kodėl du Arduinos? Tiek infraraudonųjų spindulių imtuvo programavimas, tiek „WS2818B“ vaizdo elementų tvarkyklės biblioteka yra labai jautri laikui - jei laikas vėluoja, IR signalas sugadinamas. Suteikdami kiekvienai grandinei savo mikrovaldiklį ir leisdami jiems kalbėtis per I2C protokolą, galime užtikrinti, kad kiekvienos grandinės laikas yra puikus. Taip pat galite rasti atskirų IR modulių su įmontuotu mikro valdikliu, tačiau mano tyrimais nustatyta, kad jie iš tikrųjų kainuoja daugiau nei paprastas Arduino klonas ir IR LED. „Thundercloud_ir_receiever“ nereikia reikalauti paaiškinimo, nors pirmiausia norėtumėte perskaityti „I2C“ pagrindus.

Pagrindiniame „thundercloud“ valdiklyje mes apibrėžiame skirtingus darbo režimus, tokius kaip ĮJUNGTA (žaibo efektai nėra garsiniai) aktyvuota), CLOUD (įjungiamas tik žaibas, garsas įjungiamas), ACID (debesis rodo trepias spalvas) arba paprastą vieną spalvą režimai. Norėdami apibrėžti naują režimą, pridėkite enum pirmiausia atverkite konsolę ir suraskite nuotolinio valdymo mygtuką, pagal kurį ji būtų pažymėta - kiekvienas nuotolinis paspaudimas turėtų atspausdinti derinimo eilutę. Viduje konors gautiEvent () metodą, tuos klavišų paspaudimus priskiriame režimui, todėl pridėkite ten papildomą jungiklio teiginį. Galiausiai, iš esmės kilpa () metodas, mes nukreipiame tuos režimų pasirinkimus į skirtingas rodymo funkcijas.

Iš pradžių yra mikrofono išlyginimo kodas iš Adafruit - Aš supaprastinau tai mūsų poreikiams ir pridėjau gaiduką, kai girdimas garsas, kuris yra didesnis nei vidutinis.

10 žingsnis: Žaibo režimai

Kaip sukurti debesies lempą su garsą reaguojančio žaibo debesies lempos demonstracine versija

Žaibo ekranai sujungia tris skirtingus žaibo „tipus“, kad būtų pasiektas kažkas pakankamai tikroviško ar bent jau malonaus akiai. Pirmasis tipas yra krekas(), kur kiekvienas LED trumpam įjungiamas 10–100 ms. Antrasis tipas yra valcavimas () - kai kiekvienas šviesos diodas turi 10% įsijungimo tikimybę, o visa kilpa kartojama 2-10 kartų su 5-100 ms vėlavimu tarp kiekvieno ciklo. Trečias tipas yra griaustinis (), kuris pasirenka dvi skirtingas juostos dalis, kurių kiekviena yra po 10–20 šviesos diodų, trumpai mirksi nuo 3 iki 6 kartų. Išsamiai išnagrinėkite šiuos metodus, kad sužinotumėte, kaip įjungiami atskiri šviesos diodai - visame pasaulyje naudojamas HSV spalvų ratas (taigi balta spalva yra H = 0, S = 0, V = 255). Aš raginčiau pataisyti ar parašyti naujus žaibolaidžius, tada pasidalyti jais komentaruose, jei jums patinka.

Kiekvieną kartą įjungus žaibą arba paleidžiant kilpą, debesis atsitiktinai pasirenka vieną iš trijų žaibo rūšių. Pagaliau a atstatyti () metodas išjungia visas šviesas, kitaip jos „atsimins“ savo ankstesnę būseną.

Klausimai ar problemos - prašome susisiekti su komentarais ir aš padarysiu viską, kad padėčiau. Jei turite „Github“ sąskaitą, nedvejodami rašykite triktis ar problemas išleidžia sekiklį vietoj to. Jei atlikote pakeitimus ar parašėte keletą naujų apšvietimo funkcijų, prašome bendrinti nuorodą į savo kodą Esme arba Pastebinas.

Jamesas yra dirbtinio intelekto bakalauras ir yra CompTIA A + bei Network + sertifikuotas. Jis yra pagrindinis „MakeUseOf“ kūrėjas ir laisvalaikį praleidžia žaisdamas VR dažasvydį ir stalo žaidimus. Nuo mažens jis statė kompiuterius.