Inhaltsverzeichnis:

Space Invaders Clock (mit kleinem Budget!) - Gunook
Space Invaders Clock (mit kleinem Budget!) - Gunook

Video: Space Invaders Clock (mit kleinem Budget!) - Gunook

Video: Space Invaders Clock (mit kleinem Budget!) - Gunook
Video: Sun Damage Is Terrifying 2024, November
Anonim
Image
Image
Teile sammeln
Teile sammeln

Vor kurzem habe ich einen coolen Build von GeckoDiode gesehen und wollte ihn sofort selbst bauen. Das Instructable ist Space Invaders Desktop Clock und ich empfehle Ihnen, es sich anzusehen, nachdem Sie dies gelesen haben.

Das Projekt wurde fast ausschließlich aus Teilen von Adafruit mit einem 3D-gedruckten Gehäuse und einer lasergeschnittenen Blende gebaut. Alles zusammen zu den Kosten des Builds zu addieren wird sehr kostspielig! (ca. 100 € oder mehr). Das Problem ist, wenn Sie keinen 3D-Drucker besitzen, müssen Sie bezahlen, um Ihr Modell drucken zu lassen, oder ein hässliches Gehäuse bei ebay kaufen, das oft nur ein wenig zu klein, zu schmal, zu kurz oder umgekehrt ist.

Die meisten meiner Builds müssen mit einem Bastelbudget erstellt werden und Gehäuse sind am Ende immer das teuerste Teil. Also beschloss ich, die gleiche Uhr zu bauen, aber mit einem anständigen Budget.

Wenn Sie gerne seltsame Uhren betrachten, schauen Sie sich meine Steampunk Voltmeter Clock an, die die gleichen Baumaterialien für das Gehäuse verwendet:-)

Schritt 1: Teile sammeln

Um dieses Projekt zu machen, benötigen Sie Folgendes. Denken Sie daran, dass Sie bei den Materialien für das Gehäuse VIELE Reste haben, die Sie in anderen Projekten verwenden können (was die Kosten für zukünftige Builds noch günstiger macht). Ich habe PDFs hochgeladen, die Sie benötigen, wenn Sie den Preis usw. bei ebay überprüfen möchten.

Tools (ich gehe davon aus, dass Sie diese bereits haben)

  • Lötkolben
  • Lot
  • Lötpumpe (wenn Sie einen Fehler machen und Lötmittel entfernen müssen)
  • Heißklebepistole
  • Heißklebestifte
  • Bastelmesser (auch bekannt als Stanley-Messer)
  • Lineal / Maßband / Messschieber
  • Akku-Bohrschrauber + Bohrer (1 mm bis 13 mm)
  • Rotierendes Multitool mit Trennscheibe (auch bekannt als Dremel)
  • Reinigungsflüssigkeit wie Isopropyl-Alkohol (billiges Aftershave geht auch)
  • Schutzmaske (wird beim Spritzlackieren verwendet)

Elektronik (Kosten der Elektronik = 13,05 £)

Einige davon hatte ich kostenlos. Altes elektronisches Spielzeug hat diese schönen Mylar-Lautsprecher im Inneren, wenn Sie sie auseinandernehmen. Während Sie dort sind, können Sie wahrscheinlich auch einen DC-Fass und einen Druckknopf bekommen.

  • Dupont / Überbrückungskabel - 0,99 €
  • DS1307 Echtzeituhrmodul - 0,99 £ (ich würde empfehlen, stattdessen DS3231 zu kaufen, wo verfügbar)
  • Arduino Nano + USB-Kabel - 2,23 €
  • 8 Ohm Mylar-Lautsprecher - 0,99 €
  • SPST-Momentandruckknopf - 1,49 €
  • 5,5-mm-DC-Fassbuchse - £1,26
  • 5V, 0,5A DC-Netzteil - £2.83
  • MAX7219 Punktmatrix-Display - £3.76

