Hirdetés
Néhány hónappal ezelőtt, $3000 mennydörgés és villámlás A hangulatlámpák vírusszerűvé váltak a készítők közösségében. Lenyűgözően szép fény volt, de az árcédulát bárki nem tette elérhetővé, józanságukkal sértetlenül. Amit ma elkészítünk, nem pontosan ugyanaz - műalkotás helyett valami praktikusabbat készítünk, de sokkal hűvösebbé és testreszabhatóbbá válik.
Úgy döntöttem, hogy kihagyom a hangszórókat azzal a feltételezéssel, hogy valószínűleg már van jó pár hangszórója a szobádban, amelyet inkább használ, és őszintén szólva, a hangszóró lámpába helyezése nagyon furcsa. Ehelyett hozzákapcsolok egy mikrofont, amely lehetővé teszi, hogy a villám automatikusan reagáljon a hangos zajokra - akár egy valódi zivatarból, akár a számítógépről lejátszott hangszalagból vagy a sztereóból.
A teljes RGB Neopixel LED-ek (WS2812B) egy szálát is használni fogjuk, így a fehér színen kívüli színeket is reprodukálhatjuk, és minden képpont felett vezérelhetjük.
Figyelem: Az a tápegység, amelyet ebben a projektben használtam, csavaros csatlakozókkal rendelkezik, amelyek egy aktív váltakozó áramú vezetékhez csatlakoznak. Ha nem érzi magát abban, hogy csatlakoztassa a vezetéket, akkor ellenőrizze, hogy vásárolt-e teljesen zárt tápegységet. Legalább a PSU-t be kell zárnia egy biztonságos projekt dobozba.
0. lépés: Bevezetés
Itt egy bemutató videó a kész projektről. Eddig néhány különféle módot valósítottam meg, a szokásos villámtól kezdve a trippy savas felhőig és a színes elhalványuló hangulatlámpáig, amelyeket a távirányítóval lehet választani.
A teljes kód és a szükséges könyvtárak letölthetők a webhelyről ezt a Github tárolót.
1. lépés: Szüksége lesz

- WS2812B szál, általában körülbelül 50 dollárba kerül 5 méterenként. Ne aggódjon, ha van egy más típusú Neopixel szál, ezt szinte biztosan támogatja a FastLED interfész, de a vezetékezés eltérő lehet (a jel mellett a szinkronizálási vonalra is szükség lehet) példa).
- 5V, 10A + tápegység - Vettem körülbelül 15A egységet 11 dollárért. 120–240 V-os váltakozó áramot vesznek fel, és izgalmas 5 V-os kimenetet állítanak elő, amely elegendő ahhoz, hogy minden pixelt teljes fényerővel és az Arduino-val táplálja.
- Elektromos kábel, dugasz és inline kapcsoló
- Projekt burkolat
- Két Arduinos. 10 dolláros funduino klónok rendben vannak. A második a távirányításhoz szükséges, míg az első a fő logikát és a LED-eket vezérli.
- Két 2,2k (vagy annak körül) ohm ellenállás - a pontos értéknek nem számít annyira, körülbelül 1,5–47 kt körül kell működnie.
- breadboard
- TSOP4838 IR vevő
- IR távirányító - ömlesztve vásároltam mindegyik körülbelül 2 dollárt, de minden távirányítónak működnie kell kódmódosításokkal.
- Nagy mikrofon modul
- Hulladék le az MDF fát, hogy kivágja az alapját, és egy puzzle.
- Polisztirol csomagolóanyag / dobozbetét.
- Polipropilén pamut párna töltelék. Több mint elegendő húztam néhány szörnyű régi párnát. Ha ez nem egy lehetőség, akkor képesnek kell lennie új vásárlására mintegy 10 dollárért, vagy még olcsóbb pamutgyapothoz is. Mindkettővel megpróbáltam - a gyapjúnak több munkára volt szüksége ahhoz, hogy kibírja, és nem volt olyan bolyhos, de egy csipetnyi idő alatt működni fog.
- Lánc és horgok a felhő lefagyásához - 5 kg-nál többet kell tartania.
- Ragasztópisztoly alacsony hőmérsékleten
- Spray ragasztóval - ezzel könnyebben ragaszthatja a tölteléket a felhőre, de egy ragasztópisztoly is működhet.
A teljes költség körülbelül 100 dollár, az eszközöket nem számítva, de ennek nagy részét az egész házból kiszabadítottam. Az összes elektronikai alkatrész általában kapható; a mikrofon megtalálható az érzékelőkészletben vagy külön vásárolható meg.
2. lépés: Vágja le az alapot

Vágj ki egy durva alapot egy MDF-darab darabjából egy puzzle-val - a pontos alak nyilvánvalóan rajtad múlik, de valamilyen oknál fogva egy felhő vesebab alakú. Csatlakozunk ehhez néhány horgot akasztáshoz, de egyébként csak szilárd alapot biztosít az építkezéshez. A központi területet az elektronika, a PSU és a lánc átadása fogja fenntartani, így biztosítson elegendő helyet ahhoz, hogy legalább a projekt burkolatát körülvehesse néhány horoggal.
3. lépés: Réteg a polisztirolon

