Cuprins:

Ceas Space Invaders (la un buget!): 6 pași (cu imagini)
Ceas Space Invaders (la un buget!): 6 pași (cu imagini)

Video: Ceas Space Invaders (la un buget!): 6 pași (cu imagini)

Video: Ceas Space Invaders (la un buget!): 6 pași (cu imagini)
Video: CEA MAI RAPIDĂ MINI PTZ CCTV Cameră IEFTINĂ! 2024, Noiembrie
Anonim
Image
Image
Adunați piese
Adunați piese

Recent, am văzut o construcție grozavă de GeckoDiode și am vrut imediat să o construiesc singură. Instrucționabil este Space Invaders Desktop Clock și vă recomand să aruncați o privire după ce ați citit acest lucru.

Proiectul a fost construit aproape exclusiv din piese provenite de la Adafruit, cu o carcasă tipărită 3D și cu față tăiată cu laser. Adăugarea la toate a costului construcției devine foarte costisitoare! (aproximativ 100 GBP sau mai mult). Problema este că dacă nu dețineți o imprimantă 3D, trebuie să plătiți pentru a vă tipări modelul sau pentru a cumpăra o carcasă urâtă de pe eBay, care este adesea puțin prea mică, prea îngustă, scurtă sau opusă.

Majoritatea versiunilor mele trebuie să fie făcute pe un buget al pasionaților, iar carcasele ajung întotdeauna să fie cea mai scumpă parte. Așa că am decis să construiesc același ceas, dar cu un buget decent.

Dacă vă place să vă uitați la ceasuri ciudate, verificați ceasul meu Steampunk Voltmeter, care folosește aceleași materiale de construcție pentru incintă:-)

Pasul 1: Adunați părți

Pentru a realiza acest proiect, veți avea nevoie de următoarele. Rețineți cu materialele pentru incintă, veți avea MULTE resturi pe care le puteți utiliza în alte proiecte (ceea ce face ca costul viitoarelor construcții să fie și mai ieftin). Am încărcat fișiere PDF despre lucrurile de care aveți nevoie dacă doriți să verificați prețul etc. pe eBay.

Instrumente (presupun că le veți avea deja)

  • Ciocan de lipit
  • Solder
  • Pompa de lipit (dacă faceți o greșeală și trebuie să scoateți lipirea)
  • Pistol de lipit fierbinte
  • Lipici fierbinți
  • Cuțit manual (alias cuțit Stanley)
  • Rigla / banda de măsurare / etrierul Vernier
  • Burghiu fără fir + burghie (1 mm până la 13 mm)
  • Multi-instrument rotativ cu disc de tăiere (alias Dremel)
  • Lichid de curățare precum alcoolul izopropilic (funcționează și după bărbierit ieftin)
  • Mască de siguranță (utilizată la vopsirea prin pulverizare)

Electronică (Costul electronicelor = 13,05 GBP)

Unele dintre acestea le-am avut gratis. Jucăriile electronice vechi au aceste boxe Mylar drăguțe în interior, dacă le desfaceți. În timp ce sunteți acolo, puteți obține probabil un butoi DC și un buton.

  • Cabluri Dupont / Jumper - 0,99 GBP
  • DS1307 Modul de ceas în timp real - 0,99 GBP (aș recomanda să obțineți în schimb DS3231 acolo unde este disponibil)
  • Cablu nano + usb Arduino - 2,23 GBP
  • Difuzor Mylar de 8 Ohm - 0,99 GBP
  • Buton SPST momentan - 1,49 GBP
  • Priză cilindrică de 5,5 mm DC - 1,26 GBP
  • 5v, 0,5A alimentare DC - 2,83 GBP
  • Afișaj cu matrice de puncte MAX7219 - 3,76 GBP

Carcasă (Costul materialelor carcasei = 17,19 GBP)

  • Țeavă de scurgere pătrată de 60 mm - 5,99 GBP (va rămâne MULTE din acestea pentru mai multe proiecte)
  • Vopsea cu spray negru - 4,85 GBP
  • PVC negru (foamboard) - 2,99 GBP
  • Super lipici - 0,99 GBP
  • Capace de 60 mm - 2,37 GBP

Cost total = 30,24 GBP:-) …….. astăzi, acesta este echivalentul a 38 USD pentru orice cititor internațional.

Îmi place să lucrez cu țeava pătrată din PVC. Sunt ușor de găurit, tăiat, vopsit și am folosit unul pentru ceasul meu Steampunk.

Pasul 2: Pregătiți-vă țeava de scurgere

Pregătiți-vă țeava de scurgere
Pregătiți-vă țeava de scurgere

Marcați unde doriți să puneți lucrurile