Gehäuse (Kosten für Gehäusematerial = £17,19)

  • 60 mm quadratisches Abflussrohr - £ 5,99 (Sie haben VIEL davon für weitere Projekte übrig)
  • Schwarze Sprühfarbe - 4,85 €
  • Schwarzes PVC (Schaumstoffplatte) - 2,99 €
  • Sekundenkleber - 0,99 €
  • 60mm Endkappen - £2.37

Gesamtkosten = £30,24:-) ……..das entspricht heute 38 USD für internationale Leser.

Ich arbeite gerne mit dem PVC-Vierkantrohr. Sie sind leicht zu bohren, zu schneiden, zu malen, und ich habe eine für meine Steampunk-Uhr verwendet.

Schritt 2: Bereiten Sie Ihr Abflussrohr vor

Bereiten Sie Ihr Abflussrohr vor
Bereiten Sie Ihr Abflussrohr vor

Markieren Sie, wo Sie die Dinge ablegen möchten

Das war so einfach. Ich habe nichts Schickes verwendet. Zuerst habe ich die 2,5 m Länge mit einer Bügelsäge auf ein für meine Bank zu Hause vertretbares Maß (ca. 30 cm) gekürzt. Ich schneide dies später mit einem Dremel ab, um die Kanten schön und gerade zu machen. Dann legte ich die Komponenten auf die Oberfläche des Rohres und benutzte einen permanenten Markt, um zu markieren, wo ich bohren und schneiden wollte. Ich verfolgte die Außenseite der LED-Matrix und benutzte ein rotierendes Multitool, um ein quadratisches Loch zu schneiden, damit es bündig passte. Ich benutzte einen digitalen Messschieber, um den Durchmesser des Druckknopfes und des DC-Laufs zu messen, um die Löcher in der richtigen Größe hinten und oben zu schneiden.

Schneiden Sie eine Lünette

Ich habe jede Menge PVC-Schaumplatten aus früheren Projekten herumliegen. Sie eignen sich hervorragend zum Montieren von Schaltkreisen in Gehäusen, zum Mischen von Epoxidharz darauf und zum Herstellen anderer Kleinigkeiten. Nehmen Sie ein Stück der Größe A4 oder A5 und schneiden Sie eine quadratische 5 mm Einfassung oder Blende, um die LED-Matrix zu umrahmen. Dadurch werden alle wackeligen Enden ausgeblendet, die Sie beim Schneiden des quadratischen Lochs für die Matrix gemacht haben. Dazu habe ich eine kleine Vorlage auf Inkscape gezeichnet und ausgedruckt (SVG-Datei angehängt). Ich klebte es dann mit Kreppband auf die Schaumstoffplatte und schneide es vorsichtig mit einem Cuttermesser herum. Es ist schwierig, es richtig zu machen, ich empfehle, zuerst die Innenseite und dann die Außenseite zu schneiden.

Alles lackieren

Sobald alle Löcher gebohrt und geschnitten sind, entfernen Sie alle Gratkanten. Reinigen Sie die Oberflächen mit einigen Alkoholtupfern, um Staub oder Verschmutzungen zu entfernen (oder ein billiges Aftershave, wenn Sie kein IPA haben). Versuchen Sie, in einem gut belüfteten Bereich zu sprühen und verwenden Sie nach Möglichkeit eine Maske. Ich habe dies draußen mit etwas Pappe auf dem Boden gemacht, aber es ist nicht ideal, selbst eine kleine Brise kann dazu führen, dass Farbe in dein Gesicht zurückfliegt. Seien Sie vorsichtig und tragen Sie nach Möglichkeit Schutzausrüstung.

Sprühen Sie das Rohr, die Blende und die Endkappen ein, damit sie alle die gleiche Art von Schwarz haben, und lassen Sie sie dann einige Stunden trocknen.

Schritt 3: Programmieren Sie das Arduino

Programmieren Sie den Arduino
Programmieren Sie den Arduino

Einige Informationen zum Code

