Reklame

Julen er her igen, og uanset om det er din foretrukne ferie i året, eller det bringer dig ud i en kold sved, er dekorationer begyndt at gå op. I år, hvorfor ikke integrere nogle DIY-teknologi i dine dekorationer for at få dem til at skille sig ud?

I dette projekt bygger vi en vejrbestandig, bevægelsesaktiveret 8 x 8 LED-matrix fra bunden... til under $ 20. Det er designet til at passe midt i en standard juledørkrans, skønt den kan bruges overalt i huset. Og da det er batteridrevet, hvor som helst væk fra huset!

Liste over dele

Til dette projekt har du brug for:

  • Arduino.
    • Jeg brugte Nano for det er lille størrelse, men du kan bruge næsten enhver Arduino-kompatibel mikrocontroller Arduino Købsvejledning: Hvilket bord skal du få?Der er så mange forskellige slags Arduino-tavler derude, du vil blive tilgitt for at blive forvirret. Hvilket skal du købe til dit projekt? Lad os hjælpe med denne Arduino-købsguide! Læs mere .
  • 64 x røde lysdioder.
  • 8 x 220 Ohm-modstande.
  • PIR bevægelsessensor.
    • Mange
      instagram viewer
      Arduino starter sæt Hvad er inkluderet i et Arduino Starter Kit? [MakeUseOf Explains]Jeg har tidligere introduceret Arduino open source-hardware her på MakeUseOf, men du har brug for mere end bare den faktiske Arduino for at bygge noget ud af det og faktisk komme i gang. Arduino "starter sæt" er ... Læs mere kom med disse. Jeg købte en multi-pack fra Amazon for $ 10.
  • 1 stk prototype bestyrelse.
    • Den, der blev brugt her, var 9 x 7 cm, selvom du kan bruge enhver størrelse du ønsker.
  • 7-12v batteri.
    • En simpel batteripakke bruges her af budgetmæssige årsager, men a mobil bankoplader De bedste Pokemon Go Power BanksPokemon Go slår pokker ud af telefonens batteri. At presse lidt mere Pokemon-fangende juice ud af din telefon kræver en power bank. Men hvad er det bedste batteri derude? Læs mere kan vare endnu længere.
  • Assorterede korte stykker tråd.
  • Tupperware-kasse eller lignende vejrbestandig kabinet.
    • Sørg for, at den er stor nok til at passe alle dine komponenter indeni!
  • Julekrans.
    • Enhver vil gøre, bare sørg for, at kabinetboksen passer ind i det.
  • Loddejern og loddejern.

Selvom det ikke var strengt nødvendigt, da du kunne lodde komponenterne direkte til Nano, fandt jeg også en lille brødbræt meget nyttig under test. En varm limpistol hjælper også med at sammensætte alle dele.

julekrans ledet matrix dele

Dette projekt kræver en hel del lodning, og som nybegynder kan det virke skræmmende. Jeg personligt er stadig meget begyndende på lodning og fandt, at det ikke var så udfordrende eller tidskrævende, som det ser ud til. Hvis du også er ny på lodning her er nogle nogle gode tip til hjælp Lær hvordan du lodder med disse enkle tip og projekterEr du lidt skræmt af tanken om et varmt jern og smeltet metal? Hvis du vil begynde at arbejde med elektronik, bliver du nødt til at lære at lodde. Lad os hjælpe. Læs mere .

Hvis du virkelig ikke er interesseret i ideen om lodning, er dette projekt også muligt med LED strimler Weekendprojekt: Byg et gigantisk LED-pixeldisplayJeg elsker LED-pixels: lys, let at kontrollere, billig og så alsidig. I dag forvandler vi dem til et stort pixeldisplay, der kan hænges på væggen. Læs mere , eller en færdiggjort LED-matrix, som du muligvis har i dit startsæt. Nogle kodejusteringer er nødvendige, hvis du beslutter at gå den rute.

Opsætning af Arduino

Vi starter med kredsløbsdiagrammet for Arduino og de ledninger, vi vil fastgøre til vores PIR-sensor og LED-matrix.

kransfritzing

Inde i matrixen

Nu for at lave vores 8 x 8 LED matrix. Det er en god ide til at begynde med at oprette en række og en søjle i matrixen, for at sikre dig, at det er nøjagtigt, hvor du vil have det på prototypetavlen.

test hvor man skal placere lysdioder

På billedet ovenfor er alle lysdioderne placeret, så anoderne (det længere, positive ben) er mod toppen af ​​protobordet. Dette er vigtigt, da vi opretter kolonner med fælles anoder ved at sammenføje dem og rækker med fælles katoder (det kortere, negative ben). At få dette lige nu sparer hovedpine senere!

Vi vil opbygge en fælles række katodematrix, dette diagram viser, hvordan det hele er forbundet.

tvivl diag

