Sommario:
- Passaggio 1: raccogliere le parti
- Passaggio 2: prepara il tubo di scarico
- Passaggio 3: programma Arduino
- Passaggio 4: assemblaggio dell'elettronica
- Passaggio 5: montare l'elettronica e chiudere il piano
- Passaggio 6: divertiti
Video: Orologio Space Invaders (con un budget!): 6 passaggi (con immagini)
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:04
Recentemente ho visto una bella build di GeckoDiode e ho subito voluto costruirla da solo. L'Instructable è Space Invaders Desktop Clock e ti consiglio di dargli un'occhiata dopo averlo letto.
Il progetto è stato realizzato quasi esclusivamente con parti provenienti da Adafruit con un involucro stampato in 3D e una plancia tagliata al laser. Sommando tutto il costo della build diventa molto costoso! (circa £ 100 o più). Il problema è che se non possiedi una stampante 3D devi pagare per far stampare il tuo modello, o acquistare un brutto involucro su ebay che spesso è solo un po' troppo piccolo, troppo stretto, corto o il contrario.
La maggior parte delle mie costruzioni deve essere eseguita con un budget da hobbista e le custodie finiscono sempre per essere la parte più costosa. Così ho deciso di costruire lo stesso orologio ma con un budget decente.
Se ti piace guardare orologi strani, dai un'occhiata al mio orologio voltmetro Steampunk, che utilizza gli stessi materiali di costruzione per la custodia:-)
Passaggio 1: raccogliere le parti
Per realizzare questo progetto avrai bisogno di quanto segue. Tieni presente che con i materiali per il recinto avrai MOLTI avanzi che puoi utilizzare in altri progetti (il che rende il costo delle costruzioni future ancora più economico). Ho caricato i PDF delle cose di cui hai bisogno se vuoi controllare il prezzo ecc. su ebay.
Strumenti (presumo che li avrai già)
- Saldatore
- Saldare
- Pompa di saldatura (se commetti un errore e devi rimuovere la saldatura)
- Pistola per colla a caldo
- Stick di colla a caldo
- Coltello artigianale (a.k.a. coltello Stanley)
- Righello / metro a nastro / calibro a corsoio
- Trapano a batteria + punte da trapano (da 1 mm a 13 mm)
- Multiutensile rotante con disco da taglio (a.k.a. Dremel)
- Liquido detergente come l'alcol isopropilico (va bene anche il dopobarba economico)
- Maschera di sicurezza (usata durante la verniciatura a spruzzo)
Elettronica (costo dell'elettronica = £ 13,05)
Alcuni di questi li ho avuti gratis. I vecchi giocattoli elettronici hanno questi simpatici altoparlanti in Mylar all'interno se li smontate. Già che ci sei probabilmente puoi ottenere anche un barilotto DC e un pulsante.
- Cavi Dupont / Jumper - £ 0,99
- DS1307 Modulo orologio in tempo reale - £ 0,99 (consiglio di acquistare DS3231 invece, se disponibile)
- Arduino nano + cavo usb - £ 2,23
- Altoparlante in Mylar da 8 Ohm - £ 0,99
- Pulsante momentaneo SPST - £ 1,49
- Presa a barilotto CC da 5,5 mm - £ 1,26
- Alimentatore CC da 5 V, 0,5 A - £ 2,83
- MAX7219 Display a matrice di punti - £ 3,76
Custodia (costo dei materiali della custodia = £ 17,19)
- Tubo di scarico quadrato da 60 mm - £ 5,99 (avrai MOLTO di questo rimasto per altri progetti)
- Vernice spray nera - £ 4,85
- PVC nero (schiuma) - £ 2,99
- Super colla - £ 0,99
- Tappi terminali da 60 mm - £ 2,37
Costo totale = £ 30,24:-) ……..ad oggi questo è l'equivalente di 38 USD per qualsiasi lettore internazionale.
Mi piace lavorare con il tubo quadrato in PVC. Sono facili da forare, tagliare, dipingere e ne ho usato uno per il mio orologio Steampunk.
Passaggio 2: prepara il tubo di scarico
Segna dove vuoi mettere le cose
È stato così facile. Non ho usato niente di speciale. Per prima cosa ho tagliato la lunghezza di 2,5 m fino a una dimensione ragionevole per la mia panca a casa (circa 30 cm) con un seghetto. In seguito l'ho tagliato con un dremel per rendere i bordi belli e dritti. Poi ho appoggiato i componenti sulla superficie del tubo e ho usato un mercato permanente per segnare dove volevo forare e tagliare. Ho tracciato l'esterno della matrice LED e ho usato un multiutensile rotante per tagliare un foro quadrato in modo che si adattasse a filo. Ho usato un calibro digitale per misurare il diametro del pulsante e la canna DC per tagliare i fori della dimensione corretta nella parte posteriore e superiore.
Taglia una cornice
Ho un sacco di pannelli in schiuma di PVC in giro da progetti precedenti. Sono ottimi per montare circuiti in custodie, usarli per mescolare insieme la resina epossidica e creare altri pezzi. Prendi un pezzo di formato A4 o A5 e ritaglia una cornice o una cornice quadrata da 5 mm per incorniciare la matrice LED. Questo nasconderà tutte le estremità traballanti che hai creato durante il taglio del foro quadrato per la matrice. Per questo ho disegnato un piccolo modello su Inkscape e l'ho stampato (file SVG allegato). L'ho quindi fissato con del nastro adesivo sul pannello di gommapiuma e tagliato con cura intorno con un coltello artigianale. È difficile da ottenere, consiglio di tagliare prima l'interno e poi l'esterno.
Dipingi tutto
Una volta che tutti i fori sono stati praticati e tagliati, rimuovere eventuali bordi sbavati. Pulisci le superfici con delle salviette imbevute di alcol per rimuovere polvere o inquinamento (o un dopobarba economico se non hai l'IPA). Prova a spruzzare in un'area ben ventilata e usa una maschera ove possibile. L'ho fatto all'esterno con del cartone sul pavimento, ma non è l'ideale, anche una piccola brezza può far tornare la vernice in faccia. Prestare attenzione e indossare dispositivi di protezione ove possibile.
Spruzza il tubo, la cornice e i cappucci terminali in modo che siano tutti dello stesso tipo di nero, quindi lascia asciugare per alcune ore.
Passaggio 3: programma Arduino
Alcune informazioni sul codice
Ringraziamo GeckoDiode perché ho preso il suo codice e l'ho modificato per funzionare con il chip MAX7219. La versione Adafruit utilizza il bus I2C e il MAX utilizza il bus SPI. Per questo ho usato la libreria MaxMatrix, che ho scaricato e installato nell'IDE di Arduino. Se vuoi saperne di più su MaxMatrix e su come funziona la matrice LED in linea di principio, c'è un tutorial molto breve su HowToMechatronics.com. La matrice LED è composta esclusivamente da un singolo colore di LED anziché da un display multicolore.
Una frustrazione che ho avuto è che NON ci sono definizioni chiare di quali sono le funzioni per la libreria e quali argomenti devono essere passati a ciascuna. Fortunatamente sono stato in grado di scoprire cosa ha fatto cosa per tentativi ed errori e alla fine non è stato troppo difficile farlo funzionare correttamente. La prima cosa da capire è che devi definire quanti moduli 8x8 ci sono nella tua matrice. Nel mio codice questo è memorizzato in un numero intero chiamato "moduli" come questo:
"int moduli = 4;"
Questo è il NUMERO di moduli 8x8 che hai collegato insieme nel tuo display. Non il numero di LED o il pin che stai utilizzando per inviare i dati. La prossima cosa da ricordare è che se il tuo "sprite" o qualsiasi altra cosa copre tutte e quattro le matrici, l'array di byte deve essere definito in questo modo:
"byte text_start_bmp = {32, 8, …*alcuni byte di dati*…};"
I numeri indicano la quantità di righe e colonne nella matrice. In questa occasione il byte denominato "text_start_bmp" viene visualizzato su 32 colonne e 8 righe. I numeri vengono visualizzati solo su una singola matrice 8x8, quindi il numero minuto 10 ha questo aspetto:
"byte minute_ten_bmp = {8, 8, …*alcuni byte di dati*…};"
Gli invasori coprono due matrici, quindi il byte avrà 16, 8 nei dati del byte.
L'altra cosa che mi ha sorpreso è stato il posizionamento dei dati dello sprite. Puoi chiedere ad Arduino di visualizzare lo sprite in una posizione X/Y diversa sulla matrice dalla posizione iniziale predefinita. Il codice si presenta così per il minuto zero:
"matrix.writeSprite(8, 0, minute_zero_bmp);"
Un numero è la regolazione X e un altro è Y. Non ricordo quale sia quale ora, ma se vuoi spostare lo sprite in alto o in basso di 1 riga o colonna, devi semplicemente aumentare il numero in positivo o in meno. Abbastanza semplice per la matrice 8x8 ma quando il tuo sprite copre più di una matrice devi impostare la posizione iniziale di conseguenza. Lo sprite "POP" è mostrato di seguito:
"matrix.writeSprite(16, 0, invader_pop_bmp);"
Nota ora come la posizione iniziale è 16 e non 8? Qui il codice indica che lo sprite viene visualizzato da sinistra a destra dalla posizione riga/colonna 16. Considera due display 8x8 come un singolo display 16x8 anche se ce ne sono 4! Pertanto è importante pensare a quanti display verrà visualizzato lo sprite e dimensionare di conseguenza l'array di byte di ogni sprite. Altrimenti avrai degli sprite molto interessanti!
DS1307 RTC
Sebbene il DS1307 funzioni bene con la libreria Adafruit RTClib.h, non è possibile impostare manualmente l'ora, il che è solo un problema. Sono andato con questo perché significava meno codice da cambiare. Il DS1307 imposta l'ora utilizzando l'ora e la data in cui il codice è stato compilato dall'ora del computer. Impara invece a utilizzare la libreria DS3231 e impostala una volta per uno o due minuti in futuro. Ha anche meno "deriva" quindi mantiene il tempo meglio nel tempo. Entrambi i moduli utilizzano il bus I2C e credo che il DS3231 possa essere utilizzato con RTClib.h se si desidera continuare a utilizzarlo.
Carica il codice
Una volta che sei soddisfatto del codice, caricalo su Arduino. Ho allegato il mio schizzo Arduino per la tua considerazione.
Passaggio 4: assemblaggio dell'elettronica
Durante il caricamento del codice, consiglierei di assemblare prima l'elettronica con cavi dupont/jumper su una breadboard, in modo che quando si carica il codice si sappia che tutto funziona come previsto. Ciò ti consente di appianare eventuali problemi con la visualizzazione degli sprite ecc. Prima di iniziare a incollare e incollare. Nel mio codice puoi vedere che sto usando i pin digitali 4, 5, 6, 7, 9, ma puoi cambiarli se necessario. Potrebbe essere necessario saldare i cavi sul pulsante, sul jack CC e sull'altoparlante, ma la maggior parte dovrebbe essere costituita da connettori di tipo push fit.
Una volta che sei soddisfatto che l'elettronica funzioni come previsto, dovresti considerare di saldare le connessioni. Puoi farlo con stripboard/veroboard in rame, ma per la piccola quantità di componenti puoi saldare direttamente ai pin dell'Arduino. Sembrerà un nido di topi ma nessuno vedrà all'interno del recinto una volta assemblato comunque, assicurati solo che tutte le parti metalliche siano segregate, non vuoi che nulla vada in cortocircuito nella custodia.
Ho fatto funzionare il pulsante quando il perno "mainButton" è abbassato. Ho scoperto che Arduino stava riconoscendo il falso pulsante premuto quando l'elettronica flottante si depositava su di esso. L'utilizzo di un resistore pulldown da 10K sul pulsante e l'impostazione del pin su "INPUT_PULLUP" ha risolto il problema per me.
In allegato c'è lo schema in PDF e-p.webp
Passaggio 5: montare l'elettronica e chiudere il piano
Per il mio orologio ho montato l'elettronica usando la colla a caldo, ma attenzione a non applicarne troppa (l'elettronica non ama essere riscaldata troppo a lungo). Ho usato una piccola goccia di colla super punteggiata intorno alla cornice e l'ho premuta contro la parte anteriore. Ho rifinito la custodia spingendo i cappucci terminali a ciascuna estremità. Ovviamente puoi incollare i cappucci terminali per racchiudere completamente l'assieme, ma ho lasciato un lato del mio aperto in modo da poter ancora accedere alla porta USB dell'arduino per reimpostare la data e l'ora in futuro.
Passaggio 6: divertiti
Nel complesso sono soddisfatto di come è venuto fuori, considerando che è solo un tubo di grondaia e una vernice spray. Spero che ti piaccia e fammi sapere se ti vengono in mente eventuali aggiornamenti interessanti che possono essere aggiunti. Sarei interessato a sapere se qualcuno può renderlo più economico o se c'è un altro modo parsimonioso di realizzare un recinto che posso provare nel mio prossimo progetto.
Consigliato:
Orologio per il pensionamento / Orologio con conteggio su/giù: 4 passaggi (con immagini)
Orologio per la pensione / Orologio per conteggio su/giro: avevo alcuni di questi display a matrice di punti a LED 8x8 nel cassetto e stavo pensando a cosa farne. Ispirato da altre istruzioni, ho avuto l'idea di costruire un display per il conto alla rovescia per il conto alla rovescia per una data/ora futura e se il tempo target p
LCD Invaders: un gioco simile a Space Invaders su display LCD a caratteri 16x2: 7 passaggi
LCD Invaders: un gioco simile a Space Invaders su schermo LCD 16x2 caratteri: non è necessario introdurre un leggendario gioco "Space Invaders". La caratteristica più interessante di questo progetto è che utilizza la visualizzazione del testo per l'output grafico. Si ottiene implementando 8 caratteri personalizzati. Puoi scaricare l'Arduino completo
Orologio Vortex: un orologio da polso Infinity Mirror: 10 passaggi (con immagini)
Vortex Watch: un orologio da polso Infinity Mirror: L'obiettivo di questo progetto era creare una versione indossabile di un orologio Infinity Mirror. Utilizza i suoi LED RGB per indicare il tempo assegnando ore, minuti e secondi rispettivamente alle luci rossa, verde e blu e sovrapponendo queste tonalità per
Creazione di un orologio da un orologio: 11 passaggi (con immagini)
Creazione di un orologio da un orologio: in questo Instructable, prendo un orologio esistente e creo quello che ritengo sia un orologio migliore. Passiamo dall'immagine a sinistra all'immagine a destra. Prima di iniziare con il tuo orologio, sappi che il rimontaggio può essere impegnativo poiché il piv
Microdot - Orologio da polso con motivo a LED Orologio: 7 passaggi (con immagini)
Microdot - Orologio da polso con motivo a LED: un'altra produzione RGB Sunset Productions! funzioni più applicabili a un dispositivo portatile. UN