Julen är här igen, och om det är din favoritlov på året eller det tar dig ut i en kall svett börjar dekorationerna gå upp. I år, varför inte införliva någon DIY-teknik i dina dekorationer för att få dem att sticka ut?
I detta projekt kommer vi att bygga en väderbeständig, rörelseaktiverad 8 x 8 LED matris från grunden ... för under $ 20. Den är utformad för att passa i mitten av en vanlig juldörrkrans, men den kan användas överallt runt huset. Och eftersom det är batteridriven, var som helst bort från huset också!
Dellista
För detta projekt behöver du:
- Arduino.
- Jag använde Nano för den lilla storleken, men du kan använda nästan alla Arduino-kompatibla mikrocontroller Arduino Buying Guide: Vilket styrelse ska du få? Arduino Köpguide: Vilket styrelse ska du få? Det finns så många olika typer av Arduino brädor där ute, du skulle bli förlåtad för att vara förvirrad. Vilket ska du köpa för ditt projekt? Låt oss hjälpa till med den här Arduino-köpguiden! Läs mer .
- 64 x röda lysdioder.
- 8 x 220 ohm motstånd.
- PIR rörelse sensor.
- Många Arduino-startpaket Vad ingår i ett Arduino Starter Kit? [MakeUseOf Förklarar] Vad ingår i ett Arduino Starter Kit? [MakeUseOf Explains] Jag har tidigare introducerat Arduino open source-hårdvaran här på MakeUseOf, men du behöver mer än bara den verkliga Arduino att bygga något ut av det och faktiskt komma igång. Arduino "startpaket" är ... Läs mer kom med dessa. Jag köpte en multi-pack från Amazon för $ 10.
- 1 stycke prototyper.
- Den som användes här var 9 x 7 cm, men du kan använda vilken storlek du vill ha.
- 7-12v batteri.
- En enkel batteripaket används här av budgetskäl, men en mobil bankladdare. De bästa Pokemon Go Power-bankerna. De bästa Pokemon Go Power-bankerna. Pokemon Gå slår ut en telefons batteri. Krama lite mer Pokemon-fångande juice ur telefonen kräver en kraftbank. Men vad är det bästa batteriet där ute? Läs mer kan vara ännu längre.
- Blandade korta trådstycken.
- Tupperware-låda eller liknande väderbeständigt hölje.
- Se till att det blir tillräckligt stort för att passa alla dina komponenter inuti!
- Julkrans.
- Vilket som helst kommer att göra, bara se till att höljeskrin passar inuti den.
- Lödjärn och lödning.
Även om det inte var absolut nödvändigt eftersom du kunde lödda komponenterna direkt till Nano, hittade jag också ett litet brödbräda som var mycket användbart när du testade. En varm limpistol hjälper också till att sätta alla delar ihop.
Detta projekt kräver en hel del lödning, och som nybörjare kan det verka skrämmande. Jag är personligen fortfarande mycket nybörjare vid lödning och fann att det inte var lika utmanande eller tidskrävande som det verkar. Om du också är ny för lödning här är några bra tips för att hjälpa dig Lär dig att lödda med dessa enkla tips och projekt Lär dig hur man löds med dessa enkla tips och projekt Är du lite skrämmad av tanken på ett hett järn och smält metall? Om du vill börja arbeta med elektronik, kommer du behöva lära dig att lödda. Låt oss hjälpa. Läs mer .
Om du verkligen inte är angelägen om löddämpningen, är det här projektet också möjligt med LED-remsor. Weekendprojekt: Bygg ett jätte LED-pixelskärmsprojekt: Bygg en jätte LED-pixelskärm Jag älskar LED-pixlar: ljus, lätt att styra, billigt och så mångsidigt. Idag vänder vi dem till en stor pixeldisplay som kan hängas på väggen. Läs mer, eller en färdig LED-matris som du kanske har i startpaketet. Vissa kodjusteringar är nödvändiga om du bestämmer dig för att gå vidare.
Ställa in Arduino
Vi börjar med kretsschemat för Arduino och de ledningar som vi kommer att fästa på vår PIR-sensor och LED-matris.
Inuti matrisen
Nu för att göra vår 8 x 8 LED matris. Det är en bra idé att börja med att skapa en rad och en kolumn i matrisen för att se till att det är exakt var du vill ha det på prototyperna.
På bilden ovan är alla lysdioder placerade så att anoderna (det längre positiva benet) är mot toppen av protobordet. Detta är viktigt, eftersom vi kommer att skapa kolumner av gemensamma anoder genom att gå med ihop dem och rader av vanliga katoder (det kortare, negativa benet). Att få detta just nu sparar huvudvärk senare!
Vi kommer att bygga en gemensam rad katodmatris, detta diagram visar hur det är alla anslutna.
Det kan se lite skrämmande först, men det är en ganska enkel konfiguration. I varje rad förenas alla katoderna från höger till vänster och fästs sedan på en av våra Arduino-stiften. Därefter gör vi samma för varje anodkolonn. På så sätt, beroende på vilken kolumn vi använder ström till, och vilken rad vi går med i marken, kan vi slå på en enskild LED i matrisen.
Låt Soldering Begin
Börja med att placera din första rad av lysdioder. Kontrollera att alla anoder är vända mot toppen och vänd den över. Jag fann att lägga till en annan lysdiod i varje hörn och att fästa en annan protobord på toppen med hjälp av en snodd hjälpte till att hålla allt på plats.
Nu böjer man en efter en katodens (korta) ben på varje LED till vänster så att de överlappar varandra med varandra. Det är lättast att börja från vänster och jobba rätt. Om du använder en större protobord kan du först lödda dem till brädet och ansluta dem med padsna. Var försiktig så att du inte går med i någon av katoderna till några andra linjer på brädet eller någon av anoderna!
Upprepa denna process för alla åtta raderna, och när du är klar bör du ha något som ser något ut så här:
Hoppa anoder!
Kolonnerna av anoder är lite mer fiddly. I diagrammet ovan kurvorna anodar varje gång de korsar en rad katoder. Detta beror på att de inte alls kan röra raderna. Vi måste böja anoderna över katodraderna och fästa dem till varandra. Det kan hända att du använder en penna för att böja benen hjälper mycket.
Gör detta för varje rad av anoder, och fäst ett motstånd mot varje toppanod. Du kommer förmodligen att hitta det lättare att sätta motståndet i nästa hål i protobordet och ansluta dynorna med lödd. Du borde nu ha något så här:
Grattis! LED matrisen är klar. Kontrollera din lödning noggrant på det här steget för att se till att det inte finns några raster och att ingen av kolumnerna rör raderna. Oroa dig inte om det inte ser bra ut, vi behöver bara det att fungera! Du kan kontrollera varje LED individuellt nu genom att fästa 5v till någon av kolumnändarna och mala till någon av radändarna.
Förutsatt att allt är bra, fäst krok upp ledningar till varje kolonn och varje rad, och fäst dem på din Arduino som visas i diagrammet ovan.
Låt oss få kodning
Öppna Arduino IDE och välj ditt styrelse och port. Om du är ny på Arduino, kolla in den här kommande guiden. Komma igång med Arduino: En nybörjarhandbok Komma igång med Arduino: En nybörjarhandbok Arduino är en öppen prototypplattform för öppen källkod baserad på flexibel, lättanvänd maskinvara och programvara. Den är avsedd för artister, designers, hobbyister och alla som är intresserade av att skapa interaktiva objekt eller miljöer. Läs mer
Ange denna kod i redigeraren. Det är ganska tät kod om du inte är bekant med den, men den är tillgänglig här fullt antecknad för att hjälpa till att förstå hur det fungerar.
const int row[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 = false; const int pirLockTime = 12000; int pirCountdown = pirLockTime; int pixels[8][8]; const int refreshSpeed = 500; int countDown = refreshSpeed; int currentCharIndex = 0; typedef bool CHAR_MAP_NAME[8][8]; const CHAR_MAP_NAME blank = { {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] ={ &blank, &threedownthreein, &blank, &blank, &threedownthreein }; void setup(){ for (int i=0;i<8;i++){ pinMode(row[i], OUTPUT); pinMode(col[i], OUTPUT); //motion sensor pinMode(pirPin, INPUT); digitalWrite(col[i], LOW); } } void screenSetup(){ const CHAR_MAP_NAME *thisMap = charMap[currentCharIndex]; for (int x = 0; x< 8; x++) { for (int y = 0; y =noOfFrames){ currentCharIndex = 0; } } void refreshScreen(){ for (int currentRow = 0; currentRow< 8; currentRow++){ digitalWrite(row[currentRow], LOW); for (int currentCol = 0; currentCol< 8; currentCol++){ int thisPixel = pixels[currentRow][currentCol]; digitalWrite(col[currentCol], thisPixel); if (thisPixel == HIGH) { digitalWrite(col[currentCol], LOW); } } digitalWrite(row[currentRow], HIGH); } } void loop(){ val = digitalRead(pirPin); if (val == HIGH){ pirTrigger = true; } else if (val == LOW && pirCountdown 0) { refreshScreen(); countDown--; pirCountdown--; if(countDown<= 0) { countDown = refreshSpeed; screenSetup(); } } }
De viktiga delarna att förstå är:
Uppdateringshastigheten . Denna variabel bestämmer hur tiden mellan varje skärm uppdateras. Ett större antal betyder en längre väntan.
Const CHAR_MAP_NAME s. Här lägger du varje karaktärskarta (eller ram om det är lättare att tänka på dem på det sättet) du vill visa.
Variabeln noOfFrames . Detta bestämmer hur många ramar som ska visas i en fullständig uppspelning. Observera att det kan skilja sig från antalet karaktärskartor. Om du till exempel vill visa "A CAT" skulle du bara behöva definiera fyra separata ramar: tomt, en A, en C och en T.
Nu, när rörelsessensorn detekterar rörelse, ska LED-skärmen blinka LED-lampan tre ned och tre in från vänster till vänster. Om det inte visas korrekt, kolla in ditt kablar igen för att se till att allt är på rätt ställe! När du lägger till din egen bild eller ett meddelande kan det bli avbrutet tidigt, eller spela för länge. Försök ändra variabeln pirLockTime tills den spelas för den tid du vill ha.
Processen att lägga till varje ram till LED-skärmen kan vara lite tråkig, så vi har skapat det här kalkylbladet för att göra det lite enklare att skapa text och bilder för din LED-matris (gör en kopia av Google-arket så att du kan redigera det ).
Med kalkylbladet kan du kopiera dina skapelser direkt till koden.
Gör det modig av elementen
Nu när vi har en fungerande LED-matris behöver vi ett sätt att överleva vintervädret. Medan den här metoden kanske inte står upp till en tropisk storm eller dunked i poolen, bör det räcka för att hålla hela elektroniken säker från elementen.
Jag använde en rund Tupperware-låda som är 15 cm i diameter och 6 cm djup eftersom den passar perfekt till mina komponenter. Klipp ett fönster i locket något större än din LED-matris, och fäst en klar plastfilm till den, se till att du inte lämnar några utrymmen för vätska att komma in. Stabil plast från någon förpackning skulle fungera bäst, men det var allt jag hade. Du kan också fästa några fästen för protobordet, men båda jobben kan enkelt göras med starkt vattentät band.
Gör sedan ett litet hål under fönstret, förstärk sedan försiktigt och långsamt tills din PIR-sensor bara kan passa igenom. Du vill att den ska passa så snyggt som möjligt.
Fäst din PIR-sensor och fyll i eventuella luckor som du kan se med tejp eller varmt lim.
Rengör eventuellt tejp eller lim som kan stoppa att lådan stängs ordentligt och lägg alla komponenter till lådan tillsammans med batteriet. Här användes en enkel AA-batteripack, ansluten direkt till Nano VCC-stiftet. Några små bitar av kork tillsattes på utsidan av höljet för att hjälpa till med att hänga byggnaden i mitten av kransen.
Och vi är klara
När lådan är förseglad, häng den med din julkrans och vänta på dina besökares reaktioner på din högteknologiska under $ 20 personlig välkomst! Du kan till och med gå ett steg längre och skapa fantastiska DIY-dekorationer. 3D-Tryckta Juldekorationer för Perfekt Geeky-semester 3D-Tryckta Juldekorationer för Perfekt Geeky-Holidays Varför inte spara några pengar här jul och 3D skriva ut några festliga prydnader för ditt hem? Läs mer för andra håll runt huset också!
I det här projektet har vi byggt ett självständigt LED matrissystem från början, det är rörelseaktiverat och kan överleva att vara ute i alla utom det mest väderlösa. Denna byggnad kommer att vara användbar långt efter att semesterperioden är över i andra projekt, och samma teknik kan användas för att skapa billiga väderbeständiga höljen för andra projekt också.
Har du byggt något för att ge din jul en DIY twist? Planerar du några DIY teman julklappar i år? Låt oss veta i kommentarerna nedan!