Det ser måske lidt skræmmende ud i starten, men det er en ganske enkel konfiguration. I hver række samles alle katoder fra højre mod venstre og fastgøres derefter til en af ​​vores Arduino-stifter. Herefter gør vi det samme for hver anodesøjle. På denne måde, afhængigt af hvilken søjle vi bruger strøm til, og hvilken række vi slutter til jorden, kan vi tænde en hvilken som helst individuel LED i matrixen.

Lad lodningen begynde

Start med at placere din første række LED'er. Sørg for, at alle anoder vender mod toppen, og vip den over. Jeg fandt, at tilføjelse af en ny LED i hvert hjørne og fastgørelse af et andet stykke protoboard ovenpå ved hjælp af en elastisk ledning hjalp med at holde alt på plads.

proto elastisk

Nu bøjes en efter en katodens (korte) ben på hver LED til venstre, så de alle overlapper hinanden. Det er nemmest at starte fra venstre side og arbejde til højre. Hvis du bruger et større stykke protoboard, kan du først lodde dem til brættet og forbinde dem ved hjælp af puderne. Vær forsigtig med ikke at forbinde nogen af ​​katoderne til andre linjer på tavlen eller nogen af ​​anoderne!

katodefold lodning

Gentag denne proces for alle otte rækker, og når du er færdig, skal du have noget der ligner sådan:

billede af færdige rækker

Springende anoder!

Kolonnerne med anoder er lidt mere fiddly. I diagrammet ovenfor kurver anoderne hver gang de krydser en række katoder. Dette skyldes, at de slet ikke kan røre ved rækkerne. Vi skal bøje anoder over katoderækkene og knytte dem til hinanden. Du kan opleve, at hjælp af en pen til at bøje benene hjælper meget.

ben lodde anoder

Gør dette for hver række anoder, og fastgør en modstand til hver øverste anode. Du vil sandsynligvis finde det lettere at sætte modstanden i det næste hul i protobordet og sammenføje puderne ved hjælp af lodning. Du skulle nu have noget som dette:

færdig lodning

Tillykke! LED-matrixen er komplet. Kontroller din lodning grundigt på dette trin for at sikre dig, at der ikke er nogen pauser, og at ingen af ​​søjlerne berører rækkerne. Bare rolig, hvis det ikke ser pænt ud, vi har bare brug for at det fungerer! Du kan kontrollere hver LED individuelt nu ved at fastgøre 5v til en hvilken som helst af søjleenderne og jordes til en af ​​rækkeenderne.

testmatrix

Forudsat at alt er godt, skal du fastgøre tilslutningsledninger til hver søjle og hver række og fastgør dem til din Arduino som vist i diagrammet ovenfor.

Lad os få kodning

Åbn Arduino IDE og vælg dit bord og havn. Hvis du er ny med Arduino, så tjek dette vejledning til at komme i gang. Kom godt i gang med Arduino: En begynderguideArduino er en open source-elektronikprototypeplatform baseret på fleksibel, letanvendelig hardware og software. Det er beregnet til kunstnere, designere, hobbyister og enhver, der er interesseret i at skabe interaktive objekter eller miljøer. Læs mere

Indtast denne kode i editoren. Det er ganske tæt kode, hvis du ikke kender den, men den er tilgængelig her fuldt annoteret for at hjælpe med at forstå, hvordan det fungerer.