A fost atât de ușor. Nu am folosit nimic fantezist. Mai întâi am tăiat lungimea de 2,5 m până la o dimensiune rezonabilă pentru banca mea de acasă (aproximativ 30 cm) cu un ferăstrău. Ulterior am tăiat asta cu un dremel pentru a face marginile frumoase și drepte. Apoi am sprijinit componentele pe suprafața țevii și am folosit o piață permanentă pentru a marca unde am vrut să forez și să tai. Am urmărit în jurul exteriorului matricei LED și am folosit un instrument multi-rotativ pentru a tăia o gaură pătrată pentru a se potrivi la culoare. Am folosit un etrier digital pentru a măsura diametrul butonului și butoiului DC pentru a tăia găurile de dimensiuni corecte din spate și de sus.

Tăiați o ramă

Am o mulțime de plăci din spumă din PVC așezate în jurul proiectelor anterioare. Sunt minunate pentru montarea circuitelor în carcase, folosindu-l pentru a amesteca epoxidic împreună și pentru a face alte biți și boburi. Luați o piesă de dimensiunea A4 sau A5 și tăiați un cadru pătrat de 5 mm sau o ramă pentru a încadra matricea LED. Acest lucru va ascunde orice margine vâscos pe care l-ați făcut atunci când tăiați gaura pătrată pentru matrice. Pentru aceasta am desenat un mic șablon pe Inkscape și l-am tipărit (fișier SVG atașat). Apoi l-am lipit cu bandă de mascare pe foamboard și l-am tăiat cu grijă cu un cuțit de ambarcațiuni. Este dificil să te îndrepți, îți recomand să tai mai întâi interiorul, apoi exteriorul.

Vopseste totul

Odată ce toate găurile sunt găurite și tăiate, îndepărtați marginile îndoite. Curățați suprafețele cu niște șervețele alcoolice pentru a îndepărta orice praf sau poluare (sau un aftershave ieftin dacă nu aveți IPA). Încercați și pulverizați într-o zonă bine ventilată și folosiți o mască acolo unde este posibil. Am făcut asta afară cu niște cartoane pe podea, dar nu este ideal, chiar și o briză mică poate face ca vopseaua să-ți zboare înapoi în față. Aveți grijă și purtați echipament de protecție acolo unde este posibil.

Pulverizați țeava, rama și capacele de capăt, astfel încât să fie toate de același tip de negru, apoi lăsați să se usuce câteva ore.

Pasul 3: Programați Arduino

Programează Arduino
Programează Arduino

Câteva informații despre cod

Merită GeckoDiode deoarece i-am luat codul și l-am modificat pentru a funcționa cu cipul MAX7219. Versiunea Adafruit utilizează magistrala I2C, iar MAX utilizează magistrala SPI. Pentru aceasta am folosit biblioteca MaxMatrix, pe care am descărcat-o și am instalat-o în Arduino IDE. Dacă doriți să aflați mai multe despre MaxMatrix și cum funcționează matricea LED în principal, există un tutorial foarte scurt pe HowToMechatronics.com. Matricea de LED-uri este alcătuită doar dintr-o singură culoare de LED-uri, mai degrabă decât cu un afișaj multicolor.

O frustrare pe care am avut-o este că NU există definiții clare cu privire la funcțiile bibliotecii și la ce argumente trebuie transmise fiecăruia. Din fericire am reușit să aflu ce a făcut ce prin încercare și eroare și până la urmă nu a fost prea dificil să-l fac să funcționeze corect. Primul lucru de înțeles este că trebuie să definiți câte module 8x8 sunt în matricea dvs. În codul meu, acesta este stocat într-un număr întreg numit "module" ca acesta:

"int modules = 4;"

Acesta este NUMĂRUL de module 8x8 pe care le-ați conectat împreună pe afișaj. Nu numărul de LED-uri sau ce pin utilizați datele de trimitere. Următorul lucru de reținut este că, dacă "sprite-ul" sau orice altceva acoperă toate cele patru matrice, atunci matricea de octeți trebuie definită astfel:

"octet text_start_bmp = {32, 8, … * unele date de octeți * …};"

Numerele indică cantitatea de rânduri și coloane din matrice. Cu această ocazie octetul numit „text_start_bmp” este afișat pe 32 de coloane și 8 rânduri. Numerele sunt afișate numai pe o singură matrice de 8x8, astfel încât numărul de minute 10 arată astfel:

"octet minute_ten_bmp = {8, 8, … * unele date de octeți * …};"

Invadatorii acoperă două matrice, astfel încât octetul va fi dat 16, 8 în datele de octet.

Celălalt lucru care m-a prins a fost poziționarea datelor sprite. Puteți cere Arduino să afișeze sprite-ul într-o poziție diferită X / Y pe matrice față de poziția inițială implicită. Codul arată astfel pentru minutul zero:

"matrix.writeSprite (8, 0, minute_zero_bmp);"

Un număr este ajustarea X și altul este Y. Nu-mi amintesc care dintre ele este acum, dar dacă doriți să împingeți sprite-ul în sus sau în jos cu 1 rând sau coloană, pur și simplu creșteți numărul pozitiv sau minus. Suficient de simplu pentru matricea 8x8, dar atunci când sprite-ul dvs. acoperă mai multe matrici, trebuie să setați poziția principală în consecință. Sprite-ul "POP" este prezentat mai jos:

"matrix.writeSprite (16, 0, invader_pop_bmp);"

Observați acum cum poziția de origine este 16 nu 8? Aici codul indică faptul că sprite-ul este afișat de la stânga la dreapta din poziția rând / coloană 16. Consideră că două afișaje de 8x8 sunt un singur afișaj de 16x8, chiar dacă există 4! Prin urmare, este important să vă gândiți la câte afișaje va fi afișat sprite-ul și dimensionarea corespunzătoare a matricei de octeți a fiecărui sprite. Altfel vei avea niște sprite foarte interesanți!

DS1307 RTC

Deși DS1307 funcționează bine cu biblioteca Adafruit RTClib.h, nu puteți seta manual ora care este doar o durere. Tocmai am mers cu asta pentru că a însemnat mai puțin cod de schimbat. DS1307 setează ora folosind ora și data la care a fost compilat codul de la ora computerelor dvs. În schimb, aflați cum să utilizați biblioteca DS3231 și setați-o o dată cu unul sau două minute înainte în viitor. De asemenea, are mai puțină „deriva”, astfel încât să păstreze timpul mai bine în timp. Ambele module utilizează magistrala I2C și cred că DS3231 poate fi utilizat cu RTClib.h dacă doriți să îl utilizați în continuare.

Încărcați codul

Odată ce sunteți mulțumit de cod, încărcați-l pe Arduino. Am atașat schița mea Arduino pentru considerarea dumneavoastră.

Pasul 4: Asamblarea componentelor electronice

Asamblarea electronice
Asamblarea electronice

În timp ce încărcați codul, v-aș recomanda ca elementele electronice să fie asamblate mai întâi cu fire dupont / jumper pe o placă, așa că atunci când încărcați codul, știți că totul funcționează conform intenției. Acest lucru vă permite să rezolvați orice problemă cu afișarea spritelor etc. înainte de a începe să lipiți și să lipiți. În codul meu puteți vedea că folosesc pinii digitali 4, 5, 6, 7, 9, dar îi puteți schimba dacă este necesar. Poate fi necesar să lipiți cablurile pe buton, mufa DC și difuzor, dar majoritatea ar trebui să fie conectori de tip push-push ușor.

Odată ce vă bucurați că electronica funcționează conform intenției, ar trebui să luați în considerare lipirea conexiunilor. Puteți face acest lucru cu placă de cupru / veroboard, dar pentru cantitatea mică de componente puteți lipi direct pe pinii Arduino. Va arăta ca un cuib de șobolani, dar nimeni nu va vedea în interiorul incintei odată ce este asamblat, oricum, asigurați-vă că toate părțile metalice sunt separate, nu doriți nimic scurt în carcasă.

Am făcut butonul să funcționeze atunci când pinul „mainButton” este tras jos. Am descoperit că Arduino recunoaște butonul fals apăsat atunci când dispozitivele electronice plutitoare se așează pe el. Folosind un rezistor de 10K pe butonul de apăsare și setând pinul pe "INPUT_PULLUP", am rezolvat problema.

Atașat este schema în PDF și PNG, astfel încât să știți unde să conectați pinii.

Pasul 5: Montați dispozitivele electronice și închideți-le

Montați dispozitivele electronice și închideți-le
Montați dispozitivele electronice și închideți-le
Montați dispozitivele electronice și închideți-le
Montați dispozitivele electronice și închideți-le

Pentru ceasul meu am montat electronica folosind adeziv fierbinte, dar aveți grijă să nu aplicați prea mult (electronice nu le place să fie încălzite prea mult timp). Am folosit o mică picătură de super-adeziv punctată în jurul cadrului și l-am apăsat pe partea din față. Am terminat incinta împingând capace la fiecare capăt. Desigur, puteți lipi capace de capăt pentru a închide complet ansamblul, dar am lăsat o parte a mea deschisă, astfel încât să pot accesa în continuare portul USB al arduino-ului pentru a reseta data și ora în viitor.

Pasul 6: Bucurați-vă

Bucurați-vă
Bucurați-vă
Bucurați-vă
Bucurați-vă

În general, sunt mulțumit de felul în care a ieșit, având în vedere doar niște țevi de jgheab și vopsea spray. Sper să vă placă și să-mi spuneți dacă vă puteți gândi la upgrade-uri interesante care pot fi adăugate. Aș fi interesat să știu dacă cineva poate face acest lucru mai ieftin sau dacă există un alt mod economisitor de a face o incintă pe care îl pot încerca în următorul meu proiect.

Recomandat: