Innehållsförteckning:

Space Invaders Clock (på en budget!): 6 steg (med bilder)
Space Invaders Clock (på en budget!): 6 steg (med bilder)

Video: Space Invaders Clock (på en budget!): 6 steg (med bilder)

Video: Space Invaders Clock (på en budget!): 6 steg (med bilder)
Video: Absolute TOP 20 Best THRIFT FLIP Decor & Furniture On a Budget! 2024, Juli
Anonim
Image
Image
Samla delar
Samla delar

Nyligen såg jag en cool byggnad av GeckoDiode och jag ville genast bygga den själv. Instructable är Space Invaders Desktop Clock och jag rekommenderar att du tittar på den efter att ha läst detta.

Projektet byggdes nästan enbart av delar från Adafruit med ett 3D -tryckt hölje och laserskurna facia. Att lägga till allt i byggkostnaden blir väldigt dyrt! (cirka £ 100 eller mer). Problemet är att om du inte äger en 3D -skrivare måste du betala för att få din modell tryckt, eller köpa en ful kapsling från ebay som ofta är lite för liten, för smal, för kort eller tvärtom.

De flesta av mina byggnader måste göras på en hobbyistbudget och kapslingar blir alltid den dyraste delen. Så jag bestämde mig för att bygga samma klocka men med en anständig budget.

Om du tycker om att titta på konstiga klockor, kolla in min Steampunk Voltmeter Clock, som använder samma byggmaterial för höljet:-)

Steg 1: Samla delar

För att göra detta projekt behöver du följande. Tänk på med materialet för höljet du kommer att ha Många kvarvarande rester som du kan använda i andra projekt (vilket gör kostnaden för framtida byggnader ännu billigare). Jag har laddat upp PDF -filer av de saker du behöver om du vill kontrollera pris etc på ebay.

Verktyg (jag antar att du redan har dessa)

  • Lödkolv
  • Löda
  • Lödpump (om du gör ett misstag och behöver ta bort lödet)
  • Lim pistol
  • Heta limpinnar
  • Hantverkskniv (a.k.a. Stanley Knife)
  • Linjal / måttband / Vernier -tjocklek
  • Sladdlös borr + borr (1 mm till 13 mm)
  • Rotary multi-tool with cutting disc (aka Dremel)
  • Rengöringsvätska som isopropylalkohol (billig aftershave fungerar också)
  • Säkerhetsmask (används vid spraymålning)

Elektronik (kostnad för elektronik = £ 13,05)

Några av dessa hade jag gratis. Gamla elektroniska leksaker har dessa fina Mylar -högtalare inuti om du tar isär dem. Medan du är där kan du förmodligen få en DC -fat och en tryckknapp också.

  • Dupont / bygelkablar - 0,99 kr
  • DS1307 Realtidsklocka - 0,99 £ (jag skulle rekommendera att skaffa DS3231 istället om det är tillgängligt)
  • Arduino nano + usb -kabel - 2,23 kr
  • 8 Ohm Mylar -högtalare - £ 0,99
  • SPST tillfällig tryckknapp - 1,49 kr
  • 5,5 mm DC -fatuttag - 1,26 kr
  • 5v, 0,5A DC -strömförsörjning - 2,83 £
  • MAX7219 Dotmatrisdisplay - 3,76 kr

Kapsling (kostnad för kapslingsmaterial = £ 17,19)

  • 60 mm fyrkantigt avloppsrör - £ 5,99 (du kommer att ha MYCKET av detta kvar för fler projekt)
  • Svart sprayfärg - £ 4,85
  • Svart PVC (skumbräda) - 2,99 kr
  • Superlim - 0,99 kr
  • 60 mm ändlock - 2,37 kr

Total kostnad = £ 30,24:-) ……..som idag är detta motsvarande 38 USD för alla internationella läsare.

Jag trivs med att arbeta med PVC -fyrkantröret. De är lätta att borra, klippa, måla och jag använde en till min Steampunk -klocka.

Steg 2: Förbered ditt avloppsrör

Förbered ditt avloppsrör
Förbered ditt avloppsrör

Markera var du vill placera saker