Dank an GeckoDiode, da ich seinen Code genommen und so modifiziert habe, dass er mit dem MAX7219-Chip funktioniert. Die Adafruit-Version verwendet den I2C-Bus und die MAX verwendet den SPI-Bus. Dafür habe ich die MaxMatrix-Bibliothek verwendet, die ich heruntergeladen und in die Arduino IDE installiert habe. Wenn Sie mehr über MaxMatrix und die prinzipielle Funktionsweise der LED-Matrix erfahren möchten, gibt es ein sehr kurzes Tutorial auf HowToMechatronics.com. Die LED-Matrix besteht ausschließlich aus einfarbigen LEDs und nicht aus einem mehrfarbigen Display.

Eine Frustration, die ich hatte, war, dass es KEINE klaren Definitionen gibt, was die Funktionen für die Bibliothek sind und welche Argumente an jede übergeben werden müssen. Zum Glück konnte ich durch Versuch und Irrtum herausfinden, was was bewirkt, und am Ende war es nicht allzu schwierig, es richtig zum Laufen zu bringen. Das erste, was Sie verstehen müssen, ist, dass Sie definieren müssen, wie viele 8x8-Module sich in Ihrer Matrix befinden. In meinem Code wird dies in einer Ganzzahl namens "Module" wie folgt gespeichert:

"int-Module = 4;"

Dies ist die ANZAHL der 8x8-Module, die Sie in Ihrem Display miteinander verbunden haben. Nicht die Anzahl der LEDs oder der Pin, den Sie für die Sendedaten verwenden. Als nächstes sollten Sie sich daran erinnern, dass, wenn Ihr "Sprite" oder was auch immer alle vier Matrizen abdeckt, das Byte-Array wie folgt definiert werden muss:

"byte text_start_bmp = {32, 8, …*einige Bytedaten*…};"

Die Zahlen geben die Anzahl der Zeilen und Spalten in der Matrix an. Dabei wird das Byte mit dem Namen "text_start_bmp" über 32 Spalten und 8 Zeilen angezeigt. Die Zahlen werden nur auf einer einzigen 8x8-Matrix angezeigt, sodass die Minutenzahl 10 so aussieht:

"byte minute_ten_bmp = {8, 8, …*einige Bytedaten*…};"

Die Eindringlinge decken zwei Matrizen ab, so dass das Byte 16, 8 in den Bytedaten erhält.

Die andere Sache, die mich überrascht hat, war die Positionierung der Sprite-Daten. Sie können das Arduino bitten, das Sprite in einer anderen X / Y-Position auf der Matrix als der Standard-Ausgangsposition anzuzeigen. Der Code sieht für die Minute Null so aus:

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

Eine Zahl ist X-Anpassung und eine andere ist Y. Ich kann mich nicht erinnern, welche jetzt welche ist, aber wenn Sie das Sprite um eine Zeile oder Spalte nach oben oder unten verschieben möchten, erhöhen Sie einfach die Zahl positiv oder negativ. Einfach genug für eine 8x8-Matrix, aber wenn Ihr Sprite mehr als eine Matrix abdeckt, müssen Sie die Home-Position entsprechend einstellen. Das "POP"-Sprite wird unten gezeigt:

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

Beachten Sie jetzt, dass die Ausgangsposition 16 und nicht 8 ist? Hier zeigt der Code an, dass das Sprite von links nach rechts ab Positionszeile/Spalte 16 angezeigt wird. Es betrachtet zwei 8x8-Displays als ein einzelnes 16x8-Display, obwohl es 4 sind! Daher ist es wichtig, darüber nachzudenken, auf wie vielen Anzeigen das Sprite angezeigt wird, und die Byte-Arrays jedes Sprites entsprechend zu dimensionieren. Ansonsten werden Sie einige sehr interessante Sprites haben!

DS1307 RTC

Obwohl der DS1307 mit der Adafruit RTClib.h-Bibliothek gut funktioniert, können Sie die Zeit nicht manuell einstellen, was nur mühsam ist. Ich habe mich einfach damit entschieden, weil es weniger Code zu ändern bedeutete. Der DS1307 stellt die Uhrzeit anhand der Uhrzeit und des Datums ein, an dem der Code aus der Zeit Ihres Computers kompiliert wurde. Lernen Sie stattdessen, wie Sie die DS3231-Bibliothek verwenden, und stellen Sie sie in Zukunft einmal für eine oder zwei Minuten im Voraus ein. Es hat auch weniger "Drift", so dass es die Zeit im Laufe der Zeit besser hält. Beide Module verwenden den I2C-Bus und ich glaube, dass das DS3231 mit der RTClib.h verwendet werden kann, wenn Sie es weiterhin verwenden möchten.

