INHOUDSOPGAWE:

Space Invaders -klok (met 'n begroting!): 6 stappe (met foto's)
Space Invaders -klok (met 'n begroting!): 6 stappe (met foto's)

Video: Space Invaders -klok (met 'n begroting!): 6 stappe (met foto's)

Video: Space Invaders -klok (met 'n begroting!): 6 stappe (met foto's)
Video: THE MARS - Secrets and Facts - Documentary 2024, Julie
Anonim
Image
Image
Versamel onderdele
Versamel onderdele

Onlangs het ek 'n oulike gebou van GeckoDiode gesien en ek wou dit dadelik self bou. Die Instructable is Space Invaders Desktop Clock en ek beveel aan dat u daarna kyk nadat u dit gelees het.

Die projek is byna uitsluitlik opgebou uit dele wat uit Adafruit afkomstig is met 'n 3D -gedrukte omhulsel en lasersnit. Alles bymekaar tel in die boukoste word baie duur! (ongeveer £ 100 of meer). Die probleem is dat as u nie 'n 3D -drukker besit nie, u moet betaal om u model te laat druk, of 'n lelike omhulsel van eBay moet koop, wat dikwels 'n bietjie te klein, te smal, te kort of andersom is.

Die meeste van my bouwerk moet op 'n stokperdjiebegroting gedoen word, en die omheinings is altyd die duurste. Daarom het ek besluit om dieselfde horlosie te bou, maar met 'n goeie begroting.

As u daarvan hou om na vreemde horlosies te kyk, kyk dan na my Steampunk Voltmeter-klok, wat dieselfde boumateriaal vir die omhulsel gebruik:-)

Stap 1: Versamel onderdele

Om hierdie projek te maak, benodig u die volgende. Hou die materiaal vir die omhulsel in gedagte, en u sal baie oorblyfsels hê wat u in ander projekte kan gebruik (wat die koste van toekomstige bouwerk nog goedkoper maak). Ek het PDF's opgelaai van die goed wat u benodig as u die prys, ens. Op eBay wil kontroleer.

Gereedskap (ek neem aan dat u dit reeds sal hê)

  • Soldeerbout
  • Soldeer
  • Soldeerpomp (as u 'n fout maak en soldeer moet verwyder)
  • Warm gom geweer
  • Warm gomstokkies
  • Handwerkmes (ook bekend as Stanley -mes)
  • Liniaal / maatband / Vernier -remklauw
  • Koordlose boor + boorpunte (1 mm tot 13 mm)
  • Roterende multigereedskap met snyskyf (ook bekend as Dremel)
  • Skoonmaakmiddel soos Isopropyl-alkohol (goedkoop naskeermiddel werk ook)
  • Veiligheidsmasker (gebruik tydens spuitverf)

Elektronika (koste van elektronika = £ 13,05)

Sommige hiervan het ek gratis gehad. Ou elektroniese speelgoed het hierdie mooi Mylar -luidsprekers binne as jy dit uitmekaar haal. Terwyl u daar is, kan u waarskynlik ook 'n DC -vat en 'n drukknop kry.

  • Dupont / jumper kabels - £ 0,99
  • DS1307 Real -time klokmodule - £ 0,99 (ek beveel aan dat u DS3231 in plaas daarvan kry)
  • Arduino nano + usb -kabel - £ 2,23
  • 8 Ohm Mylar -luidspreker - £ 0,99
  • SPST kortstondige drukknop - £ 1,49
  • 5.5mm DC -vataansluiting - £ 1.26
  • 5v, 0,5A DC kragbron - £ 2,83
  • MAX7219 Puntmatriksweergawe - £ 3,76

Omhulsel (koste van omhulselmateriaal = £ 17,19)

  • 60 mm vierkantige afvoerpyp - £ 5,99 (u sal nog baie hiervan oorbly vir meer projekte)
  • Swart spuitverf - £ 4,85
  • Swart PVC (skuimplank) - £ 2,99
  • Supergom - £ 0,99
  • 60 mm einddoppe - £ 2,37

Totale koste = £ 30,24:-) …….. tans is dit gelykstaande aan 38 dollar vir internasionale lesers.

Ek geniet dit om met die PVC -vierkantpyp te werk. Hulle is maklik om te boor, te sny, te verf, en ek het een vir my Steampunk -horlosie gebruik.

Stap 2: Berei u afvoerpyp voor

Berei u afvoerpyp voor
Berei u afvoerpyp voor

Merk waar jy dinge wil plaas