Det här var så enkelt. Jag använde inget konstigt. Först klippte jag ner 2,5 m längden till en rimlig storlek för min bänk hemma (ca 30 cm) med en hacksåg. Jag klippte senare ner detta med en dremel för att göra kanterna snygga och raka. Sedan vilade jag komponenterna på rörets yta och använde en permanent marknad för att markera var jag ville borra och skära. Jag spårade runt på utsidan av LED-matrisen och använde ett roterande multiverktyg för att klippa ett fyrkantigt hål för att det skulle passa jämnt. Jag använde en digital tjocklek för att mäta diametern på tryckknappen och DC -fatet för att klippa hål i rätt storlek på baksidan och toppen.

Klipp en ram

Jag har massor av PVC -skumbräda som ligger från tidigare projekt. De är bra för att montera kretsar i höljen, använda den för att blanda epoxi ihop på den och göra andra bitar och bobbar. Ta en A4- eller A5 -bit och klipp ut en fyrkantig 5 mm surround eller ram för att rama in LED -matrisen. Detta kommer att dölja alla häftiga ändar du gjorde när du skar det fyrkantiga hålet för matrisen. För detta ritade jag en liten mall på Inkscape och skrev ut den (SVG -fil bifogad). Jag tejpade den sedan med maskeringstejp på skumbrädan och skär försiktigt runt den med en hantverkskniv. Det är knepigt att få rätt, jag rekommenderar att klippa insidan först och sedan utsidan.

Måla allt

När alla hål är borrade och skurna, ta bort eventuella burna kanter. Rengör ytorna med några alkoholservetter för att avlägsna damm eller föroreningar (eller lite billig aftershave om du inte har någon IPA). Försök att spraya i ett väl ventilerat område och använd en mask där det är möjligt. Jag gjorde det här ute med lite kartong på golvet men det är inte perfekt, även en liten bris kan få färg att flyga tillbaka i ansiktet. Var försiktig och bära skyddsutrustning där det är möjligt.

Spraya röret, ramen och ändkåporna så att de är samma typ av svart och låt sedan torka i några timmar.

Steg 3: Programmera Arduino

Programmera Arduino
Programmera Arduino

Lite information om koden

Tack till GeckoDiode eftersom jag har tagit hans kod och ändrat den för att fungera med MAX7219 Chip. Adafruit -versionen använder I2C -buss och MAX använder SPI -bussen. För detta använde jag MaxMatrix -biblioteket, som jag laddade ner och installerade i Arduino IDE. Om du vill lära dig mer om MaxMatrix och hur LED -matrisen fungerar i princip finns en mycket kort handledning på HowToMechatronics.com. LED-matrisen består enbart av en enda LED-färg i stället för att ha en flerfärgad display.

En frustration jag hade är att det inte finns några tydliga definitioner av vad funktionerna för biblioteket är och vilka argument som måste föras in i varje. Lyckligtvis kunde jag ta reda på vad som gjorde vad genom försök och fel och i slutändan var det inte så svårt att få det att fungera korrekt. Det första du måste förstå är att du måste definiera hur många 8x8 moduler som finns i din matris. I min kod lagras detta i ett heltal som kallas "moduler" så här:

"int -moduler = 4;"

Detta är ANTALET av 8x8 moduler som du har länkat ihop i din display. Inte antalet lysdioder eller vilken stift du använder skicka data. Nästa sak att komma ihåg är att om din "sprite" eller vad som helst täcker alla fyra matriser måste byte -arrayen definieras så här:

"byte text_start_bmp = {32, 8, …*några byte data*…};"

Siffrorna anger antalet rader och kolumner i matrisen. Vid detta tillfälle visas byten med namnet "text_start_bmp" över 32 kolumner och 8 rader. Siffrorna visas bara på en enda 8x8 matris så minutnumret 10 ser ut så här:

"byte minute_ten_bmp = {8, 8, …*några byte data*…};"

Invaders täcker två matriser så byte kommer att ges 16, 8 i byte data.

Det andra som fångade mig var placeringen av sprite -data. Du kan be Arduino att visa spriten i en annan X/Y -position på matrisen från standard hemposition. Koden ser ut så här för minutnollan:

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

Ett tal är X -justering och ett annat är Y. Kommer inte ihåg vilket som är vilket nu, men om du vill knuffa spriten upp eller ner med 1 rad eller kolumn ökar du helt enkelt talet positivt eller minus. Enkelt nog för 8x8 matris men när din sprite täcker mer än en matris måste du ställa in hempositionen därefter. Spriten "POP" visas nedan:

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

Lägg märke till nu hur hemmapositionen är 16 inte 8? Här anger koden att spriten visas från vänster till höger från rad/kolumn 16. Den anser att två 8x8 -skärmar är en enda 16x8 -display trots att det finns 4! Därför är det viktigt att tänka på hur många skärmar spriten kommer att visas över och dimensionera varje sprites byte -array därefter. Annars kommer du att ha några mycket intressanta sprites!

DS1307 RTC

Även om DS1307 fungerar bra med Adafruit RTClib.h -biblioteket, kan du inte manuellt ställa in tiden som bara är en smärta. Jag gick bara med det här eftersom det innebar mindre kod att ändra. DS1307 anger tiden med tid och datum då koden kompilerades från din dators tid. Lär dig istället hur du använder DS3231 -biblioteket och ställ in det en gång i en eller två minuter framöver. Den har också mindre "drift" så den håller tiden bättre över tiden. Båda modulerna använder I2C -bussen och jag tror att DS3231 kan användas med RTClib.h om du vill fortsätta använda den.

Ladda upp koden

När du är nöjd med koden laddar du upp den till Arduino. Jag har bifogat min Arduino -skiss för övervägande.

Steg 4: Montering av elektronik

Montering av elektronik
Montering av elektronik

När jag laddar upp koden skulle jag rekommendera att ha elektroniken monterad med dupont/bygelkablar på en brödbräda först så när du laddar upp koden vet du att allt fungerar som avsett. Detta gör att du kan stryka ut eventuella problem med att visa sprites osv innan du börjar limma och klibba. I min kod kan du se att jag använder digitala stift 4, 5, 6, 7, 9, men du kan ändra dessa om det behövs. Du kan behöva löda kablar på knappen, DC -uttaget och högtalaren, men de flesta bör vara enkla push -fit -kontakter.

När du är nöjd fungerar elektroniken som avsett och du bör överväga att löda anslutningarna. Du kan göra detta med kopparband/veroboard, men för den lilla mängden komponenter kan du lödas direkt på stiften på Arduino. Det kommer att se ut som ett råttbo men ingen kommer att se inuti höljet när det väl är monterat, se bara till att alla metalldelar är åtskilda, du vill inte ha något kortslutning i fodralet.

Jag har fått tryckknappen att fungera när "mainButton" -nålen dras lågt. Jag hittade att Arduino kände igen falsk tryckknapp när flytande elektronik satte sig på den. Att använda ett 10K nedrullningsmotstånd på tryckknappen och ställa in stiftet till "INPUT_PULLUP" löste det problemet för mig.

Bifogad är schemat i PDF och-p.webp

Steg 5: Montera elektroniken och närbild

Montera elektroniken och närbild
Montera elektroniken och närbild
Montera elektroniken och närbild
Montera elektroniken och närbild

För min klocka monterade jag elektroniken med varmt lim, men var försiktig så att du inte applicerar för mycket (elektronik gillar inte att värmas upp för länge). Jag använde en liten droppe superlim prickat runt ramen och tryckte den mot framsidan. Jag avslutade kapslingen genom att trycka in ändkåporna i varje ände. Naturligtvis kan du limma ändkåporna för att helt omsluta enheten, men jag lämnade ena sidan av mig öppen så att jag fortfarande kan komma åt USB -porten på arduino för att återställa datum och tid i framtiden.

Steg 6: Njut

Njut av
Njut av
Njut av
Njut av

Sammantaget är jag nöjd med hur detta kom ut, med tanke på att det bara var något rännrör och sprayfärg. Jag hoppas att du gillar det och meddela mig om du kan tänka dig några coola uppgraderingar som kan läggas till. Jag skulle vara intresserad av att veta om någon kan göra detta billigare eller om det finns ett annat sparsamt sätt att göra ett hölje som jag kan prova i mitt nästa projekt.

Rekommenderad: