Îmbunătățiți coroana de Crăciun cu o matrice LED activată cu mișcare
Crăciunul este aici din nou și dacă este vacanța dvs. preferată a anului sau vă aduce într-o sudoare rece, decorațiile încep să crească. În acest an, de ce nu încorporați unele tehnologii DIY în decorațiile dvs. pentru a le face să iasă în evidență?
În acest proiect vom construi o matrice cu LED-uri 8 x 8 activată împotriva mișcării în aer, de la zero ... de sub 20 $. Este conceput să se potrivească în centrul unei coroane standard de Crăciun, deși ar putea fi folosit oriunde în casă. Și din moment ce este alimentat de la baterie, oriunde departe de casă!
Lista de componente
Pentru acest proiect veți avea nevoie de:
- Arduino.
- Am folosit Nano pentru dimensiunile sale mici, dar ați putea folosi aproape orice microcontroler compatibil cu Arduino Arduino Ghid de cumpărare: Care ar trebui să obțineți? Arduino Ghidul de cumpărare: care ar trebui să obțineți? Există atât de multe feluri de plăci de arduino, acolo vei fi iertat că ești confuz. Care ar trebui să cumpărați pentru proiectul dvs.? Să ne ajute, cu acest ghid de cumpărare Arduino! Citeste mai mult .
- 64 x LED-uri roșii.
- Rezistențe 8 x 220 Ohm.
- Senzor de mișcare PIR.
- Multe kituri de starter Arduino Ce este inclus în kitul de pornire Arduino? [Explică-i pe MakeUseOf] Ce este inclus în kitul de pornire Arduino? [MakeUseOf Explains] Am introdus hardware-ul open-source Arduino aici pe MakeUseOf, dar ai nevoie de ceva mai mult decât Arduino pentru a construi ceva din ea și de fapt începe. Arduino "kituri de starter" sunt ... Citește mai mult vin cu acestea. Am cumpărat un pachet multiplu de la Amazon pentru 10 $.
- 1 bucată de carton prototip.
- Cel folosit aici era de 9 x 7 cm, deși poți folosi orice dimensiune doriți.
- 7-12v baterie.
- Un pachet simplu de baterii este folosit aici din motive bugetare, dar un încărcător de bancă mobilă Cel mai bun Pokemon Go Power Banks Cel mai bun Pokemon Go Power Banks Pokemon Go du-te bate joc de bateria unui telefon. Stoarcerea unui pic mai mult suc de Pokemon-capturarea din telefonul dvs. necesită o bancă de alimentare. Dar care este cea mai bună baterie acolo? Citește mai mult poate dura chiar mai mult.
- Ascuțite bucăți scurte de sârmă.
- Cutie de Tupperware sau incintă similară împotriva intemperiilor.
- Asigurați-vă că acesta va fi suficient de mare pentru a se potrivi în interiorul tuturor componentelor!
- coroană de Crăciun.
- Orice va face, asigurați-vă că cutia de carcasă se va potrivi în interiorul acesteia.
- Fier de lipit și lipit.
În timp ce nu este strict necesar, deoarece ați putea să lipiți componentele direct la Nano, am găsit și un panou mic foarte util în timpul testelor. Un pistol cald lipsește, de asemenea, în a pune toate piesele împreună.
Acest proiect necesită destul de mult lipire, iar ca începător poate părea descurajant. Eu personal sunt încă un începător în lipire și am considerat că nu este atât de provocator sau consumator de timp, cum pare. Dacă sunteți, de asemenea, noi de lipit aici sunt cateva sfaturi bune pentru a vă ajuta să învățați cum să lipiți, cu aceste sfaturi simple și proiecte Aflați cum să lipiți, cu aceste sfaturi simple și proiecte Sunteți un pic intimidat de gândul de fier fierbinte și metal topit? Dacă doriți să începeți lucrul cu electronica, va trebui să învățați să lipiți. Să ne ajute. Citeste mai mult .
Dacă într-adevăr nu sunteți interesat de ideea de lipire, acest proiect este, de asemenea, posibil cu benzi LED-uri Weekend Project: Construieste un proiect Giant LED Pixel Display Weekend: Construieste un Giant LED Pixel Display Îmi place pixeli LED: luminoase, ușor de controlat, ieftin și atât de versatil. Astăzi, le vom transforma într-un afișaj de pixel mare care poate fi atârnat pe perete. Citiți mai multe sau o matrice de LED-uri gata preparate în kit-ul de pornire. Unele ajustări ale codului vor fi necesare dacă vă decideți să mergeți pe acel traseu.
Configurarea Arduino
Vom începe cu schema de circuit pentru Arduino și firele pe care le vom atașa senzorului PIR și matricei LED.
În interiorul Matricei
Acum, pentru a face matricea noastră 8 x 8 LED. Este o idee bună să începeți să creați câte un rând și o coloană a matricei, pentru a vă asigura că este exact locul pe care îl doriți pe panoul de prototipuri.
În fotografia de mai sus, toate LED-urile sunt plasate astfel încât anodele (piciorul mai lung, pozitiv) să fie în partea de sus a protoboard-ului. Acest lucru este important, deoarece vom crea coloane de anozi obișnuite prin asocierea lor și rânduri de catozi comuni (piciorul mai scurt, negativ). A face acest lucru chiar acum va salva durerile de cap mai târziu!
Vom construi o matrice catodică de rând comună, această diagramă arată cum este conectat totul.
Ar putea părea puțin cam descurajant la început, dar este o configurație destul de simplă. În fiecare rând, toți catodii sunt uniți din dreapta spre stânga și apoi atașați la unul dintre bolțurile noastre Arduino. După aceea, facem același lucru pentru fiecare coloană de anozi. În acest fel, în funcție de coloana la care aplicăm puterea și care rând se alătură la sol, putem activa orice LED individual în matrice.
Lansați lipirea
Începeți prin plasarea primului rând de LED-uri. Asigurați-vă că toți anodii sunt îndreptați spre partea superioară și răsturnați-o. Am constatat că adăugarea unui alt LED în fiecare colț și atașarea unei alte bucăți de protoboard pe partea superioară utilizând un cablu elastic au ajutat la menținerea tuturor.
Acum, unul câte unul, îndoiți piciorul catod (scurt) al fiecărui LED spre stânga, astfel încât acestea să se suprapună una cu cealaltă. Este mai ușor să porniți din partea stângă și să lucrați bine. Dacă utilizați o bucată mai mare de protoboard, le puteți lipi mai întâi la placă și le puteți conecta împreună folosind plăcuțele. Aveți grijă să nu vă alăturați niciunuia dintre catozi la alte linii de pe placă sau vreunul dintre anozi!
Repetați acest proces pentru toate cele opt rânduri, iar când ați terminat, ar trebui să aveți ceva care arată astfel:
Jumping Anozi!
Coloanele anodelor sunt puțin mai înspăimântătoare. În diagrama de mai sus, curba anodelor de fiecare dată când traversează un rând de catozi. Acest lucru se datorează faptului că ele nu pot atinge deloc rândurile. Trebuie să îndoim anozile peste rândurile catodului și să le atașăm unii pe alții. S-ar putea să observați că folosirea unui stilou pentru a îndoi picioarele ajută foarte mult.
Faceți acest lucru pentru fiecare rând de anozi și atașați un rezistor la fiecare anod de vârf. Veți găsi probabil mai ușor să puneți rezistorul în gaura următoare din protoboard și să vă alăturați tampoanelor folosind lipire. Acum ar trebui să aveți ceva de genul:
Felicitări! Matricea LED-urilor este completă. Verificați bine lipirea în acest stadiu pentru a vă asigura că nu există pauze și că niciuna dintre coloane nu atinge rândurile. Nu vă faceți griji dacă nu arăta destul, avem nevoie doar de muncă! Puteți verifica fiecare LED individual acum prin atașarea 5v la oricare dintre capetele coloanei, și măști la oricare dintre capetele rândului.
Dacă totul este bine, atașați firele la fiecare coloană și fiecare rând și atașați-le la Arduino așa cum se arată în diagrama de mai sus.
Să obținem codificarea
Deschideți ID-ul Arduino și alegeți placa și portul. Dacă sunteți nou la Arduino, verificați acest ghid pentru început. Noțiuni de bază cu Arduino: Ghidul începătorului Introducere cu Arduino: Un ghid pentru începători Arduino este o platformă open-source de prototipuri electronice, bazată pe hardware și software flexibile și ușor de utilizat. Este destinat artiștilor, designerilor, pasionaților și tuturor celor interesați să creeze obiecte sau medii interactive. Citeste mai mult
Introduceți acest cod în editor. Codul este destul de dens dacă nu sunteți familiarizat cu acesta, dar este disponibil aici complet adnotat pentru a vă ajuta să înțelegeți cum funcționează.
const [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 pixeli [8] [8]; const int refreshSpeed = 500; int countDown = refreshSpeed; int currentCharIndex = 0; typedef bool CHAR_MAP_NAME [8] [8]; const 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 noFrames = 5; const CHAR_MAP_NAME * charMap [noOfFrames] = & blank, & threedensehreein, & blank, & blank, & threedownthreein; void setup () pentru (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 < 8; y++) bool on = (*thisMap)[x][y]; if(on) pixels[x][y] = HIGH; else pixels[x][y] = LOW; currentCharIndex++; if(currentCharIndex>= noOfFrame) actualCharIndex = 0; void refreshScreen () pentru (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) pirTrigger=false; pirCountdown = pirLockTime; if(pirTrigger==true && pirCountdown > 0) refreshScreen (); countDown--; pirCountdown--; dacă (Numărătoarea inversă <= 0) countDown = refreshSpeed; screenSetup();
Partile importante pe care trebuie sa le intelegeti sunt:
refreshSpeed variabil. Această variabilă determină modul în care se reîmprospătează timpul dintre fiecare ecran. Un număr mai mare înseamnă o așteptare mai lungă.
Const CHAR_MAP_NAMEs. Aici plasați fiecare hartă de caractere (sau cadru, dacă este mai ușor să vă gândiți la ele în acest fel) pe care doriți să le afișați.
noOfFrames variabil. Aceasta determină numărul de cadre afișate într-o singură plină. Rețineți că aceasta poate fi diferită de numărul de hărți ale caracterelor. De exemplu, dacă doriți să afișați “O PISICA” va trebui doar să definiți patru cadre distincte: goale, 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 trei în jos și trei în partea stângă sus. Dacă nu se afișează corect, verificați cablarea din nou pentru a vă asigura că totul este în locul potrivit! Când adăugați propria imagine sau mesaj, este posibil să fie tăiat devreme sau să se joace prea mult timp. Încercați să schimbați pirLockTime până când acesta se joacă pentru perioada de timp dorită.
Procesul de adăugare a fiecărui cadru pe afișajul cu LED-uri poate fi un pic obositor, așa că am creat această foaie de calcul pentru a face mai ușor să creați text și imagini pentru matricea dvs. LED (faceți o copie a Fișei Google pentru a le putea edita ).
Folosind foaia de calcul, puteți copia creațiile direct în cod.
Faceți-i curajul Elementelor
Acum, că avem o matrice LED activă, avem nevoie de o cale pentru ca aceasta să supraviețuiască vremea de iarnă. În timp ce această metodă nu se poate ridica la o furtună tropicală sau poate fi dunked în piscină, ar trebui să fie suficient pentru a păstra toate elementele electronice în siguranță de la elementele.
Am folosit o cutie rotundă de Tupperware cu diametrul de 15 cm și adâncime de 6 cm, deoarece îmi potrivește perfect componentele. Tăiați o fereastră în capac puțin mai mare decât matricea LED și atașați un film din plastic transparent, asigurându-vă că nu lăsați spații pentru lichid pentru a intra înăuntru. Un plastic bun din unele ambalaje ar funcționa cel mai bine, dar asta a fost tot ce aveam. De asemenea, ați putea atașa niște suporturi pentru protoboard, deși ambele lucrări ar putea fi ușor realizate cu o bandă rezistentă la apă.
Apoi, trageți o mică gaură sub fereastră, apoi lărgiți-o cu atenție și încet, până când senzorul PIR nu poate decât să se potrivească. Vrei să se potrivească cât mai bine cu putință.
Atașați senzorul PIR și completați eventualele lacune pe care le puteți vedea cu bandă sau lipici calde.
Curățați orice bandă sau adeziv care ar putea împiedica închiderea cutiei și adăugați toate componentele în cutie împreună cu bateria. Aici a fost folosit un pachet simplu de baterii AA, conectat direct în pinul VCC al lui Nano. Câteva mici bucăți de plută au fost adăugate la exteriorul incintei pentru a ajuta la agățarea clădirii în centrul coroanei.
Și noi suntem făcuți
Odată ce cutia este sigilată, agățați-o cu coroana de Crăciun și așteptați reacțiile vizitatorilor dvs. la întâmpinarea personală de înaltă tehnologie sub $ 20! Ai putea merge chiar și cu un pas mai departe și să creezi decorațiuni minunate de decorare 3D Decorațiuni de Crăciun Printese pentru Perfect Geeky Vacanțe Decorațiuni de Crăciun printese 3D pentru Perfeziile Perfect Geeky De ce nu te salvezi niște bani în acest Crăciun și în 3D imprimă niște podoabe festive pentru casa ta? Citiți mai multe pentru alte locuri din jurul casei!
În acest proiect am construit de la zero un sistem de matrice cu LED autonom, care este activat de mișcare și poate supraviețui să fie în afară, în afară de cele mai grave condiții meteorologice. Această construcție va fi utilă mult timp după încheierea sezonului de vacanță în alte proiecte, iar aceeași tehnică ar putea fi utilizată pentru a crea carcase ieftine pentru alte proiecte.
Ai construit ceva pentru a-ți da Crăciunului o cotitură? Planificați în acest an cadouri de Crăciun cu tematică DIY? Spuneți-ne în comentariile de mai jos!
Aflați mai multe despre: Arduino, Electronics.