Publicitate
Crăciunul este aici din nou și, indiferent dacă este vacanța ta preferată a anului sau te scoate într-o transpirație rece, decorațiunile încep să se ridice. Anul acesta, de ce să nu încorporați niște tehnologii DIY în decorațiunile dvs. pentru a le face să iasă în evidență?
În acest proiect vom construi de la zero o matrică LED rezistentă la intemperii, activată în mișcare de 8 x 8... pentru sub 20 USD. Este conceput pentru a se încadra în centrul unei coroane de uși de Crăciun standard, deși ar putea fi folosit oriunde în jurul casei. Și din moment ce bateria este alimentată, oriunde departe de casă!
Lista de componente
Pentru acest proiect veți avea nevoie de:
- Arduino.
- Am folosit Nano pentru că este de dimensiuni reduse, dar puteți folosi aproape oricare Microcontroler compatibil Arduino Ghidul de cumpărare Arduino: ce placă trebuie să obțineți?Există atât de multe tipuri diferite de plăci Arduino, încât ai fi iertat că ai fost confuz. Ce ar trebui să cumperi pentru proiectul tău? Să ne ajutăm, cu acest ghid de cumpărare Arduino! Citeste mai mult .
- 64 x LED-uri roșii.
- 8 x 220 Ohm rezistențe.
- Senzor de mișcare PIR.
- Mulți Truse de început Arduino Ce este inclus într-un kit de pornire Arduino? [FaceUseOf Explică]Am introdus anterior hardware-ul Arduino open-source aici pe MakeUseOf, dar veți avea nevoie de mai mult decât doar Arduino pentru a construi ceva din el și pentru a începe efectiv. Arduino "seturile de început" sunt ... Citeste mai mult vino cu acestea. Am cumpărat un pachet multiplu de la Amazon pentru 10 dolari.
- 1 bucată de placa de prototip.
- Cel folosit aici a fost de 9 x 7 cm, deși puteți folosi orice dimensiune doriți.
- Baterie 7-12v.
- Un pachet de baterii simple este folosit aici din motive bugetare, dar a incarcator de banca mobila Cele mai bune bănci de putere Pokemon GoPokemon Go este cel care iese din bateria unui telefon. Stoarcerea unui pic de suc care captează Pokemon din telefonul dvs. necesită o bancă de energie. Dar care este cea mai bună baterie acolo? Citeste mai mult poate dura și mai mult.
- Bucăți scurte de sârmă asortate.
- Cutie Tupperware sau o carcasă similară rezistentă la intemperii.
- Asigurați-vă că va fi suficient de mare pentru a vă potrivi toate componentele din interior!
- Coroană de Crăciun.
- Orice va face, trebuie doar să vă asigurați că cutia de incintă se va potrivi în interiorul ei.
- Fier de lipit și lipit.
Deși nu este strict necesar, deoarece puteți vinde componentele direct la Nano, am găsit și o mică pană de pană foarte utilă în timpul testării. Un pistol cu clei cald ajută, de asemenea, la îmbinarea tuturor părților.
Acest proiect necesită o mulțime de lipit și, ca începător, poate părea descurajant. Eu personal sunt încă foarte începător la lipit și am considerat că nu este la fel de provocator sau consumator de timp pe cât pare. Dacă sunteți, de asemenea, noi la lipire aici sunt câteva sfaturi bune pentru a ajuta Aflați cum puteți lipi, cu aceste sfaturi și proiecte simpleEști puțin intimidat de gândul la fier fierbinte și metal topit? Dacă doriți să începeți să lucrați cu electronice, va trebui să învățați să lipiți. Să ne ajutăm. Citeste mai mult .
Dacă într-adevăr nu sunteți interesat de ideea de lipire, acest proiect este posibil și cu Benzi LED Proiect Weekend: Construiți un display gigant cu pixeli LEDÎmi plac pixelii LED: luminoși, ușor de controlat, ieftini și atât de versatili. Astăzi, le vom transforma într-un ecran mare de pixeli, care poate fi atârnat pe perete. Citeste mai mult sau o matrice LED gata pregătită pe care o puteți avea în setul de pornire. Unele ajustări ale codului vor fi necesare dacă decideți să parcurgeți această rută.
Configurarea Arduino
Vom începe cu diagrama circuitului pentru Arduino și cu firele pe care le vom conecta la senzorul PIR și matricea LED.
În interiorul Matricei
Acum să ne facem matricea cu 8 x 8 LED. Este bine să începeți să creați un rând și o coloană a matricei, pentru a vă asigura că este exact locul unde doriți pe placa de prototipare.
În fotografia de mai sus, toate LED-urile sunt plasate astfel încât anodii (piciorul mai lung, pozitiv) să fie orientate spre partea de sus a protoboardului. Acest lucru este important, deoarece vom crea coloane de anodi obișnuiți prin unirea lor și rânduri de catode comune (piciorul mai scurt, negativ). Obținerea asta chiar acum va salva durerile de cap mai târziu!
Vom construi o matrice de catoduri rând comun, această diagramă arată modul în care este conectată totul.
Poate arăta puțin descurajant la început, dar este o configurație destul de simplă. În fiecare rând, toți catodii sunt uniți de la dreapta la stânga, apoi se atașează la unul dintre pinii noștri Arduino. După aceasta, procedăm la fel pentru fiecare coloană de anodi. În acest fel, în funcție de ce coloană aplicăm puterea și de ce rând ne unim la sol, putem porni orice LED individual din tablou.
Lăsați soldarea să înceapă
Începeți să plasați primul rând de LED-uri. Asigurați-vă că toate anodurile sunt orientate spre partea de sus și răsturnați-l. Am constatat că adăugarea unui alt LED în fiecare colț și atașarea unei alte bucăți de protoboard deasupra folosind un cordon elastic a ajutat să țină totul la loc.
Acum, unu la unu îndoiți piciorul catod (scurt) al fiecărui LED spre stânga, astfel încât să se suprapună unul cu celălalt. Este cel mai ușor să începi din partea stângă și să lucrezi la dreapta. Dacă utilizați o bucată mai mare de protoboard, puteți să le lipați mai întâi pe placă și să le conectați împreună folosind plăcuțele. Aveți grijă să nu vă alăturați niciunui catod la alte linii de pe bord sau la oricare dintre anoduri!
Repetați acest proces pentru toate cele opt rânduri și, după ce ați terminat, ar trebui să aveți ceva care arată așa:
Salt anodii!
Coloanele anodurilor sunt puțin mai înțelepte. În diagrama de mai sus, anodii se curbă de fiecare dată când traversează un rând de catode. Acest lucru se datorează faptului că nu pot atinge rândurile deloc. Trebuie să îndoiți anodii peste rândurile catodului și să-i atașăm unul de altul. S-ar putea să descoperiți că folosirea unui stilou pentru a îndoi picioarele ajută foarte mult.
Faceți acest lucru pentru fiecare rând de anodi și atașați un rezistor la fiecare anod superior. Probabil veți găsi mai ușor să puneți rezistența în următoarea gaură din protoboard și să alăturați tampoanele folosind lipit. Acum ar trebui să aveți așa ceva:
Felicitări! Matricea LED este completă. Verificați bine lipirea în această etapă pentru a vă asigura că nu există pauze și că niciuna dintre coloane nu atinge rândurile. Nu vă faceți griji dacă nu arată frumos, trebuie doar să funcționeze! Puteți verifica fiecare LED individual acum prin atașarea 5v la oricare dintre capetele coloanei și a legat la oricare dintre capetele rândului.
Cu condiția ca totul să fie bine, atașați firele de conectare la fiecare coloană și la fiecare rând și atașați-le la Arduino, așa cum se arată în diagrama de mai sus.
Haideți să codăm
Deschideți ID-ul Arduino și alegeți placa și portul. Dacă sunteți nou la Arduino, verificați acest lucru Ghidul începătorului. Noțiuni introductive cu Arduino: Ghid pentru începătoriArduino este o platformă de prototipare electronică open-source bazată pe hardware și software flexibile, ușor de utilizat. Este destinat artiștilor, designerilor, pasionaților și oricui este interesat să creeze obiecte sau medii interactive. Citeste mai mult
Introduceți acest cod în editor. Este un cod destul de dens dacă nu-i cunoști, dar este disponibil aici complet adnotat pentru a ajuta la înțelegerea modului de funcționare.
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 = fals; const int pirLockTime = 12000; int pirCountdown = pirLockTime; pixeli int [8] [8]; const int refreshSpeed = 500; int countDown = refreshSpeed; int currentCharIndex = 0; tasta tipedef 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 (rând [i], OUTPUT); pinMode (col [i], OUTPUT); // senzor de mișcare pinMode (pirPin, INPUT); digitalWrite (col [i], LOW); } } void screenSetup () {const CHAR_MAP_NAME * thisMap = charMap [currentCharIndex]; for (int x = 0; x <8; x ++) {pentru (int y = 0; y <8; y ++) {bool on = (* thisMap) [x] [y]; if (on) {pixeli [x] [y] = HIGH; } else {pixeli [x] [y] = LOW; }}} currentCharIndex ++; if (currentCharIndex> = noOfFrames) {currentCharIndex = 0; }} void refreshScreen () {for (int currentRow = 0; curentRow <8; currentRow ++) {digitalWrite (rândul [currentRow], LOW); for (int currentCol = 0; curentCol <8; currentCol ++) {int thisPixel = pixeli [currentRow] [currentCol]; digitalWrite (col [currentCol], thisPixel); if (thisPixel == HIGH) {digitalWrite (col [currentCol], LOW); }} digitalWrite (rând [currentRow], HIGH); }} void loop () {val = digitalRead (pirPin); if (val == HIGH) {pirTrigger = true; } else if (val == LOW && pirCountdown <= 0) {pirTrigger = false; pirCountdown = pirLockTime; } if (pirTrigger == true && pirCountdown> 0) {refreshScreen (); countDown--; pirCountdown--; if (countDown <= 0) {countDown = refreshSpeed; screenSetup (); } } }
Părțile importante de înțeles sunt:
refreshSpeed variabil. Această variabilă determină modul în care se actualizează timpul dintre fiecare ecran. Un număr mai mare înseamnă o așteptare mai lungă.
Const CHAR_MAP_NAMEs. Acesta este locul în care așezați fiecare hartă a personajelor (sau cadru dacă este mai ușor să le gândiți în acest fel) pe care doriți să le afișați.
noOfFrames variabil. Acest lucru determină câte cadre pot fi afișate într-un joc complet. Rețineți că poate fi diferit de numărul de hărți de caractere. De exemplu, dacă doriți să afișați „A CAT”, va trebui să definiți doar patru cadre distincte: blank, an A, A C și a T.
Acum, când senzorul de mișcare detectează mișcarea, ecranul cu LED-uri ar trebui să clipească LED-ul cu trei în jos și trei în interior din partea stângă sus. Dacă nu se afișează corect, verificați din nou cablajul pentru a vă asigura că totul este la locul potrivit! Când adăugați propria imagine sau mesaj, poate fi tăiat din timp sau poate fi redat prea mult timp. Încercați să schimbați pirLockTime variabilă până când se joacă pentru perioada dorită.
Procesul de adăugare a fiecărui cadru la afișajul LED poate fi puțin obositor, așa că am creat această foaie de calcul pentru a face un pic mai ușor să creați text și imagini pentru matricea dvs. LED (faceți o copie a foii Google, astfel încât să o puteți edita).
Folosind foaia de calcul, puteți copia creațiile dvs. direct în cod.
Faceți-l să îndrăznească elementele
Acum că avem o matrice LED de lucru, avem nevoie de o modalitate pentru a supraviețui vremii de iarnă. Cu toate că această metodă nu poate face față unei furtuni tropicale sau a fost scufundată în piscină, ar trebui să fie suficient pentru a păstra toate elementele electronice în siguranță de elemente.
Am folosit o cutie rotundă Tupperware care are 15 cm în diametru și 6 cm adâncime, deoarece se potrivește perfect componentelor mele. Tăiați o fereastră în capac ușor mai mare decât matricea LED și atașați o peliculă de plastic transparentă, asigurându-vă că nu lăsați spații pentru a intra în lichid. Plasticul robust din unele ambalaje ar funcționa cel mai bine, dar asta a fost tot ce am avut. De asemenea, puteți atașa unele suporturi pentru protoboard, deși ambele lucrări se pot face cu ușurință cu o bandă rezistentă la apă.
Apoi, faceți o mică gaură sub fereastră, apoi lăsați-l cu grijă și încet, până când senzorul PIR poate trece doar. Vrei să se potrivească cât se poate de bine.
Atașează senzorul PIR și completează orice goluri pe care le poți vedea cu bandă sau lipici fierbinte.
Curățați orice bandă sau lipici care ar putea împiedica închiderea corectă a cutiei și adăugați toate componentele în cutie împreună cu bateria. Aici, a fost folosit un simplu pachet de baterii AA, conectat direct în pinul VCC al Nano. Câteva bucăți mici de plută au fost adăugate în exteriorul incintei pentru a ajuta la agățarea construcției în centrul coroanei.
Și suntem gata
Odată ce cutia este sigilată, agățați-o cu coroana de Crăciun și așteptați reacțiile vizitatorilor dvs. la bun venit personal de înaltă tehnologie sub $ 20! Ai putea chiar să mergi cu un pas mai departe și să creezi minunat Decoratiuni DIY Decorațiuni de Crăciun imprimate 3D pentru Sărbători Geeky PerfecteDe ce să nu-ți economisești niște bani în acest Crăciun și să imprimi 3D câteva podoabe festive pentru casa ta? Citeste mai mult pentru și în alte părți din jurul casei!
În acest proiect am construit de la zero un sistem de matrice LED cu conținut independent, care este activat în mișcare și poate supraviețui fiind afară, în afară de cele mai înclinate vreme. Această construcție va fi utilă mult după terminarea sezonului de vacanță în alte proiecte și aceeași tehnică ar putea fi folosită pentru a crea carcase rezistente la intemperii și pentru alte proiecte.
Ați construit ceva care să vă ofere Crăciunului o răsucire de bricolaj? Planificați cadouri de Crăciun cu tematică DIY în acest an? Spuneți-ne în comentariile de mai jos!
Ian Buckley este un jurnalist independent, muzician, interpret și producător video care locuiește la Berlin, Germania. Când nu scrie sau pe scenă, ticăiește cu electronice sau coduri DIY, în speranța de a deveni un om de știință nebun.