Ez a legnehezebb és legkreatívabb lépés, de valójában csak valami szilárd dolgot készítünk kicsit sorta- felhő alakú, hogy ráragasztja a LED-csíkot. Ragasztja a polisztirol nagy darabjait az alaprészre (és annak alá), alacsony ragasztási körülmények között a ragasztópisztollyal. Ha nincs alacsony hőmérséklete, kapcsolja ki a hőpisztolyt, és hagyja egy kicsit lehűlni, mielőtt ragasztani próbálna. Ha a hőmérséklet túl magas, akkor egyszerűen csak átolvad a csomagolóanyagon.
A következő ragasztása előtt győződjön meg arról, hogy minden darab szilárd, és a legjobb, ha többet ragaszt, mint nem elég.
Ne felejtsen el ismét hagyni egy elég nagy üreget a felhő belsejében, hogy beleférjen az elektronika, a lánc és a horgok.
4. lépés: Húzzon 3D-s felhőalapot

Faragvány kés segítségével közelítse meg a felhőt a sarkok lekerekítésével és a felesleges anyagok levágásával, amíg durva 3D-s felhő alakot nem ér el. Nem igazán számít, mennyire durva ez, mivel később mindent belefoglalunk a töltelékbe - könnyedén elrejtheti a hibákat.
5. lépés: Javítsa meg a horgokat, rendezze fel

Végül rögzítsen három vagy négy horgot az MDF-alaphoz, a felhő üregének minden sarkából. Fontos egy kis kísérleti lyukat fúrni, mivel az MDF-et nehéz egyenesen csavarni.
Mindent egy egyszerű fehér spray-réteggel adtam, hogy biztosítsák az egyenletes színű alapot, de nem vagyok biztos abban, hogy valóban szükséges volt-e.
6. lépés: Ragasztó LED csíkok

Mielőtt elkezdené ragasztót alkalmazni a LED-ekre, vagy kezdjen egy új csíkból, vagy számolja meg, hány LED-je van összesen - ki kell számítania, hány felhasználta később a programozási lépésben. Vágjon be egy kis lyukat a felhő oldalába, és dugja át a vezetékeket, amelyek képezik a LED-csík elejét a felhő üregébe. Vigyázzon, hogy a megfelelő végből indul - a LED-csíkok irány-érzékenyek, ezért ügyeljen arra, hogy a jel nyilak az üregtől távolabb kerüljenek.
Lassan dolgozva rögzítse a LED-pixeleket a polisztirol aljára kör alakban, mielőtt húzza le a szalagot az alapra, hogy lefedje az alsó részét. Ismét - nem kell itt tökéletesnek lennie, mert miután mindent eloszlatottunk és töltelékkel elfojtottuk, mindenképpen meglepően jól néz ki.
Összesen 85 LED-et használtam, vagyis valamivel több, mint 2,5 métert, miután kétszer bekerültem a fő testet, és egyetlen LED-sorozatot használtam az alján.
7. lépés: bekötési rajz

A huzalozás összetett, de könnyen bontható szakaszokra.
Először csatlakoztassa és rögzítse az áramellátást, lehetőleg egy különálló projekt esetben. Nem fogok előadást tartani az élő váltakozó áramú vezetékek biztonságáról, ezért feltételezem, hogy kezelni tudja ezt a részt, és 5V és GND vonal van tőle.
FONTOS: amikor az Arduino-t programozza és teszteli, az áramellátásának 5 V-ját elszigetelten kell tartani az Arduino-tól (a A GND-k mindegyike csatlakoztatva van) - csak a LED-csíkot kell táplálni, míg az Arduino az 5 V-os tápellátást használja USB. Amikor befejezte a programozást, az USB-t le kell választani, és már nem biztosít 5 V-ot az Arduino-hoz - ezen a ponton csatlakoztassa az 5 V-ot a tápfeszültségről az 5 V-os sínre a Breadboard.
Először csatlakoztassa a talajt és az 5 V-os csapokat minden Arduino-tól a kenyérlemez bal oldali sínéhez. Ugyanazt az áramforrást használják, függetlenül attól, hogy van-e külső PSU, vagy az egyikhez csatlakoztatott USB-t.
Ezután fejezze be az I2C huzalozási szakaszát - ez teszi lehetővé két arduinónk kommunikációját. Vigye az A4-es csapokat mindkét Arduinos-tól a kenyérlemez egyetlen sorára, majd csatlakoztasson egy 2,2k-os ellenállást az adott sorból az 5 V-os sínhez. Ismételje meg az A5-öt, külön sorban összekapcsolva, egy másik 2,2k-os ellenállással ismét 5 V-ra.
Csatlakoztassa az infravörös vevőt ezután - ellenőrizze a tűs konfigurációt, ha van másik modellje, de alapvetően a jelzőtűnek az Arduino D11-es irányába kell mennie. Töltse fel a thundercloud_ir_receiver.ino vázlat ehhez az Arduino-hoz (az összes kód itt), majd húzza ki az USB-csatlakozót, mivel már nincs rá szükség.
A másik Arduino-nál kösse össze a Data In jelzőtű a LED-sáv elejétől a D6-ig. Az Ön LED-jeinek GND-jének minden Arduinóval közösnek kell lennie, de ezen a ponton az 5V közvetlenül a PSU-ból származik.
Ehhez az Arduino-hoz is csatlakoztassa a mikrofon modult az A0-hoz. Töltsd fel a másikat thundercloud.ino vázlatot, és tartsa az USB-t egyidejűleg csatlakoztatva a hibakeresés közben. Kezdje a NUM_LEDS megfelelően változtatható.
8. lépés: Ragasztás a tömítésre

Végül ragasszuk fel a tölteléket. Nincs itt speciális technika - csak permetezze be a felhőt egy réteg ragasztóval, és ragadjon meg egy maréknyi tölteléket. A töltelékkel könnyebben dolgozhat, ha már kibogozta, hogy növelje a felületét.
Ha ugyanazt a távirányítót használta, mint én, a STROBE gomb hangreaktív felhő üzemmódba állítja; A FLASH a trippy színmód, a FADE pedig a lassan halványuló színes hangulatjelző.
9. lépés: Kód magyarázat

Miért két Arduinos? Mind az infravörös vevő programozása, mind a WS2818B pixel illesztőprogram könyvtár nagyon érzékeny az időzítésre - ha az időzítés késik, az IR jel sérült. Azáltal, hogy minden áramkört saját mikrovezérlővel lát el, és hagyjuk, hogy az I2C protokollon keresztül megbeszéljék, biztosíthatjuk az időzítés tökéletességét mindegyiknél. Találhat különálló IR modulokat is, amelyek beépített mikrovezérlővel rendelkeznek, de kutatásom szerint ezek valójában többet fizetnek, mint egy egyszerű Arduino klón és IR LED. A thundercloud_ir_receievernek nem kell magyarázatot kérnie, bár előbb érdemes felolvasni az I2C alapjait.
A fő thundercloud vezérlőn különböző működési módokat definiálunk, mint például az ON (a villámhatások nem hangosak) aktivált), CLOUD (a villámot csak a hang aktiválja), ACID (a felhő trippy színeket mutat) vagy egyszerű, egyszínű mód. Új mód meghatározásához adja hozzá a enum először nyissa fel a konzolt, és keresse meg a távirányító gombját, amelyhez hozzárendelheti - minden egyes távirányítónak ki kell nyomtatnia egy sor hibakeresést. Ban,-ben receiveEvent () módszerrel leképezzük ezeket a gombnyomásokat egy üzemmódba, tehát adjunk hozzá egy további kapcsolónyilatkozatot. Végül, főleg hurok() módszerrel ezeket az üzemmódválasztásokat különböző megjelenítési funkciókra irányítjuk.
A mikrofon simító kódja eredetileg Adafruit-tól - Egyszerűsítettük az igényeinkhez, és bekapcsoltunk egy triggert, amikor az átlagnál hangosabb zaj hallható.
10. lépés: Villámlás módok

A villámkijelzők három különféle típusú villámot kombinálnak, hogy valami kellően valósághű, vagy legalábbis a szem számára kellemes legyen. Az első típus a rés(), ahol minden LED rövid ideig bekapcsol 10-100 ms-ig. A második típus az gördülő() - ahol az egyes LED-eknek 10% -os bekapcsolódási esélyük van, és a teljes hurkot 2-10-szer megismételjük, az egyes ciklusok közötti 5-100ms-os késéssel. A harmadik típus az thunderburst (), amely a csík két különböző szakaszát választja ki, mindegyik 10-20 LED között van, ezeket a szakaszokat 3-6-szor röviden villogja. Vizsgálja meg részletesen ezeket a módszereket, hogy lássa, hogyan aktiválódnak az egyes LED-ek - a HSV színkereket az egészben használják (tehát a fehér H = 0, S = 0, V = 255). Arra bátorítanám, hogy módosítson vagy írjon új villámhordozókat, majd ossza meg őket a megjegyzésekben, ha Ön kedveli.
Minden alkalommal, amikor villám indul vagy hurok fut, a felhő véletlenszerűen választ a három villámtípus közül. Végül a Visszaállítás() módszer kikapcsolja az összes fényt, különben „emlékeznek” korábbi állapotukra.
Kérdések vagy problémák - kérjük, vegye fel a kapcsolatot a megjegyzésekkel, és minden tőlem telhetőt megteszek, hogy segítsek. Ha rendelkezik Github fiókjával, nyugodtan küldhet hibákat vagy problémákat a kiadások tracker helyette. Ha módosítást végzett, vagy írt néhány új világítási funkciót, kérjük, ossza meg a kódjára mutató linket Lényeg vagy pastebin.
James rendelkezik mesterséges intelligencia BSc-vel, CompTIA A + és Network + tanúsítvánnyal rendelkezik. A MakeUseOf vezető fejlesztője, és szabadidejét VR paintballon és társasjátékokon játszik. Gyerekkora óta épít PC-ket.