Lade den Code hoch

Sobald Sie mit dem Code zufrieden sind, laden Sie ihn zum Arduino hoch. Ich habe meine Arduino-Skizze für Ihre Überlegung beigefügt.

Schritt 4: Elektronik zusammenbauen

Elektronik zusammenbauen
Elektronik zusammenbauen

Beim Hochladen des Codes würde ich empfehlen, die Elektronik zuerst mit Dupont- / Jumper-Drähten auf einem Steckbrett zusammenzubauen, damit Sie beim Hochladen des Codes wissen, dass alles wie vorgesehen funktioniert. Auf diese Weise können Sie alle Probleme mit der Anzeige der Sprites usw. ausbügeln, bevor Sie mit dem Kleben und Kleben beginnen. In meinem Code sehen Sie, dass ich die digitalen Pins 4, 5, 6, 7, 9 verwende, aber Sie können diese bei Bedarf ändern. Möglicherweise müssen Sie Kabel an die Taste, die DC-Buchse und den Lautsprecher anlöten, aber die meisten sollten einfache Steckverbindungen sein.

Wenn Sie zufrieden sind, dass die Elektronik wie vorgesehen funktioniert, sollten Sie das Löten der Anschlüsse in Betracht ziehen. Sie können dies mit Kupfer-Stripboard / Veroboard tun, aber für die kleine Anzahl von Komponenten können Sie direkt an die Pins des Arduino löten. Es sieht aus wie ein Rattennest, aber nach dem Zusammenbau wird sowieso niemand in das Gehäuse sehen.

Ich habe den Druckknopf zum Funktionieren gebracht, wenn der "mainButton" -Pin nach unten gezogen wird. Ich fand, dass das Arduino einen falschen Druckknopf erkannte, wenn sich die schwimmende Elektronik darauf niederließ. Die Verwendung eines 10K-Pulldown-Widerstands am Druckknopf und das Setzen des Pins auf "INPUT_PULLUP" löste dieses Problem für mich.

Anbei ist der Schaltplan in PDF und PNG, damit Sie wissen, wo Sie die Pins anschließen müssen.

Schritt 5: Montieren Sie die Elektronik und schließen Sie oben

Montieren Sie die Elektronik und Nahaufnahme
Montieren Sie die Elektronik und Nahaufnahme
Montieren Sie die Elektronik und schließen Sie es
Montieren Sie die Elektronik und schließen Sie es

Für meine Uhr habe ich die Elektronik mit Heißkleber montiert, aber achte darauf, nicht zu viel aufzutragen (Elektronik mag es nicht, zu lange aufgeheizt zu werden). Ich benutzte einen kleinen Tropfen Sekundenkleber, der um die Lünette punktiert war, und drückte ihn gegen die Vorderseite. Ich beendete das Gehäuse, indem ich die Endkappen an jedem Ende eindrückte. Natürlich können Sie die Endkappen kleben, um die Baugruppe vollständig zu umschließen, aber ich habe eine Seite von mir offen gelassen, damit ich weiterhin auf den USB-Anschluss des Arduino zugreifen kann, um Datum und Uhrzeit in Zukunft zurückzusetzen.

Schritt 6: Genießen Sie

Genießen
Genießen
Genießen
Genießen

Insgesamt bin ich zufrieden mit der Art und Weise, wie dies herausgekommen ist, wenn man bedenkt, dass es nur ein Dachrinnenrohr und Sprühfarbe ist. Ich hoffe, es gefällt euch und lasst es mich wissen, wenn euch coole Upgrades einfallen, die hinzugefügt werden können. Mich würde interessieren, ob das jemand billiger machen kann oder ob es eine andere sparsame Möglichkeit gibt, ein Gehäuse herzustellen, das ich in meinem nächsten Projekt ausprobieren kann.

Empfohlen: