Inhaltsverzeichnis:

Arduino Schachuhr - Gunook
Arduino Schachuhr - Gunook

Video: Arduino Schachuhr - Gunook

Video: Arduino Schachuhr - Gunook
Video: Arduino project: Chess Clock 2024, November
Anonim
Arduino Schachuhr
Arduino Schachuhr

Ich konnte keine Anleitung für eine gute Arduino-Schachuhr finden, also baute ich stattdessen meine eigene, die ich hier beschreiben werde.

Schritt 1: Teileliste

Liste der Einzelteile
Liste der Einzelteile

Hier sind die Dinge, die Sie brauchen: Arduino Nano (oder jeder Arduino UNO-Typ wird tun) Lötkolben Lötplatine oder Vero-Platine 2 Dual-AA-Batteriehalter 3 X 10k OHM-Widerstände Sicherungshalter 2 X Erdungsstifte von 2 UK-Steckern 2 X 4 Ziffer 7-Segment-Anzeigen Summer 1 Kippschalter 1 Taste klein (drücken, um Typ zu machen) USB 1 Kabel (oder was auch immer in Ihren Arduino passt) Mikrofonarmaturen und Mutternschrauben. Dafür habe ich ein Meccano-Set bei ebay geboten und gewonnen und verwendet, was ich gefunden habe Gehäuse (optional) Steckbrett und Überbrückungskabel (optional, aber empfohlen, es zuerst zu prototypieren) Mal, viel Zeit! Ich habe ein Bild angehängt, aber dies war von meinen Ersatzteilen nach meinem Build, so dass einige Komponenten wie angegeben fehlen.

Schritt 2: Prototyping

Prototyp entwickeln
Prototyp entwickeln
Prototyp entwickeln
Prototyp entwickeln

Das gesamte Projekt kann in diese Teile aufgeteilt werden: 1. die Schaltung richtig machen 2. das Programm 3. das physikalische Layout Dieser Schritt ist optional, da ich Ihnen den Schaltplan gebe, aber ich empfehle Ihnen dringend, es in a. auszuprobieren Steckbrett zuerst, da es bestätigt (oder nicht), dass Sie alle Teile haben, die Sie benötigen, und es Ihnen ermöglicht, über das physische Layout aller Teile für ein Gehäuse oder eine Basis nachzudenken. Ich habe hier ein Bild meines Prototyps in einem Steckbrett und auch einen Schaltplan angehängt. Einige Hinweise zur Schaltung: 1. Oben links im Schaltplan wird der Pin auf dem Display angezeigt, der mit dem Segment (Kathoden) oder der Ziffer (Anoden) verbunden ist. 2. Sie werden feststellen, dass für jedes Display die Segmente (Kathoden) mit dem entsprechenden Segment des anderen Displays verbunden sind. Dies liegt daran, dass die Anzeige gemultiplext wird, um die richtigen Ziffern anzuzeigen. 3. Der Reset-Schalter und die Wippe sind mit Pulldown-Widerständen verdrahtet, um den Eingang LOW zu halten, wenn die jeweilige Taste nicht gedrückt wird. Weitere Informationen hierzu finden Sie unter https://www.arduino.cc/en/tutorial/button. 4. Der Stromkreis ist vollständig getrennt, aber einfach. Es handelt sich um 4 AA-Batterien in Reihe mit einem Schalter, die in die roten und schwarzen Adern eines abgeschnittenen USB-Kabels eingelötet werden. Das USB-Kabel geht dann in das Arduino.

Schritt 3: Das Programm

Das Programm
Das Programm
Das Programm
Das Programm

Sobald Sie es auf einem Steckbrett haben, müssen Sie den Controller schreiben. Zum Glück für Sie habe ich meinen Code hier angehängt, aber ich möchte Sie ermutigen, diesen Code auszuprobieren oder zu optimieren. Wenn Sie es von Grund auf neu schreiben, überlegen Sie zuerst, welche Pins auf was gesetzt werden sollen, um alle 10 Ziffern zu bilden Ziffer (siehe Bild). Der nächste Schritt besteht darin, die Ziffern zu multiplexen, sodass Sie möglicherweise auf jeder der 8 Ziffern eine andere Zahl oder ein anderes Muster anzeigen können. Ich habe die Geschwindigkeit des Multiplexens optimiert, bis es richtig aussah, zu schnell und die Zahlen verschmelzen zwischen benachbarten Ziffern und zu langsam und das bloße Auge kann das Multiplexen erkennen. Der nächste Schritt besteht darin, die Zahlen als 2 Sätze von 4 Zahlen herunterzuzählen, die 2 Countdowns darstellen. Ich habe mich dafür entschieden, die erste Ziffer für Minuten, die nächsten 2 für Sekunden und die letzte für Zehntelsekunden zu verwenden, aber Sie können auch 2 für Minuten und 2 für Sekunden wählen. Der Countdown kann mit einer einfachen for-Schleife kalibriert werden, die nichts tut, sodass ein Tick einer 'Sekunde' auf dem Display tatsächlich eine echte Sekunde ist. Ich habe meine ziemlich nah dran, aber ich dachte mir, dass es für eine informelle Schachpartie nicht so wichtig ist, wenn jeder Spielzug die gleiche Anzahl von Einheiten hat. Ich denke, Sie möchten es vielleicht genauer machen, wenn Sie Ihre Schachuhr für ein Turnier verwenden oder sogar ein Ei messen möchten! Die Uhr lädt beim Einschalten in den Reset-Modus. Dann wartet es darauf, dass die Wippen auf beiden Seiten getroffen werden und zählt von den (Standard) 5 Minuten herunter. Der Code hört auf die Reset-Taste, wenn die Wippe ausbalanciert ist. wenn es getroffen wird, geht die Uhr wieder in den Reset-Modus. An diesem Punkt kann die Reset-Taste verwendet werden, um die gewünschten Minuten für jedes Spiel von 1 bis 10 zu durchlaufen. Wenn die gewünschte Zeit angezeigt wird, kann die Wippe erneut gedrückt werden, um die Uhr zu starten. Schließlich müssen Sie etwas tun, um anzuzeigen, dass die Zeit abgelaufen ist. In meinem Fall werden alle Striche (-) angezeigt und eine Reihe von Signaltönen abgespielt, dann wird eine Seite als 0000 (der Verlierer) und die andere Seite als zu jeder Zeit angezeigt wurde vom Gewinner ungenutzt.

Schritt 4: Physischer Build

Körperbau
Körperbau

Die nächste Phase ist der physische Aufbau. Wippschalter Das erste Stück besteht darin, den Wippschalter zu bauen. Dieser Schalter muss eine von zwei Verbindungen schließen, aber niemals beide. Auch muss es in der Mitte balancieren können, wo es keine Verbindung schließt. Dadurch wird die Uhr angehalten. Hier habe ich ein kleines Stück Holz verwendet und an beiden Enden einen britischen Erdungsstift angeschraubt. Dann wird in der Mitte ein Pivot gebaut, um den Rocker vom Board zu heben. Auch hier habe ich mein ebay-Meccano ausgiebig für dieses Stück genutzt. Wenn die Wippe auf der Platine montiert ist, müssen die Massestifte in die Sicherungshalterclips gesteckt werden, um die Verbindung zu schließen. Damit sich dies glatt anfühlt, habe ich die Kanten der Erdungsstifte abfeilt, damit sich die Einfahrt in den Sicherungshalter leicht bewegen lässt (siehe Bild). Schalter. Dann nahm ich es wieder ab und lötete die Komponenten und Drähte mit der gleichen Lücke ein. Wenn Sie dies nicht tun, kann es schwierig sein, die resultierenden Bretter wieder auf das Plexiglas der Basis zu schrauben. Zeichnen Sie das Layout zuerst auf Papier und denken Sie daran: - wie hoch die "Oben"-Seite jeder Wippe für das Gehäuse sein wird - einige Komponenten wie die Batteriehalter und der Arduino-USB-Anschluss müssen nach Fertigstellung zugänglich sein - Wenn die Schalter zu an einem Deckel des Gehäuses montiert werden, dann verbinden Sie ihre Drähte mit Steckern, damit der Deckel vollständig entfernt werden kann. (meiner hat nur ein Scharnier, aber ich habe dies trotzdem getan) - Ich habe die 7-Segment-Anzeigen gekippt, indem ich die Pins auf einer Seite mit Sicherungsdraht verlängert habe, wodurch diese Seite höher aus dem Board sitzen kann Gehäuse Ich hatte geplant, ein benutzerdefiniertes Gehäuse zu bauen, aber Am Ende hatte ich nicht genug Zeit und das Plexiglas ist schwer zu schneiden, also kaufte ich eine Schachtel, die ähnlich groß war wie ich, und modifizierte sie ein wenig. Ich denke, es ist gut, ein transparentes Gehäuse zu haben, damit die Funktionsweise gesehen werden kann, aber stellen Sie sicher, dass die Batterien und der USB-Anschluss für Programmoptimierungen verfügbar bleiben. So viel Spaß und viel Glück!

Schritt 5: Andere Optionen…

Mögliche Erweiterungen oder Optionen: - Abspielen einer anderen Tonfolge, je nachdem, welche Seite gewinnt - Abspielen einer Melodie nach Abschluss Ich glaube, dass dies mit den analogen Pins und einem entsprechenden Summer möglich ist. - verschiedene offizielle Schach-Timing-Muster (z. B. Zeit für jeden gespielten Zug hinzufügen) - Verwenden Sie das 7-Segment, um 2 Ziffern für Minuten und 2 für Sekunden zu sein

Schritt 6: 2019-Update

2019-Update!
2019-Update!
2019-Update!
2019-Update!
2019-Update!
2019-Update!

Also kehrte ich zu meinem ersten Instructable zurück und machte diese Schachuhr wieder!

Ich habe mehr oder weniger die gleichen Schritte befolgt, aber mit den folgenden Verbesserungen:

Körperbau

  • Der ganze Aufbau ist kompakter und auf einem Holzsockel (siehe Fotos)
  • Umgeschaltet auf eine einzelne 9-V-Batterie, die über einen Schalter direkt an die VIN und GND angeschlossen ist
  • Der Wippschalter ist ein Meccanno, bei dem jede Seite gedrückt gehalten wird, wenn sie von superstarken Magneten gedrückt wird.

Code

Ich habe auch den Code verbessert, der hier angehängt ist. Verbesserungen sind:

  • Die Anzeige von Zehntelsekunden und Ziffern nach rechts verschoben
  • Inkremente hinzugefügt. Als Optionen wurden 5 Min. plus 5 Sek. pro Zug und 10 Min. plus 5 Sek. pro Zug hinzugefügt

Ein Liniencoupé zum Umschalten der Anzeigen (L R) hinzugefügt, wenn Sie nach dem Build feststellen, dass der Wippschalter nicht die richtige Uhr startet

Schaltkreis

Empfohlen: