Hirdetés
Megint itt van a karácsony, és függetlenül attól, hogy ez az év kedvenc ünnepe, vagy hideg verejtékben hozza ki téged, a dekorációk egyre inkább felmennek. Ebben az évben miért nem építene be néhány DIY technológiát a dekorációba, hogy kitűnjön?
Ebben a projektben időjárásálló, mozgással aktivált 8 x 8 LED-es mátrixot építünk a semmiből… kevesebb, mint 20 dollárért. Úgy tervezték, hogy illeszkedjen a szokásos karácsonyi ajtókoszorú közepébe, bár a ház körül bárhol felhasználható. És mivel akkumulátorral működik, bárhol a házon kívül is!
Alkatrész lista
Ehhez a projekthez szüksége lesz:
- Arduino.
- Én használtam a nano mert kicsi, de szinte bármilyen felhasználható Arduino-kompatibilis mikrovezérlő Arduino vásárlási útmutató: Melyik táblát szerezze be?Olyan sokféle Arduino tábla van odakint, bocsánatot kapnak a zavarodásra. Melyiket vásárolja meg a projektjéhez? Segítsen nekünk ezzel az Arduino vásárlási útmutatóval! Olvass tovább .
- 64 x piros LED-ek.
- 8 x 220 ohm ellenállások.
- PIR mozgásérzékelő.
- Sok Arduino indítókészletek Mit tartalmaz egy Arduino kezdőkészlet? [MakeUseOf magyarázat]Korábban már bemutattam az Arduino nyílt forráskódú hardvert itt a MakeUseOf-on, de nemcsak a tényleges Arduino-ra van szükséged, hogy valamit beépítsen belőle, és valóban elinduljon. Az Arduino "indítókészletek" ... Olvass tovább gyere ezekkel. Vettem egy multi-pack csomagot Amazon 10 dollárért.
- 1 darab prototípus tábla.
- Az itt használt méret 9 x 7 cm volt, bár bármilyen méretet használhat.
- 7-12v akkumulátor.
- Költségvetési okokból itt használunk egy egyszerű akkumulátort, de a mobil bank töltő A legjobb Pokemon Go teljesítményű bankokA Pokemon Go veri a telefon akkumulátorából. Kicsit több Pokemon-gyomor levélnek a telefonjához történő kinyomásához energiabank szükséges. De mi a legjobb elem ott? Olvass tovább még hosszabb ideig is tarthat.
- Válogatott rövid darab huzal.
- Tupperware doboz vagy hasonló időjárásálló ház.
- Ügyeljen arra, hogy elég nagy lesz-e ahhoz, hogy minden alkatrész belsejébe beleférjen!
- Karácsonyi koszorú.
- Bármilyen megteszi, csak ellenőrizze, hogy a doboz belefér-e benne.
- Forrasztópáka és forrasztható.
Bár ez nem feltétlenül szükséges, mivel az alkatrészeket közvetlenül a Nano-hoz forraszthatja, a tesztelés során nagyon hasznosnak találtam egy kis kenyérlemezt is. A forró ragasztópisztoly segít az összes alkatrész összeillesztésében.
Ez a projekt meglehetősen sok forrasztást igényel, és kezdőként ijesztőnek tűnik. Személy szerint én még mindig kezdõ vagyok a forrasztás területén, és úgy találtam, hogy ez nem olyan kihívást vagy idõigényes, mint amilyennek látszik. Ha még nem ismeri a forrasztást, itt van néhány jó tippeket segíthet Megtanulja, hogyan kell forrasztani ezekkel az egyszerű tippekkel és projektekkelKicsit megfélemlített egy forró vas és olvadt fém gondolata? Ha el akar kezdeni dolgozni az elektronikával, meg kell tanulnia forrasztani. Segítsünk. Olvass tovább .
Ha valóban nem érdekli a forrasztás gondolata, akkor ez a projekt is lehetséges LED csíkok Hétvégi projekt: készítsen egy óriási LED pixel kijelzőtSzeretem a LED pixeleket: fényes, könnyen kezelhető, olcsó és sokoldalú. Ma nagy pixel-kijelzővé alakítjuk őket, amelyet a falra lehet lógni. Olvass tovább , vagy egy kész LED mátrix, amely lehet az indítókészletben. Néhány kódbeállításra lesz szükség, ha úgy dönt, hogy ezt az utat választja.
Az Arduino felállítása
Kezdjük az Arduino kapcsolási rajzával és a vezetékekkel, amelyeket a PIR érzékelőhöz és a LED mátrixhoz erősítünk.
A mátrixon belül
Most készítsd el a 8 x 8 LED-es mátrixunkat. Nagyon jó ötlet a mátrix egy sorának és egy oszlopának létrehozásával kezdeni, hogy megbizonyosodjon arról, hogy pontosan ott van, ahol szeretné.
A fenti képen az összes LED úgy van elrendezve, hogy az anódok (a hosszabb, pozitív láb) az előtag teteje felé nézzenek. Ez fontos, mivel közös anódok oszlopokat hozunk létre, összekapcsolva őket, és a közös katódok sorát (a rövidebb, negatív láb). Ha ezt most megszerezte, később fejfájást takaríthat meg!
Építeni fogunk egy közös sor katódmátrixot, ez az ábra megmutatja, hogyan van összekötve.
Először kissé félelmetesnek tűnik, de ez elég egyszerű konfiguráció. Mindegyik sorban az összes katódot jobbról balra összekapcsoljuk, majd az egyik Arduino csapunkhoz rögzítjük. Ezután ugyanezt tesszük az anódok minden oszlopára. Ily módon, attól függően, hogy melyik oszlopra tápláljuk az energiát, és mely sorhoz csatlakozunk a talajhoz, bekapcsolhatunk minden egyes LED-et a tömbben.
Hagyja kezdeni a forrasztást
Kezdje az első LED sor elhelyezésével. Győződjön meg arról, hogy az összes anód a teteje felé néz, és fordítsa rá. Megállapítottam, hogy minden egyes sarokba egy újabb LED hozzáadása, és egy másik protoboard rögzítése a tetejére egy rugalmas zsinór segítségével segít mindent a helyben tartani.
Most egyenként hajlítsa meg az egyes LED-ek katódos (rövid) lábát balra úgy, hogy mindegyik átfedésben legyen. A legegyszerűbb balról indulni és jobbról dolgozni. Ha nagyobb darab protoboard-ot használ, először megforraszthatja azokat a táblához, és összekapcsolhatja azokat a párna segítségével. Vigyázzon, ne csatlakozzon a katódokhoz a táblán szereplő bármely más vonalhoz vagy az anódokhoz!
Ismételje meg ezt a folyamatot mind a nyolc sorra, és ha végzett, akkor rendelkeznie kell valamivel, amely így néz ki:
Ugrás anódok!
Az anódok oszlopai kissé rezegtettek. A fenti ábrán az anódok görbéje minden egyes katódsor átlépésekor megtörténik. Ennek oka az, hogy egyáltalán nem tudják megérinteni a sorokat. Az anódokat meg kell hajlítani a katódsorok felett, és egymáshoz kell rögzíteni. Előfordulhat, hogy egy toll használata a lábak hajlításához sokat segít.
Ezt tegye minden anódsorra, és csatlakoztasson ellenállást minden egyes felső anódhoz. Valószínűleg könnyebb lesz elhelyezni az ellenállást a protoboard következő lyukába, és forrasztással csatlakozni az párnákhoz. Most kell valami ilyesmire:
Gratulálunk! A LED mátrix kész. Ellenőrizze alaposan a forrasztást ebben a szakaszban, hogy megbizonyosodjon arról, hogy nincs-e törés, és hogy egyik oszlop sem érinti-e a sorokat. Ne aggódjon, ha nem néz ki jól, csak működéshez kell! Most ellenőrizheti az egyes LED-eket úgy, hogy az 5v-ot hozzáteszi az oszlop bármelyik végéhez és földelni a sor bármelyik végéhez.
Ha minden rendben van, csatlakoztasson minden egyes oszlophoz és sorhoz akassza a vezetékeket, majd rögzítse azokat az Arduino-hoz a fenti ábra szerint.
Menjünk kódoláshoz
Nyissa meg az Arduino IDE-t, és válassza ki a táblát és a portot. Ha még nem ismeri Arduino-t, nézd meg ezt kezdő útmutató. Az Arduino használatának első lépése: Útmutató kezdőknekAz Arduino egy nyílt forráskódú elektronikai prototípus-létrehozási platform, amely rugalmas, könnyen használható hardveren és szoftveren alapul. Művészeknek, tervezőknek, amatőröknek és interaktív tárgyak vagy környezetek létrehozásának érdeklődőinek szánták. Olvass tovább
Írja be ezt a kódot a szerkesztőbe. Ez elég sűrű kód, ha nem ismeri, de elérhető itt teljesen megjelölt, hogy megértse, hogyan működik.
const int sor [8] = {2,3,4,5,6,7,8,9}; const int col [8] = {10,11,12,14,15,16,17,18}; int pirPin = 19; int pirState = LOW; int val = 0; bool pirTrigger = hamis; const int pirLockTime = 12000; int pirCountdown = pirLockTime; int pixelek [8] [8]; const int refreshSpeed = 500; int countDown = refreshSpeed; int currentCharIndex = 0; typedef bool CHAR_MAP_NAME [8] [8]; const CHAR_MAP_NAME üres = {{0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, }; const CHAR_MAP_NAME threedownthreein = {{0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, }; const int noOfFrames = 5; const CHAR_MAP_NAME * charMap [noOfFrames] = { & üres, & threedownthreein, & üres, & üres, & threedownthreein. }; void setup () {for (int i = 0; i <8; i ++) {pinMode ([i] sor, OUTPUT); pinMode (oszlop [i], KIMENET); // mozgásérzékelő pinMode (pirPin, INPUT); digitalWrite (oszlop [i], LOW); } } void screenSetup () {const CHAR_MAP_NAME * thisMap = charMap [currentCharIndex]; mert (int x = 0; x <8; x ++) {mert (int y = 0; y <8; y ++) {bool on = (* thisMap) [x] [y]; if (be) {pixel [x] [y] = HIGH; } else {pixel [x] [y] = LOW; }}} currentCharIndex ++; if (currentCharIndex> = noOfFrames) {currentCharIndex = 0; }} void refreshScreen () {for (int currentRow = 0; currentRow <8; currentRow ++) {digitalWrite (sor [currentRow], LOW); for (int currentCol = 0; currentCol <8; currentCol ++) {int thisPixel = pixel [currentRow] [currentCol]; digitalWrite (oszlop [currentCol], thisPixel); if (thisPixel == HIGH) {digitalWrite (oszlop [currentCol], LOW); }} digitalWrite (sor [currentRow], HIGH); }} void loop () {val = digitalRead (pirPin); if (val == HIGH) {pirTrigger = true; } egyébként, ha (val == LOW && pirCountdown <= 0) {pirTrigger = false; pirCountdown = pirLockTime; } if (pirTrigger == true && pirCountdown> 0) {refreshScreen (); visszaszámlálás--; pirCountdown--; if (countDown <= 0) {countDown = refreshSpeed; screenSetup (); } } }
Fontos megérteni a következőket:
Az refreshSpeed változó. Ez a változó határozza meg, hogy az egyes képernyők közötti idő miként frissüljön. A nagyobb szám hosszabb várakozást jelent.
A const CHAR_MAP_NAMEs. Itt helyezi el a megjeleníteni kívánt karaktertérképet (vagy keretet, ha így könnyebb rájuk gondolkodni).
Az noOfFrames változó. Ez meghatározza, hogy egy teljes lejátszás során hány képkocka jelenik meg. Vegye figyelembe, hogy eltérhet a karaktertérképek számától. Például, ha a „CAT” képet szeretné megjeleníteni, akkor csak négy különálló keretet kell meghatároznia: üres, an A, a C és a T.
Most, amikor a mozgásérzékelő mozgást észlel, a LED-képernyőnek három LED-et lefelé és balra felfelé három be kell villannia. Ha nem jelenik meg megfelelően, ellenőrizze újra a vezetékeket, hogy megbizonyosodjon arról, hogy minden a megfelelő helyen van-e! Saját kép vagy üzenet hozzáadásakor korán levághat, vagy túl sokáig játszhat le. Próbálja meg megváltoztatni a pirLockTime változó, amíg a kívánt ideig lejátszódik.
Az egyes kereteknek a LED-kijelzőhöz történő hozzáadásának folyamata kicsit unalmas lehet, ezért létrehoztuk ez a táblázat hogy kissé könnyebb legyen szöveget és képeket létrehozni a LED-mátrix számára (készítsen egy másolatot a Google Sheetből, hogy szerkeszthesse).
A táblázat használatával az alkotásait közvetlenül a kódba másolhatja.
Legyen bátor az elemek
Most, hogy van működő LED-mátrixunk, szükségünk van arra, hogy túlélje a téli időjárást. Noha ez a módszer nem felel meg trópusi viharnak vagy a medencében elsüllyedésnek, elegendőnek kell lennie, hogy minden elektronikát biztonságban tartson az elemektől.
Egy kerek Tupperware dobozt használtam, amelynek átmérője 15 cm és mélysége 6 cm, mivel tökéletesen illeszkedik az alkotóelemeimhez. Vágja ki a LED-mátrixnál kissé nagyobb ablakot a fedélben, és rögzítsen rá egy átlátszó műanyag fóliát, ügyelve arra, hogy ne maradjon szabad hely a folyadék bejutására. Néhány csomagolásból származó rozsdamentes műanyag működne a legjobban, de ennyi volt. Rögzíthet néhány rögzítőt a protoboardhoz, bár mindkét munkát könnyű vízálló szalaggal könnyedén elvégezni.
Ezután készítsen egy kis lyukat az ablak alatt, majd óvatosan és lassan bontsa ki, amíg a PIR-érzékelő csak átjuthat. Azt akarja, hogy a lehető legszorosabban illeszkedjen.
Csatlakoztassa a PIR-érzékelőt, és töltsön ki minden látható rést szalaggal vagy forró ragasztóval.
Tisztítson meg minden olyan szalagot vagy ragasztót, amely megakadályozhatja, hogy a doboz megfelelően bezáródjon, és az akkumulátorral együtt helyezze az összes alkatrészt a dobozba. Itt egy egyszerű AA akkumulátort használtunk, közvetlenül a Nano VCC érintkezőjéhez dugva. Néhány apró parafadarabot adtak a kamra külsejéhez, hogy segítsék a koszorú közepén az építkezés lógását.
És készen vagyunk
Miután a dobozt lepecsételték, tegye le karácsonyi koszorújával, és várja meg, amíg a látogatók reagálnak a csúcstechnológiájának 20 dolláros személyes üdvözletére! Még egy lépéssel tovább haladhat, és félelmetes lehet DIY dekorációk 3D-ben nyomtatott karácsonyi díszek a tökéletes geeky ünnepekhezMiért nem ment magának pénzt ezen a karácsonyon, és 3D-ben kinyomtat néhány ünnepi díszítését otthona számára? Olvass tovább másutt a ház körül is!
Ebben a projektben egy önálló LED mátrix rendszert építettünk be a semmiből, amely mozgást aktivál és képes túlélni azáltal, hogy kívül esik, kivéve a leggyengébb időjárást. Ez az építkezés sokkal később lesz hasznos, ha az ünnepi idény más projektekben lejár, és ugyanezt a technikát lehetne használni olcsó időjárási körülmények közötti burkolatok készítéséhez más projektekhez is.
Építettél valamit, ami karácsonyra készíthet barkácsolást? Tervez egy DIY témájú karácsonyi ajándékot ebben az évben? Tudassa velünk az alábbi megjegyzésekben!
Ian Buckley egy szabadúszó újságíró, zenész, előadóművész és videó producer, Berlinben, Németországban. Amikor még nem ír vagy színpadon, akkor botrányozza a barkácsolás elektronikáját vagy kódját, abban a reményben, hogy őrült tudós lesz.