Taula de continguts:

Rellotge Space Invaders (amb un pressupost limitat): 6 passos (amb imatges)
Rellotge Space Invaders (amb un pressupost limitat): 6 passos (amb imatges)

Vídeo: Rellotge Space Invaders (amb un pressupost limitat): 6 passos (amb imatges)

Vídeo: Rellotge Space Invaders (amb un pressupost limitat): 6 passos (amb imatges)
Vídeo: 3000+ Common Spanish Words with Pronunciation 2024, Juliol
Anonim
Image
Image
Reuneix parts
Reuneix parts

Recentment he vist una versió genial de GeckoDiode i de seguida he volgut construir-la jo mateixa. L’instructible és Space Invaders Desktop Clock i us recomano que hi feu una ullada després de llegir-ho.

El projecte es va construir gairebé únicament a partir de peces procedents d’Adafruit amb un recinte imprès en 3D i una facia tallada amb làser. Sumar tot el cost de la construcció és molt costós. (aproximadament 100 lliures esterlines o més). El problema és que si no teniu cap impressora 3D, heu de pagar per imprimir el vostre model o comprar un gabinet lleig a eBay que sovint és massa petit, massa estret, curt o al contrari.

La majoria de les meves versions s'han de fer amb un pressupost d'aficionats i els recintes sempre acaben sent la part més cara. Així que vaig decidir construir el mateix rellotge però amb un pressupost decent.

Si us agrada mirar rellotges estranys, consulteu el meu Steampunk Voltmeter Clock, que utilitza els mateixos materials de construcció per al recinte:-)

Pas 1: reuniu parts

Per fer aquest projecte necessitareu el següent. Tingueu en compte els materials del recinte que us quedaran MOLTS restes que podeu utilitzar en altres projectes (cosa que fa que el cost de les futures construccions sigui encara més barat). He penjat PDF del material que necessiteu si voleu comprovar el preu, etc. a eBay.

Eines (suposo que ja les tindreu)

  • Soldador
  • Soldar
  • Bomba de soldadura (si cometeu un error i heu de treure la soldadura)
  • Pistola de cola calenta
  • Pals de cola calenta
  • Ganivet artesanal (també conegut com ganivet Stanley)
  • Regla / cinta mètrica / pinça Vernier
  • Broca sense fil + broques (1 mm a 13 mm)
  • Multi-eina rotativa amb disc de tall (també conegut com Dremel)
  • Líquid de neteja com l'alcohol isopropílic (també funciona un bon aftershave)
  • Màscara de seguretat (que s’utilitza per pintar amb esprai)

Electrònica (cost de l'electrònica = 13,05 £)

Alguns d’aquests els tenia de franc. Les joguines electròniques antigues tenen aquests bonics altaveus Mylar a dins si els desmunteu. Mentre estigueu allà, probablement també podreu obtenir un barril de corrent continu i un polsador.

  • Cables Dupont / Jumper: 0,99 £
  • DS1307 Mòdul de rellotge en temps real: 0,99 £ (us recomanaria obtenir DS3231 si està disponible)
  • Cable Arduino nano + usb: 2,23 £
  • Altaveu Mylar de 8 ohms: 0,99 £
  • Polsador momentani SPST: 1,49 GBP
  • Presa de canó de 5,5 mm de CC: 1,26 GBP
  • Alimentació de 5 V, 0,5 A CC: 2,83 GBP
  • Pantalla de matriu de punts MAX7219: 3,76 GBP

Recinte (cost dels materials del recinte = 17,19 GBP)

  • Tub de drenatge quadrat de 60 mm: 5,99 GBP (en restarà MOLT per a més projectes)
  • Pintura en aerosol negre: 4,85 £
  • PVC negre (tauler) - 2,99 £
  • Super cola: 0,99 £
  • Taps finals de 60 mm: 2,37 GBP

Cost total = 30,24 lliures esterlines:-) …….. a dia d'avui és l'equivalent a 38 dòlars per a qualsevol lector internacional.

M’agrada treballar amb la canonada quadrada de PVC. Són fàcils de perforar, tallar, pintar i n’he utilitzat un per al meu rellotge Steampunk.

Pas 2: prepareu la canonada de drenatge

Prepareu-vos la canonada de drenatge
Prepareu-vos la canonada de drenatge

Marqueu on voleu posar les coses