Dit was so maklik. Ek het niks moois gebruik nie. Eers sny ek die lengte van 2,5 m tot 'n redelike grootte vir my bank tuis (ongeveer 30 cm) met 'n haksaag. Ek het dit later met 'n dremel afgesny om die rande mooi en reguit te maak. Toe sit ek die komponente op die oppervlak van die pyp en gebruik 'n permanente mark om te merk waar ek wil boor en sny. Ek het aan die buitekant van die LED-matriks opgespoor en 'n roterende multi-instrument gebruik om 'n vierkantige gat te sny sodat dit inpas. Ek het 'n digitale remklauw gebruik om die deursnee van die drukknop en die DC -vat te meet om die gate in die agterkant en bokant van die korrekte grootte te sny.

Sny 'n ring

Ek het baie PVC -skuimplate van vorige projekte. Hulle is ideaal om stroombane in omhulsels te monteer, om dit met epoxy te meng en ander stukkies te maak. Neem 'n stuk A4 of A5 en sny 'n vierkantige omhulsel of rand van 5 mm om die LED -matriks te raam. Dit verberg alle wonderlike punte wat u gemaak het toe u die vierkantige gat vir die matriks gesny het. Hiervoor het ek 'n klein sjabloon op Inkscape geteken en dit afgedruk (SVG -lêer aangeheg). Ek plak dit dan vas met plakband op die skuimplank en sny dit versigtig om met 'n handwerkmes. Dit is moeilik om reg te kom, ek beveel aan dat u eers die binnekant sny en dan die buitekant.

Verf alles

Sodra al die gate geboor en gesny is, verwyder die gebraaide rande. Maak die oppervlaktes skoon met alkoholdoeke om stof of besoedeling te verwyder (of 'n goedkoop naskeermiddel as u geen IPA het nie). Spuit in 'n goed geventileerde area en gebruik waar moontlik 'n masker. Ek het dit buite gedoen met 'n karton op die vloer, maar dit is nie ideaal nie; selfs 'n klein briesie kan verf in jou gesig laat terugvlieg. Wees versigtig en dra waar moontlik beskermende toerusting.

Spuit die pyp, omhulsel en einddoppe sodat dit almal dieselfde tipe swart is, en laat dit dan 'n paar uur droog word.

Stap 3: Programmeer die Arduino

Program die Arduino
Program die Arduino

'N Paar inligting oor die kode

Met dank aan GeckoDiode, aangesien ek sy kode geneem het en dit verander het om saam met die MAX7219 Chip te werk. Die Adafruit -weergawe gebruik I2C -bus en die MAX gebruik die SPI -bus. Hiervoor het ek die MaxMatrix -biblioteek gebruik, wat ek afgelaai en geïnstalleer het in die Arduino IDE. As u meer wil leer oor MaxMatrix en hoe die LED -matriks hoofsaaklik werk, is daar 'n baie kort handleiding op HowToMechatronics.com. Die LED-matriks bestaan slegs uit 'n enkele kleur LED's in plaas van 'n veelkleurige skerm.

Een frustrasie wat ek ondervind het, is dat daar GEEN duidelike definisies is van wat die funksies vir die biblioteek is nie en watter argumente in elkeen aangevoer moet word. Gelukkig kon ek uitprobeer wat deur wat gedoen is, en uiteindelik was dit nie te moeilik om dit reg te laat werk nie. Die eerste ding om te verstaan, is dat u moet definieer hoeveel 8x8 modules in u matriks is. In my kode word dit gestoor in 'n heelgetal genaamd "modules" soos volg:

"int modules = 4;"

Dit is die AANTAL van 8x8 modules wat u in u skerm gekoppel het. Nie die aantal LED's of watter pen u die stuurdata gebruik nie. Die volgende ding om te onthou is dat as u 'sprite' of wat ook al vier matrikse dek, die byte -skikking so gedefinieer moet word:

"byte text_start_bmp = {32, 8, …*'n paar byte data*…};"

Die getalle dui die hoeveelheid rye en kolomme in die matriks aan. By hierdie geleentheid word die greep met die naam "text_start_bmp" in 32 kolomme en 8 rye vertoon. Die getalle word slegs op 'n enkele 8x8 -matriks vertoon, sodat die minuutgetal 10 so lyk:

"byte minute_ten_bmp = {8, 8, …*'n paar byte data*…};"

Die indringers dek twee matrikse, sodat die byte 16, 8 in die byte -data kry.

Die ander ding wat my uitgevang het, was die posisionering van die sprite -data. U kan die Arduino vra om die sprite in 'n ander X/Y -posisie op die matriks te vertoon as die standaard tuisposisie. Die kode lyk so vir die minuut nul:

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

Een getal is X -aanpassing en 'n ander is Y. Kan nie onthou watter een nou is nie, maar as u die sprite met 1 ry of kolom op of af wil stoot, verhoog u die getal positief of minus. Eenvoudig genoeg vir 8x8 matriks, maar as u sprite meer as een matriks dek, moet u die tuisposisie dienooreenkomstig stel. Die "POP" sprite word hieronder getoon:

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

Let nou op hoe die tuisposisie 16 nie 8 is nie? Hier dui die kode aan dat die sprite van links na regs vertoon word vanaf posisie ry/kolom 16. Dit beskou twee 8x8 -skerms as 'n enkele 16x8 -skerm, alhoewel daar 4 is! Daarom is dit belangrik om na te dink oor hoeveel skerms die sprite oor die skerm sal verskyn en die grootte van elke sprite se byte -skikking dienooreenkomstig te bepaal. Anders het u 'n paar baie interessante sprites!

DS1307 RTC

Alhoewel die DS1307 goed werk met die Adafruit RTClib.h -biblioteek, kan u die tyd nie net handmatig stel nie. Ek het net hiermee gegaan omdat dit minder kode beteken om te verander. Die DS1307 stel die tyd in met die tyd en datum waarop die kode saamgestel is uit die tyd van u rekenaar. Leer in plaas daarvan om die DS3231 -biblioteek te gebruik en stel dit een keer in die toekoms in vir een of twee minute. Dit het ook minder "wegdrywing", sodat dit tyd mettertyd beter hou. Beide modules gebruik die I2C -bus en ek glo dat die DS3231 saam met die RTClib.h gebruik kan word as u dit wil gebruik.

Laai die kode op

As u tevrede is met die kode, laai dit dan op na die Arduino. Ek het my Arduino -skets vir u oorweging aangeheg.

Stap 4: Monteer elektronika

Montering van elektronika
Montering van elektronika

Tydens die oplaai van die kode, sou ek aanbeveel dat die elektronika eers met dupont/jumper -drade op 'n broodbord gemonteer word, dus as u die kode oplaai, weet u dat alles werk soos bedoel. Hiermee kan u probleme met die vertoon van die sprites, ens, uitlos voordat u begin plak en plak. In my kode kan u sien dat ek digitale penne 4, 5, 6, 7, 9 gebruik, maar u kan dit verander indien nodig. Miskien moet u kabels aan die knoppie, die DC -aansluiting en die luidspreker soldeer, maar die meeste verbindings moet maklik wees.

As u tevrede is, werk die elektronika volgens die bedoeling, maar u moet oorweeg om die verbindings te soldeer. U kan dit doen met koperstrookbord/veroboard, maar vir die klein hoeveelheid komponente kan u direk aan die penne van die Arduino soldeer. Dit sal soos 'n rotnes lyk, maar niemand sal binne -in die omhulsel sien as dit in elk geval bymekaargemaak is nie, maar maak seker dat alle metaaldele geskei is; u wil nie hê dat iets in die kas kortkom nie.

Ek het die drukknoppie laat werk as die "mainButton" -pen laag trek. Ek het gevind dat die Arduino 'n vals drukknop herken toe die drywende elektronika daarop sit. Die probleem is vir my opgelos deur 'n 10K -weerstand op die drukknop te gebruik en die pen op "INPUT_PULLUP" te stel.

Die skema is in PDF en-p.webp

Stap 5: Monteer die elektronika en maak dit naby

Monteer die elektronika en maak dit naby
Monteer die elektronika en maak dit naby
Monteer die elektronika en maak dit naby
Monteer die elektronika en maak dit naby

Vir my horlosie het ek die elektronika met warm gom gemonteer, maar wees versigtig om nie te veel aan te wend nie (elektronika hou nie daarvan om te lank verhit te word nie). Ek gebruik 'n klein druppel supergom rondom die ring en druk dit teen die voorkant vas. Ek het die omhulsel afgehandel deur die einddoppies aan elke kant in te druk. U kan die einddoppe natuurlik plak om die vergadering heeltemal te omhul, maar ek het die een kant van my oopgemaak sodat ek nog steeds toegang tot die USB -poort van die arduino kan kry om die datum en tyd in die toekoms te herstel.

Stap 6: Geniet dit

Geniet dit
Geniet dit
Geniet dit
Geniet dit

Oor die algemeen is ek tevrede met die manier waarop dit uitgekom het, aangesien dit net 'n gootpyp en spuitverf is. Ek hoop dat u daarvan hou, en laat weet my as u aan wonderlike opgraderings kan dink wat u kan byvoeg. Ek sal belangstel om te weet of iemand dit goedkoper kan maak, of daar 'n ander eenvoudige manier is om 'n omheining te maak wat ek in my volgende projek kan probeer.

Aanbeveel: