Julen er her igjen, og om det er din favorittferie av året, eller det bringer deg ut i en kald svette, begynner dekorasjonene å gå opp. I år, hvorfor ikke innlemme litt DIY-teknologi i dekorasjonene dine for å få dem til å skille seg ut?
I dette prosjektet vil vi bygge en værbestandig, bevegelsesaktivert 8 x 8 LED matrise fra grunnen til ... for under $ 20. Den er designet for å passe i midten av en standard juledørkrans, selv om den kan brukes hvor som helst rundt huset. Og siden det er batteridrevet, hvor som helst vekk fra huset også!
Deleliste
For dette prosjektet trenger du:
- Arduino.
- Jeg brukte Nano for den lille størrelsen, men du kunne bruke nesten alle Arduino-kompatible mikrokontroller Arduino Buying Guide: Hvilket styre bør du få? Arduino Kjøpsguide: Hvilket styre bør du få? Det er så mange forskjellige typer Arduino boards der ute, du vil bli tilgitt for å være forvirret. Hvilken bør du kjøpe for prosjektet ditt? La oss hjelpe, med denne Arduino kjøpesiden! Les mer .
- 64 x røde lysdioder.
- 8 x 220 ohm motstander.
- PIR bevegelsessensor.
- Mange Arduino starterpakker Hva er inkludert i et Arduino Starter Kit? [MakeUseOf Forklarer] Hva er inkludert i et Arduino Starter Kit? [MakeUseOf Forklarer] Jeg har tidligere introdusert Arduino open-source hardware her på MakeUseOf, men du trenger mer enn bare den faktiske Arduino å bygge noe ut av det og faktisk komme i gang. Arduino "startpakker" er ... Les mer kom med disse. Jeg kjøpte en multi-pakke fra Amazon for $ 10.
- 1 stk prototyperbrett.
- Den som ble brukt her, var 9 x 7 cm, selv om du kan bruke hvilken som helst størrelse du vil ha.
- 7-12v batteri.
- En enkel batteripakke benyttes her av budsjett grunner, men en mobil banklader Den beste Pokemon Go Power-banken De beste Pokemon Go Power-bankene Pokemon Gå slår ut av en telefonens batteri. Klemme litt mer Pokemon-catching juice ut av telefonen krever en strømbank. Men hva er det beste batteriet der ute? Les mer kan vare enda lenger.
- Assorted korte stykker av ledning.
- Tupperware-boks eller lignende værbestandig kabinett.
- Pass på at det blir stort nok til å passe alle dine komponenter innvendig!
- Julkrans.
- Noen vil gjøre, bare sørg for at kabinettboksen passer inn i den.
- Lodding og lodding.
Selv om det ikke var strengt nødvendig som du kunne lodde komponentene direkte til Nano, fant jeg også et lite brødbrett veldig nyttig under testingen. En varm limpistol hjelper også med å sette alle delene sammen.
Dette prosjektet krever ganske mye lodding, og som en nybegynner kan det virke skremmende. Personlig er jeg fortsatt veldig nybegynner i lodding og fant det ikke å være så utfordrende eller tidkrevende som det virker. Hvis du også er ny for lodding, er det noen gode tips for å hjelpe Lær hvordan du lakker, med disse enkle tips og prosjekter Lær hvordan du lakkerer, med disse enkle tips og prosjekter Er du litt skremt av tanken på et varmt jern og smeltet metall? Hvis du vil begynne å jobbe med elektronikk, må du lære å lodde. La oss hjelpe. Les mer .
Hvis du egentlig ikke er opptatt av løsningen, er dette prosjektet også mulig med LED-striper. Weekendprosjekt: Bygg et gigantisk LED-pikselskjerm-weekendprosjekt: Bygg en gigantisk LED-pikselskjerm. Jeg elsker LED-piksler: lys, enkel å kontrollere, billig og så allsidig. I dag vil vi gjøre dem til en stor pikselskjerm som kan henges på veggen. Les mer, eller en ferdig LED-matrise som du kanskje har i startpakken. Noen kodejusteringer vil være nødvendige hvis du bestemmer deg for å gå den ruten.
Sette opp Arduino
Vi starter med kretsdiagrammet for Arduino og ledningene som vi skal knytte til vår PIR-sensor og LED-matrisen.
Inne i matrisen
Nå for å lage vår 8 x 8 LED matrise. Det er en god idé å begynne med å lage en rad og en kolonne i matrisen, for å være sikker på at det er akkurat der du vil ha det på prototyperbordet.
På bildet over er alle lysdiodene plassert slik at anodene (lengre, positive ben) er mot toppen av protobordet. Dette er viktig, da vi vil skape kolonner av vanlige anoder ved å bli med sammen, og rader med vanlige katoder (det kortere, negative benet). Å få dette akkurat nå, redder hodepine senere!
Vi skal bygge en vanlig rad-katodematrise, dette diagrammet viser hvordan alt er tilkoblet.
Det kan se litt skremmende først, men det er ganske enkelt en konfigurasjon. I hver rad er alle katodene samlet fra høyre til venstre, og deretter festes til en av våre Arduino-pinner. Etter dette gjør vi det samme for hver kolonne av anoder. På denne måten, avhengig av hvilken kolonne vi bruker strøm til, og hvilken rad vi går med i bakken, kan vi slå på en hvilken som helst individuell LED i arrayet.
La loddemåten begynne
Begynn med å plassere din første rad med lysdioder. Pass på at alle anodene vender mot toppen, og vri den over. Jeg fant at å legge til en annen lysdiode i hvert hjørne, og ved å feste et annet stykke protobord på toppen med en elastikk, hjalp det med å holde alt på plass.
Nå bøyer hverandre katoden (kort) benet til hver LED til venstre slik at de overlapper hverandre med hverandre. Det er lettest å starte fra venstre og jobbe rett. Hvis du bruker et større stykke protobord, kan du lodde dem til brettet først og koble dem sammen med pads. Vær forsiktig så du ikke blir med noen av katodene til noen andre linjer på brettet eller noen av anodene!
Gjenta denne prosessen for alle åtte rader, og når du er ferdig, bør du ha noe som ser noe ut som dette:
Hoppende anoder!
Kolonner av anoder er litt mer fiddly. I diagrammet ovenfor kurver anodene hver gang de krysser en rekke katoder. Dette er fordi de ikke kan røre rader i det hele tatt. Vi må bøye anodene over katodene og legge dem til hverandre. Du kan finne ut at ved hjelp av en penn for å bøye bena, hjelper det mye.
Gjør dette for hver rekke av anoder, og fest en motstand til hver toppanode. Du vil sikkert finne det lettere å sette motstanden i neste hull i protobordet og bli med padsene ved hjelp av lodd. Du burde nå ha noe slikt:
Gratulerer! LED-matrisen er fullført. Kontroller loddingen grundig på dette stadiet for å sikre at det ikke er noen pauser, og at ingen av kolonnene berører radene. Ikke bekymre deg hvis det ikke ser pen ut, vi trenger bare det til å fungere! Du kan sjekke hver LED individuelt nå ved å legge 5v til en av kolonnendene, og bakken til en av radene ender.
Forutsatt at alt er bra, legg kabler til hver kolonne og hver rad, og fest dem til Arduino som vist i diagrammet ovenfor.
La oss få koding
Åpne Arduino IDE og velg bord og port. Hvis du er ny på Arduino, sjekk ut denne startveiledningen. Komme i gang med Arduino: En nybegynnersveiledning Komme i gang med Arduino: En nybegynnersguide Arduino er en åpen prototypeplan for åpen kildekode basert på fleksibel, brukervennlig maskinvare og programvare. Det er ment for kunstnere, designere, hobbyister, og alle som er interessert i å lage interaktive objekter eller miljøer. Les mer
Skriv inn denne koden i redigeringsprogrammet. Det er ganske tett kode hvis du ikke er kjent med det, men det er tilgjengelig her fullt annotert for å forstå hvordan det fungerer.
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 viktige delene å forstå er:
The refreshSpeed- variabelen. Denne variabelen bestemmer hvordan tiden mellom hver skjerm oppdateres. Et større tall betyr en lengre ventetid.
Const CHAR_MAP_NAME s. Dette er hvor du legger hvert tegnet kart (eller ramme hvis det er lettere å tenke på dem på den måten) du vil vise.
NoOfFrames- variabelen. Dette bestemmer hvor mange rammer som vises i en full avspilling. Vær oppmerksom på at det kan være forskjellig fra antall tegnkort. For eksempel hvis du vil vise "A CAT", trenger du bare å definere fire forskjellige rammer: tomt, en A, en C og en T.
Nå, når bevegelsessensoren registrerer bevegelse, skal LED-skjermen blinke LED-lampen tre ned og tre inn fra øverst til venstre. Hvis det ikke vises riktig, kontroller du igjen ledningen for å sikre at alt er på riktig sted! Når du legger til ditt eget bilde eller din melding, kan det hende at det blir kuttet av tidlig, eller spill for lenge. Prøv å endre pirLockTime- variabelen til den spiller for hvor lang tid du vil ha.
Prosessen med å legge hver ramme til LED-skjermen kan være litt kjedelig, så vi har laget dette regnearket for å gjøre det litt lettere å lage tekst og bilder for LED-matrisen din (lage en kopi av Google-arket slik at du kan redigere det ).
Ved hjelp av regnearket kan du kopiere dine kreasjoner direkte inn i koden.
Gjør det modig elementene
Nå som vi har en fungerende LED-matrise, trenger vi en måte for å overleve vinterværet. Selv om denne metoden kanskje ikke står opp til en tropisk storm eller dunked i bassenget, bør det være nok å holde hele elektronikken trygt fra elementene.
Jeg brukte en rund Tupperware-boks som er 15 cm i diameter og 6 cm dyp ettersom den passer perfekt til komponentene mine. Klipp et vindu i lokket litt større enn LED-matrisen din, og fest en klar plastfilm til den, pass på at du ikke gir plass til væske for å komme inn. Stabil plast fra noen emballasje ville fungere best, men dette var alt jeg hadde. Du kan også feste noen montering på protobordet, men begge jobbene kan enkelt gjøres med sterkt vanntett tape.
Deretter skal du lage et lite hull under vinduet, og deretter forsiktig og sakte utvide den til din PIR-sensor bare kan passe gjennom. Du vil at den skal passe så tett som mulig.
Fest PIR-sensoren, og fyll inn eventuelle hull du kan se med tape eller varmt lim.
Rengjør eventuelt tape eller lim som kan hindre at boksen lukkes ordentlig, og legg til alle komponentene i esken sammen med batteriet. Her ble det brukt en enkel AA-batteripakke, plugget direkte inn i Nano VCC-pin. Noen små korkstykker ble lagt til utsiden av skapet for å hjelpe med å henge bygningen i midten av kransen.
Og vi er ferdige
Når esken er forseglet, heng den med julkransen, og vent på dine besøkers reaksjoner på din høyteknologiske under $ 20 personlig velkomst! Du kan til og med gå et skritt videre og lage flotte DIY-dekorasjoner. 3D-Trykte Juledekorasjoner for Perfekte Geekyferier. 3D-Trykte Juledekorasjoner for Perfekte Geekyferier. Hvorfor ikke spare deg selv penger denne julen og 3D-utskrift noen festlige utsmykninger til ditt hjem? Les mer for andre steder rundt huset også!
I dette prosjektet har vi bygget et selvforsynt LED matrisesystem fra grunnen av, det er bevegelse aktivert og kan overleve å være ute i det hele tatt, men det mest værende vær. Denne bygningen vil komme i bruk lenge etter at ferien er over i andre prosjekter, og samme teknikk kan brukes til å lage billige værbestandige kabinetter for andre prosjekter også.
Har du bygget noe for å gi julen en DIY vri? Planlegger du noen DIY tema julegave i år? Gi oss beskjed i kommentarene nedenfor!