const int række [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 = LAV; int val = 0; bool pirTrigger = falsk; const int pirLockTime = 12000; int pirCountdown = pirLockTime; int-pixels [8] [8]; const int refreshSpeed ​​= 500; int countDown = refreshSpeed; int strømCharIndex = 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] = { & blankt, & trehjulstrin, & tomt, & blankt, & trehjulstrin. }; tom opsætning () {for (int i = 0; i <8; i ++) {pinMode (række [i], OUTPUT); pinMode (col [i], OUTPUT); // bevægelsessensor pinMode (pirPin, INPUT); digitalWrite (col [i], LAV); } } void screenSetup () {const CHAR_MAP_NAME * thisMap = charMap [currentCharIndex]; for (int x = 0; x <8; x ++) {for (int y = 0; y <8; y ++) {bool on = (* dette kort) [x] [y]; hvis (til) {pixels [x] [y] = HØJ; } andet {pixels [x] [y] = LAV; }}} aktuelleCharIndex ++; if (currentCharIndex> = noOfFrames) {currentCharIndex = 0; }} void refreshScreen () {for (int currentRow = 0; nuværende række <8; currentRow ++) {digitalWrite (række [currentRow], LOW); for (int strømCol = 0; strømCol <8; currentCol ++) {int thisPixel = pixels [currentRow] [currentCol]; digitalWrite (col [currentCol], dette pixel); if (thisPixel == HØJ) {digitalWrite (col [currentCol], LOW); }} digitalWrite (række [nuværende række], HØJ); }} void loop () {val = digitalRead (pirPin); if (val == HØJ) {pirTrigger = sandt; } andet hvis (val == LAV && pirCountdown <= 0) {pirTrigger = falsk; pirCountdown = pirLockTime; } if (pirTrigger == true && pirCountdown> 0) {refreshScreen (); countDown--; pirCountdown--; if (countDown <= 0) {countDown = refreshSpeed; screenSetup (); } } }

De vigtige dele at forstå er:

Det refreshSpeed variabel. Denne variabel bestemmer, hvordan tiden mellem hver skærm skal opdateres. Et større antal betyder en længere ventetid.

Konstanten CHAR_MAP_NAMEs. Det er her du lægger hvert tegnkort (eller ramme, hvis det er lettere at tænke på dem på den måde), du vil vise.

Det noOfFrames variabel. Dette bestemmer, hvor mange rammer der skal vises i et fuldt gennemspil. Bemærk, at det kan være forskelligt fra antallet af karakterkort. For eksempel, hvis du ønskede at vise "A CAT", skulle du kun definere fire forskellige rammer: blank, en EN, a C og a T.

Når bevægelsesføleren nu registrerer bevægelse, skal LED-skærmen blinke LED'en tre ned og tre ind fra øverste venstre hjørne. Hvis det ikke vises korrekt, skal du kontrollere dine ledninger igen for at sikre dig, at alt er på det rigtige sted! Når du tilføjer dit eget billede eller din meddelelse, kan det blive afbrudt tidligt eller spille for længe. Prøv at ændre pirLockTime variabel, indtil den spiller i den mængde tid, du ønsker.

Processen med at tilføje hver ramme til LED-displayet kan være lidt kedelig, så vi har oprettet dette regneark for at gøre det lidt lettere at oprette tekst og billeder til din LED-matrix (lav en kopi af Google Sheet, så du kan redigere den).

Ved hjælp af regnearket kan du kopiere dine kreationer direkte til koden.

Gør det modigt elementerne

Nu hvor vi har en fungerende LED-matrix, har vi brug for en måde, hvorpå den kan overleve vintervejret. Selvom denne metode muligvis ikke kan modstå en tropisk storm eller blive dunket i poolen, bør det være nok til at holde al elektronikken beskyttet mod elementerne.

Jeg brugte en rund Tupperware-kasse, der er 15 cm i diameter og 6 cm dyb, da den passer perfekt til mine komponenter. Klip et vindue i låget, der er lidt større end din LED-matrix, og fastgør en klar plastfilm til det, og sørg for at efterlade ingen plads til væske at komme ind. Robust plast fra nogle emballager ville fungere bedst, men det var alt hvad jeg havde. Du kan også fastgøre nogle monteringer til protoboard, skønt begge job let kunne udføres med stærkt vandtæt tape.

vejrbestandigt

Lav derefter et lille hul under vinduet, udvid det forsigtigt og langsomt, indtil din PIR-sensor kun lige kan komme igennem. Du ønsker, at det skal passe så tæt som muligt.

skåret hul

Tilslut din PIR-sensor, og udfyld eventuelle huller, du kan se med tape eller varm lim.

lim pir

Rengør ethvert bånd eller lim, der kan forhindre kassen i at lukke ordentligt, og tilføj alle dine komponenter til kassen sammen med dit batteri. Her blev en simpel AA-batteripakke brugt, sat direkte i Nano-VCC-stiften. Et par små stykker kork blev føjet til ydersiden af ​​indkapslingen for at hjælpe med at hænge bygningen i midten af ​​kransen.

Og vi er færdig

Når kassen er forseglet, skal du hænge den med din julekrans og vente på dine besøgende reaktioner på din high tech under $ 20 personlig velkomst! Du kan endda gå et skridt videre og skabe fantastisk DIY-dekorationer 3D-trykte julepynt til perfekte nørdede ferierHvorfor ikke spare dig selv noget kontant denne jul og 3D-print nogle festlige pryd til dit hjem? Læs mere for andre steder rundt om i huset!

færdig før matrix julekrans diy

I dette projekt har vi bygget et selvstændigt LED-matrixsystem fra bunden, der er bevægelsesaktiveret og kan overleve at være udenfor i alt undtagen det mest dårlige vejr. Denne bygning vil komme i brug længe efter feriesæsonen er forbi i andre projekter, og den samme teknik kan også bruges til at skabe billige vejrbestandige indkapslinger til andre projekter også.

Har du bygget noget for at give din jul en DIY-vri? Planlægger du nogen DIY-julegaver i år? Fortæl os det i kommentarerne nedenfor!

Ian Buckley er freelance journalist, musiker, kunstner og videoproducent bosiddende i Berlin, Tyskland. Når han ikke skriver eller er på scenen, tænker han med DIY-elektronik eller kode i håbet om at blive en gal videnskabsmand.