Va ser tan fàcil. No vaig fer servir res de fantàstic. Primer vaig tallar la longitud de 2,5 m fins a una mida raonable per al meu banc a casa (uns 30 cm) amb una serra talladora. Més tard ho vaig reduir amb un dremel perquè les vores siguin boniques i rectes. Després vaig recolzar els components a la superfície de la canonada i vaig utilitzar un mercat permanent per marcar on volia perforar i tallar. Vaig resseguir la part exterior de la matriu LED i vaig utilitzar una eina multi-rotària per tallar un forat quadrat perquè encaixés a ras. Vaig utilitzar una pinça digital per mesurar el diàmetre del polsador i del canó de CC per tallar els forats de mida correcta a la part posterior i superior.

Talla un bisell

Tinc una gran quantitat de taulers d'escuma de PVC col·locats al voltant de projectes anteriors. Són ideals per muntar circuits en tancaments, utilitzar-lo per barrejar-hi epoxi i fer altres bits i bobs. Agafeu una peça de mida A4 o A5 i talleu un envoltant o un bisell quadrat de 5 mm per emmarcar la matriu LED. D’aquesta manera s’amagaran tots els extrems molestos que hagueu fet al tallar el forat quadrat de la matriu. Per a això vaig dibuixar una petita plantilla a Inkscape i la vaig imprimir (adjuntar fitxer SVG). Després el vaig gravar amb cinta adhesiva al taulell i el vaig tallar amb cura amb un ganivet artesanal. És complicat encertar-vos, us recomano tallar l’interior primer i l’exterior.

Pinta-ho tot

Un cop perforats i tallats tots els forats, traieu les vores borroses. Netegeu les superfícies amb tovalloletes d'alcohol per eliminar la pols o la contaminació (o una mica de post-afaitat econòmica si no teniu cap IPA). Intenteu ruixar en una zona ben ventilada i feu servir una màscara sempre que sigui possible. Ho vaig fer a l'exterior amb una mica de cartró a terra, però no és l'ideal, fins i tot una brisa petita pot fer que la pintura torni a volar a la cara. Aneu amb compte i porteu equips de protecció sempre que sigui possible.

Polvoritzeu la canonada, el bisell i els taps finals perquè siguin tots del mateix tipus de negre i deixeu-los assecar durant unes hores.

Pas 3: programa l'Arduino

Programa l'Arduino
Programa l'Arduino

Alguna informació sobre el codi

Crèdit a GeckoDiode perquè he agafat el seu codi i l'he modificat perquè funcioni amb el xip MAX7219. La versió Adafruit utilitza el bus I2C i el MAX utilitza el bus SPI. Per a això he utilitzat la biblioteca MaxMatrix, que he descarregat i instal·lat a l'IDE Arduino. Si voleu obtenir més informació sobre MaxMatrix i com funciona la matriu LED, hi ha un tutorial molt breu a HowToMechatronics.com. La matriu de LED es compon únicament d’un sol color de LED en lloc de tenir una pantalla multicolor.

Una frustració que vaig tenir és que NO hi ha definicions clares de quines són les funcions de la biblioteca i quins arguments cal transmetre a cadascuna. Per sort, vaig poder esbrinar què va fer què per prova i error i al final no va ser massa difícil aconseguir que funcionés correctament. El primer que heu d’entendre és que heu de definir quants mòduls de 8x8 hi ha a la vostra matriu. Al meu codi, això s'emmagatzema en un enter anomenat "mòduls" com aquest:

"int modules = 4;"

Aquest és el NOMBRE de mòduls 8x8 que heu enllaçat a la pantalla. No és el nombre de LEDs ni el pin que utilitzeu les dades d'enviament. El següent que cal recordar és que si el vostre "sprite" o el que sigui cobreix les quatre matrius, la matriu d'octets s'ha de definir així:

"byte text_start_bmp = {32, 8, … * algunes dades de bytes * …};"

Els números indiquen la quantitat de files i columnes de la matriu. En aquesta ocasió, el byte anomenat "text_start_bmp" es mostra en 32 columnes i 8 files. Els números només es mostren en una sola matriu de 8x8, de manera que el número de minut 10 té aquest aspecte:

"byte minute_ten_bmp = {8, 8, … * algunes dades de byte * …};"

Els invasors cobreixen dues matrius, de manera que al byte se li donarà 16, 8 a les dades de bytes.

L’altra cosa que em va cridar l’atenció va ser el posicionament de les dades sprite. Podeu demanar a l'Arduino que mostri el sprite en una posició X / Y diferent a la matriu de la posició inicial predeterminada. El codi té aquest aspecte al minut zero:

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

Un número és l’ajust de X i un altre és Y. No recordo quin és el que ara, però si voleu empènyer el sprite cap amunt o cap avall amb 1 fila o columna, només heu d’incrementar el número positiu o menys. Prou senzill per a una matriu de 8x8, però quan el vostre sprite cobreix més d’una matriu, heu d’establir la posició inicial en conseqüència. A continuació es mostra el sprite "POP":

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

Fixeu-vos ara com la posició inicial és 16 i no 8? Aquí el codi indica que el sprite es mostra d'esquerra a dreta des de la fila / columna de posició 16. Considera que dues pantalles de 8x8 són una sola pantalla de 16x8 tot i que n'hi ha 4. Per tant, és important pensar quantes pantalles es mostraran a través del sprite i dimensionar la matriu de bytes de cada sprite en conseqüència. En cas contrari, tindreu uns sprites molt interessants!

DS1307 RTC

Tot i que el DS1307 funciona bé amb la biblioteca Adafruit RTClib.h, no podeu configurar manualment l’hora que és només un dolor. Vaig anar amb això perquè significava menys codi per canviar. El DS1307 estableix l'hora amb l'hora i la data en què es va compilar el codi des de l'hora dels vostres equips. En lloc d’això, apreneu a utilitzar la biblioteca DS3231 i configureu-la una vegada amb un o dos minuts d’antelació en el futur. També té menys "deriva", de manera que manté el temps millor amb el pas del temps. Tots dos mòduls utilitzen el bus I2C i crec que el DS3231 es pot utilitzar amb el RTClib.h si voleu continuar utilitzant-lo.

Pengeu el codi

Quan estigueu satisfet amb el codi, pengeu-lo a l'Arduino. He adjuntat el meu esbós Arduino per a la vostra consideració.

Pas 4: Muntatge d'electrònica

Muntatge d'electrònica
Muntatge d'electrònica

Tot i que pengeu el codi, us recomanaria que els aparells electrònics estiguessin muntats amb cables dupont / jumper en una placa d’informació, de manera que quan pengeu el codi sabreu que tot funciona com s’ha volgut. Això us permet planificar qualsevol problema amb la visualització dels sprites, etc. abans de començar a enganxar i enganxar. Al meu codi podeu veure que estic fent servir pins digitals 4, 5, 6, 7, 9, però podeu canviar-los si cal. És possible que hàgiu de soldar cables al botó, a la presa de corrent continu i a l’altaveu, però la majoria haurien de ser connectors d’estil de fàcil pressió.

Un cop estigueu contents, l'electrònica funcioni tal i com s'ha previst, heu de plantejar-vos de soldar les connexions. Podeu fer-ho amb taulers de verre / coure de coure, però per la petita quantitat de components podeu soldar directament als passadors de l'Arduino. Semblarà un niu de rates, però ningú no veurà l’interior del recinte un cop s’hagi muntat de totes maneres, assegureu-vos que totes les parts metàl·liques estiguin segregades;

He fet que el polsador funcioni quan es posa el pin "mainButton" cap avall. Vaig trobar que l’Arduino reconeixia el fals polsador premut quan s’hi instal·laven components electrònics flotants. Utilitzar una resistència de desplaçament de 10K al polsador i configurar el passador a "INPUT_PULLUP" em va solucionar aquest problema.

Adjuntem l’esquema en PDF i-p.webp

Pas 5: munteu l'electrònica i primer pla

Munteu l'electrònica i primer pla
Munteu l'electrònica i primer pla
Munteu l'electrònica i primer pla
Munteu l'electrònica i primer pla

Per al meu rellotge he muntat l'electrònica amb cola calenta, però tingueu cura de no aplicar massa (a l'electrònica no li agrada escalfar-se massa temps). Vaig utilitzar una petita gota de super cola esquitxada al voltant del bisell i la vaig prémer contra la part frontal. Vaig acabar el recinte pressionant els taps finals a cada extrem. Per descomptat, podeu enganxar els taps finals per incloure completament el conjunt, però vaig deixar obert un dels meus costats per poder accedir al port USB de l’arduino per restablir la data i l’hora en el futur.

Pas 6: gaudiu

Gaudeix
Gaudeix
Gaudeix
Gaudeix

En general, estic satisfet amb la manera com va sortir, tenint en compte només una mica de canonada de canaló i pintura en aerosol. Espero que us agradi i que m’aviseu si teniu en compte algunes actualitzacions interessants que es puguin afegir. M'interessaria saber si algú pot fer això més barat o si hi ha una altra manera estalviadora de fer un recinte que puc provar en el meu proper projecte.

Recomanat: