Inhaltsverzeichnis:

Mikro-Binäruhr - Gunook
Mikro-Binäruhr - Gunook

Video: Mikro-Binäruhr - Gunook

Video: Mikro-Binäruhr - Gunook
Video: Arduino Micro Binary Clock 2024, Kann
Anonim
Mikro-Binäruhr
Mikro-Binäruhr
Mikro-Binäruhr
Mikro-Binäruhr

Tinkercad-Projekte »

Nachdem Sie zuvor ein Instructable (Binary DVM) erstellt haben, das den begrenzten Anzeigebereich mit Binär nutzt.

Es war nur ein kleiner Schritt, nachdem zuvor das Hauptcodemodul für die Dezimal-zu-Binär-Konvertierung erstellt wurde, um eine Binäruhr zu erstellen, aber das einzige, was fehlte, war eine RTC (Real Time Clock).

Allerdings hat der Microbit keine eingebaute RTC.

Das RTC ermöglicht die Realisierung von Uhrenprojekten mit Batteriepufferung.

Als solches verwendet das folgende Projekt eine Microbit und eine Kitronik RTC, um eine 24H-Uhr mit Binäranzeige zu erstellen und verfügt zusätzlich über eine Alarmoption.

Die Projektsoftware, die auf dem Microbit laufen soll, wird in Makecode-Blöcken erstellt.

Lieferungen:

MicroBit V1 oder V2

MicroBit-Schutzhülle (optional)

Makecode

Kitronik RTC

CR2032

Codeblöcke

Cura

3D Drucker

1 * SPDT (ein - ein) Schalter

1 * SPDT (Ein - Aus - Ein) Schalter

2 * SPST (normalerweise offen), Taster

4 * M3 (10+6mm), M/F-Abstandshalter mit M3-Muttern

4 * M3 (8mm), Schrauben

Überbrückungskabel M/F-Stecker, 100 mm, 28 AWG vorkonfektioniert mit Stecker und Buchse.

1 * Piezo-Summer (kein Antrieb)

Diese Verbrauchsmaterialien sind in einer Reihe von Verkaufsstellen erhältlich, und Sie haben möglicherweise Ihren eigenen bevorzugten Lieferanten.

Schritt 1: Definieren des Anzeigebereichs

Definieren des Anzeigebereichs
Definieren des Anzeigebereichs
Definieren des Anzeigebereichs
Definieren des Anzeigebereichs

Obwohl der Anzeigebereich hinsichtlich der gleichzeitig darstellbaren Datenmenge begrenzt ist, eignet er sich ideal für die Anzeige von Bitdaten.

Als solches gibt es genügend Fläche, um 4 x 4-Bit-Binärwörter anzuzeigen, um die Zeit mit Benachrichtigungen und Auswahlmodi darzustellen.

Die Anzeige ist in 3 Hauptbereiche unterteilt; Zeit, Auswahl und Modi.

Zeit

Sechzehn LEDs sind der Zeit zugeordnet, jede Spalte von 4 LEDs ist einem Zeitintervall zugeordnet, die Intervalle haben die Form H, H, M & M.

Jedes Bit des Binärworts hat eine Gewichtung von 1, 2, 4 & 8, wobei das LSB in Zeile 4 und das MSB in Zeile 1

Jedes binäre 4-Bit-Wort ermöglicht eine Zählung von 0 bis 15, was für das 24-Stunden-Zeitformat mehr als ausreichend ist und eine maximale Zählung pro Spalte von 2, 9, 5 & 9 erfordert.

Auswahl

Eine Reihe von 4 LEDs in Reihe 0 wird verwendet, um die bei der Zeiteingabe ausgewählte Zeitspalte zu identifizieren.

Modi

Eine Spalte mit 5 LEDs in Spalte 4 wird verwendet, um Modi, Funktionen und Betrieb zu identifizieren.

Häkchen - LED 4, 0 blinkt an und aus wird verwendet, um Sekunden und Betrieb anzuzeigen.

Zeit - LED 4, 1 zeigt den Zeitmodus an, wenn sie eingeschaltet ist. (Standardmodus beim Einschalten)

Alarm - LED 4, 2 zeigt den Alarmmodus an, wenn sie eingeschaltet ist.

Alarmbenachrichtigung - LED 4, 3 & LED 4, 4 blinken, wenn der Alarm ausgelöst wird.

Schritt 2: RTC (Echtzeituhr)

RTC (Echtzeituhr)
RTC (Echtzeituhr)
RTC (Echtzeituhr)
RTC (Echtzeituhr)
RTC (Echtzeituhr)
RTC (Echtzeituhr)
RTC (Echtzeituhr)
RTC (Echtzeituhr)

Die RTC ist das schlagende Herz der Anwendung und ermöglicht das Einstellen und Halten der genauen Zeit.

Weitere Details zum RTC finden Sie bei Kitronik.

Die RTC bietet eine geregelte Stromversorgung, die es überflüssig macht, den Microbit über seinen eigenen USB- oder JST-Anschluss mit Strom zu versorgen, und ein Batterie-Backup wird bereitgestellt, um die Zeit im Falle eines Stromausfalls beizubehalten.

Bevor Sie die RTC verwenden, müssen Sie das Erweiterungspaket laden.

Wählen Sie mit Makecode über das Symbol Einstellungen die Option Erweiterungen und geben Sie Kitronik RTC in die Suche ein.

Wählen Sie das Paket aus, um es zu installieren, und es wird zu den anderen Erweiterungen hinzugefügt.

Es gibt eine Reihe von Codeblöcken, die von der RTC gelesen und in sie geschrieben werden können.

Für die Binary Clock benötigen wir nur 4 dieser Codeblöcke.

Diese werden verwendet, um die eingestellte Zeit in die RTC zu schreiben und die Zeit zurückzulesen, um die Uhranzeige zu aktualisieren.

Schritt 3: Codieren der Uhr

Codieren der Uhr
Codieren der Uhr
Codieren der Uhr
Codieren der Uhr
Codieren der Uhr
Codieren der Uhr

Der erste Teil des Codes ist die Programminitialisierung von Variablen, Arrays und Informationstexten.

Drin

Bclk – Binäre Uhr

<Sel - Eine Schaltfläche wählt die Spalte aus, die für die Zeiteinstellung angepasst wird.

Inc – B-Taste erhöht die Zeit.

Durch gleichzeitiges Drücken der beiden Tasten A und B wird der Modus zwischen Zeit und Alarm geändert.

Strval – ist der Stringwert, der die Zeit in der Form „HH:MM:SS“enthält, die von der RTC zurückgegeben wird

Nur HH & MM werden verwendet, um die Uhrzeit anzuzeigen oder einzustellen.

Modus – behält den Moduswert für Zeit = 1 und Alarm = 2 bei, der mit der Tastenkombination A+B ausgewählt wurde.

Periode – ist der Wert für die Zeitspalte, ausgewählt mit der Taste A.

0 = Spalte 0 (H), 1 = Spalte 1 (H), 2 = Spalte 2 (M), 3 = Spalte 3 (M)

Tick_en – Aktiviert = 1 oder Deaktiviert = 0 den Tick (Sekunden), Indikator.

Inc – Zwischenspeicherung des inkrementellen Zeiteinstellwertes.

Tm_list – speichert den Wert jeder Zeitspalte während der Einstellung.

Alarm – Aktiviert oder deaktiviert die Alarmanzeige.

Das forever ruft ständig die Tick-Funktion auf.

Tick

Die normalerweise aktivierte Tick-Funktion zeigt eine abwechselnde Ein-/Aus-LED in der oberen rechten Ecke an, um Betrieb und Sekunden anzuzeigen.

Darüber hinaus ruft es die showtm-Funktion auf, die die RTC liest und verarbeitet, um sie in binärer Form anzuzeigen, und gleichzeitig alarm_mode aufrufen, wenn dies aktiviert ist, werden die Alarmbenachrichtigungs-LEDs in der unteren rechten Ecke angezeigt.

Showtm

Die Funktion showtm ruft rdtime auf und der daraus verwendete Wert ist strval, der den Zeitstring enthält.

Es wird eine Schleife erstellt, die durch strval inkrementiert, jede einzelne Zahl extrahiert und das Trennzeichen ":" ignoriert.

Jede einzelne Zahl wird dann mit der Funktion dec2bin in ihr binäres Äquivalent umgewandelt und der richtigen Spalte zugeordnet.

Rdtime

Die Funktion rdtime liest die ersten 5 Zeichen der von der RTC zurückgegebenen Zeichenfolge (ohne Berücksichtigung des Sekundenanteils) und übergibt sie an strval.

Wenn der Alarm eingestellt wurde (Modus = 2), werden die eingestellten Alarmwerte mit den von der RTC zurückgegebenen Werten verglichen, bei Übereinstimmung dann Alarm = 1, wenn keine Übereinstimmung vorliegt Alarm = 0.

Alarm_mode zeigt, wenn aktiviert, zwei abwechselnd an/aus LEDs in der unteren rechten Ecke von Spalte 4 an.

Dec2bin

Die Funktion dec2bin wandelt eine Dezimalzahl in eine Binärzahl um und zeigt sie in der richtigen Spalte an.

Über value wird die umzuwandelnde Zahl und über col die Anzeigespalte übergeben.

List2 ist das Array, in dem das 4-Bit-Binärwort aus dem Binärumwandlungsprozess gespeichert wird.

Es wird eine Schleife initiiert, die den Wert durch 2 teilt der Rest wird im Array-Element gespeichert der Integer-Wert wird durch 2 geteilt, dies wird wiederholt, bis der Integer-Wert <=1 ist und dieser letzte Wert in das Array eingefügt wird.

Der größte einstellige Dezimalwert ist 9 und binär ist dies 1001 als 4-Bit-Wort.

Das Array muss dann in umgekehrter Reihenfolge verarbeitet werden, um das richtige Ergebnis zu erhalten.

Dann wird eine Schleife initiiert, um die richtige LED in der entsprechenden Spalte einzuschalten, dies wird für jedes Auftreten einer Eins im 4-Bit-Binärwort durchgeführt.

Die menschliche Schnittstelle wird mit Knöpfen erreicht.

Der A-Knopf

Dadurch wird die Spalte ausgewählt, in die der Zeitwert eingegeben wird, und zeigt eine leuchtende LED über der ausgewählten Spalte in Zeile 4 an.

Nachdem alle Zeitspalten aktualisiert wurden, aktualisiert das Inkrementieren der Auswahl bis zur 5. Spalte die Zeitvariable.

Bei Modus = 1 wird die RTC aktualisiert, ansonsten wird die Alarmzeit aktualisiert.

Der B-Knopf

Dies ist die Inkrement-Schaltfläche und erhöht die ausgewählte Zeitspalte.

Um Fehler zu vermeiden und Zeit beim Ermitteln des richtigen Wertes zu sparen, wird der maximal eingebbare Wert pro Spalte basierend auf dem Zeitwert für ein 24-Stunden-Zeitsystem begrenzt.

Diese Maximalwerte werden in tm_max gespeichert, einer pro Zeitspalte und werden automatisch basierend auf der Zeitspalte ausgewählt.

Die Maximalwerte sind H = 2, H = 9, M = 5, M = 9

Der Inkrementwert wird in dec2bin in binär umgewandelt und die Anzeige aktualisiert.

Taste A+B Modusauswahl

Durch gleichzeitiges Drücken beider Tasten kann zwischen dem Zeitmodus oder dem Alarmmodus gewählt werden, der entsprechende Modus wird auf dem Display angezeigt.

Je nachdem, welcher Modus ausgewählt ist, wird die Anzeige aktualisiert, um entweder die Uhrzeit oder die eingestellte Alarmzeit anzuzeigen.

Schritt 4: Betrieb

Betrieb
Betrieb
Betrieb
Betrieb
Betrieb
Betrieb

Laden Sie die Hex-Datei auf das Microbit herunter, legen Sie eine CR2032-Batterie in die RTC ein.

Stecken Sie den Microbit in die RTC und versorgen Sie die RTC-Platine über USB oder die Schraubklemmen.

Die Tick-LED beginnt zu blinken und kurz darauf wird die Uhrzeit angezeigt.

Wenn dies die erste Verwendung ist, ist die angezeigte Uhrzeit sehr wahrscheinlich falsch und muss auf die richtige Uhrzeit eingestellt werden.

Modusauswahl

Durch gleichzeitiges Drücken der Auswahltaste (A) und der Erhöhungstaste (B) können Sie zwischen den Modusoptionen zwischen Zeit und Alarm wechseln.

Einstellen der Uhrzeit

Die Zeiteinstellung erfolgt im 24H-Modus.

Verwenden Sie die Auswahltaste (A), um die LED über die obere Reihe zu bewegen, dies zeigt die Spalte an, in der die Zeit geändert werden kann. Die Auswahlspalten entsprechen H, H, M & M.

Wobei H = Stunden und M = Minuten.

Nachdem Sie eine Spalte ausgewählt haben, drücken Sie wiederholt die Inkrementiertaste (b), um den Zähler bei jedem Drücken um eins zu erhöhen. Die Zählerstände werden binär angezeigt, schließlich handelt es sich um eine binäre Uhr.

Die Inkrement-Taste erhöht nur die Zählung und wird, sobald das Maximum erreicht ist, auf Null zurückgesetzt, weiteres Drücken erhöht die Zählung wieder.

Sobald die erste Spaltenzeit eingestellt ist, drücken Sie die Auswahltaste für die nächste Spalte und verwenden Sie dann die Inkrement-Taste, um die Spaltenzeit einzustellen.

Hinweis: *** Wenn Sie die Uhrzeit oder den Alarm einstellen, müssen Sie eine Uhrzeit in die ausgewählte Spalte eingeben, auch wenn die Uhrzeit in der Spalte unverändert bleiben soll, da das Überspringen einer Spalte diese Spaltenzeit auf Null setzt ****

Wiederholen Sie den Vorgang, bis die Uhrzeit über alle 4 Spalten eingestellt ist.

Drücken Sie die Auswahltaste zum fünften Mal, um sie in die fünfte Spalte zu verschieben, und die Zeit ist eingestellt.

Einstellen des Weckers

Das Einstellen der Alarmzeit erfolgt genauso wie bei der Uhrzeit.

Damit der Alarm zur gewünschten Zeit ausgelöst wird, lassen Sie den Modus auf Alarm eingestellt.

Um den Alarm auszuschalten, stellen Sie den Modus auf Zeit.

Um die eingestellte Alarmzeit anzuzeigen, wechseln Sie den Modus zwischen Zeit und Alarm und die Alarmzeit wird für einen kurzen Zeitraum angezeigt, bevor zur Anzeige der aktuellen Zeit zurückgekehrt wird.

Die Alarmzeit wird nicht in der Echtzeituhr gespeichert. Wenn die Stromversorgung unterbrochen wird, muss sie daher zurückgesetzt werden.

Schritt 5: Box it

Box it
Box it
Boxen Sie es
Boxen Sie es

Das Projekt wird im richtigen Winkel sitzen, um die Uhr zu sehen, aber eine Box verleiht ein Gefühl von Beständigkeit.

Sie können eine Schachtel mit geeigneter Größe kaufen und die entsprechenden Bereiche ausschneiden und ausbohren, damit der Microbit in die Buchse passt.

Jedoch; Außerdem wollte ich die Microbit-Tasten zusammen mit anderen Bedienelementen und Anzeigen duplizieren.

Normalerweise müssen Legenden auf das Feld angewendet werden, um Schaltflächen zu identifizieren.

Diese könnten von Hand aufgetragen werden; bemalt, graviert oder Etiketten anbringen.

Eine Methode, um all diese Optionen zu realisieren, wäre der 3D-Druck der Box, aber zuerst müssten wir eine CAD-Datei erstellen, mit der wir die Druckerdatei erstellen.

Die Dateierstellungsoptionen sind handgezeichnet oder mit Code gezeichnet.

Ich habe mich für "mit Code gezeichnet" mit Tinkercad CodeBlocks entschieden

Die Dateien für den Box-Deckel und die Box-Basis finden Sie auf Tinkercad CodeBlocks

Schritt 6: Blockcode-Design

Blockcode-Design
Blockcode-Design
Blockcode-Design
Blockcode-Design

Die Box ist ein zweiteiliges Design bestehend aus einem Boden und einem Deckel.

Vier Eckschraubenlöcher werden verwendet, um den Deckel mit einem Ausschnitt auf der linken Seite zu befestigen, um den Anschluss für den USB-Stecker zu ermöglichen.

Der Deckel hat eine Aussparung für den Microbit-Anschluss und die erforderlichen Schalter, außerdem wird ein beliebiger Text direkt auf den Deckel gedruckt und die Schraubenlöcher werden an den Basissäulen ausgerichtet.

Die RTC-Platine wird mit 4 Säulen und 4 Schrauben an der Unterseite des Deckels befestigt.

Die Größe der Box plus Deckel beträgt 70 x 105 x 31 mm

Der Code für den Deckel und die Basis ist in TinkerCad CodeBlocks verfügbar.

Schritt 7: 3D-Druck

3d Drucken
3d Drucken
3d Drucken
3d Drucken
3d Drucken
3d Drucken
3d Drucken
3d Drucken

Laden Sie die Dateien in Cura und wenden Sie Ihre bevorzugten Slicer-Einstellungen an.

Angewandte Einstellungen.

Qualität: 0,15 mm

Füllung: 80%, Tri-Hexagon

Basis: Brim

Speichern Sie Ihre Dateien und drucken Sie sie aus.

Mit Cura können Sie beide Dateien zusammen auf dieselbe Druckfläche laden und in einem Rutsch drucken.

Schritt 8: Einfüllen

Füllung
Füllung
Füllung
Füllung
Füllung
Füllung

Der Deckel der Box ist mit eingelassenem Text bedruckt, der mit farbigem 2-Komponenten-Epoxidharz gefüllt wird.

Das Harz wird mit einem Verhältnis von 2 Teilen Harz zu 1 Teil Härter gemischt, dann wird ein opakes Farbpigment eingemischt.

Als Kontrastfarbe zum Hintergrund wurde Gelb gewählt. Weiß wäre eine andere Wahl gewesen.

Nach dem Mischen wird das Harz in die Vertiefung getropft, indem mit einem Cocktailstäbchen kleine Harzklumpen übertragen werden, die verwendet werden, um die Vertiefung in den Buchstaben allmählich zu füllen.

Vermeiden Sie es, zu viel Harz auf einmal aufzutragen, da Sie wahrscheinlich Luftblasen bekommen und oder zu viel Überlauf auf die umgebende Oberfläche erzeugen, was bedeutet, dass Sie nach dem Aushärten mehr Reinigungs- und Schleifmittel entfernen müssen.

Füllen Sie also langsam, um sicherzustellen, dass der Boden des Briefes bedeckt ist, und bauen Sie ihn mit einer leicht erhöhten Oberfläche auf.

Sobald das Harz ausgehärtet ist, ist ein leichtes Schleifen erforderlich, um die Oberfläche zu nivellieren. Beginnen Sie mit der Sorte P240 und gehen Sie nach Bedarf zu feineren Sorten über, um ein glattes Finish zu erhalten, das schließlich mit einer Politur abgeschlossen wird.

Üben Sie nicht zu viel Druck und zu viel Geschwindigkeit aus, sonst überhitzen Sie das PLA und das Harz, was aufgrund der Kornaufnahme zu einer stumpfen Oberfläche führt. Ein wenig Wasser während des Schleifvorgangs wirkt als Schmier- und Kühlmittel.

Schritt 9: Montage

Montage
Montage
Montage
Montage
Montage
Montage

Der Microbit passt in zwei Ausrichtungen in die Buchse, wobei der Hauptteil der RTC abgewandt ist.

Wenn der Microbit dem Hauptteil der RTC zugewandt ist, können die Link-Anschlüsse jedoch nicht verwendet werden, wenn der Microbit vom Hauptteil der Platine abgewandt ist, können wir diese Anschlüsse verwenden.

Die Montage beginnt mit dem Auflöten einer rechtwinkligen SIL-Stiftleiste auf das RTC, damit die Verbindungen mit Steckanschlüssen hergestellt werden können.

Die RTC wird mit 4 * M3 (10+6mm), M/F-Abstandshaltern mit M3-Muttern befestigt, die mit 4 * M3 (8mm) am Deckel befestigt werden, Schrauben in den vorgefertigten Löchern.

Die Schalter werden in die vorgefertigten Löcher im Deckel eingebaut.

Die erforderlichen Anschlüsse sind:

GND, 3V, P1 (set), P2 (alert), P5 (sel) & P11 (inc)

Hinweis *** Widerstände (1R), im Diagramm für P5 & P11 sind lediglich Referenzanschlusspunkte, da eine direkte Verbindung zu diesen Pins an den Microbit-in-Code-Blöcken derzeit nicht verfügbar ist. ***

P5 ist der externe Anschluss für Taster A, der über einen SPST-Taster angeschlossen wird. Eine Verbindung mit P5 und der andere Pin ist mit GND verbunden. Diese Taste dient zur Spaltenauswahl während der Zeiteinstellung.

P11 ist der externe Anschluss für Taster B, der über einen SPST-Tastschalter angeschlossen wird. Eine Verbindung mit P11 und der andere Pin ist mit GND verbunden. Diese Taste dient zum Erhöhen der Zahlen während der Zeiteinstellung.

P1 ist ein SPDT-Schalter (on-on), der zum Aktivieren oder Deaktivieren der Einstellungsoptionen verwendet wird. Der mittlere Pin geht an P1, während ein Pin mit GND und der andere über einen 10k-Widerstand mit 3V verbunden ist. Dies ermöglicht das Anlegen von H (3V) und L (0V) an diesen Pin. Wenn P1 an 3V angeschlossen ist, aktiviert dies die Zeiteinstellungsoptionen und wenn 0V die Zeiteinstellung deaktiviert. Dadurch wird gesteuert, ob die A- und B-Tasten eine Wirkung haben.

P2 ist ein SPDT-Schalter (Ein-Aus-Ein), der verwendet wird, um den Warntongeber und optionale externe Lichter zu aktivieren oder zu deaktivieren.

Der Alarmtoner ist ein Piezo-Summer (einfach mit einem doppelseitigen Klebepad befestigt), der einen Impulsantrieb benötigt, der vom Microbit bereitgestellt wird.

Schritt 10: Endlich

Sie haben die Elemente in der Box zusammengebaut, das Microbit programmiert und in die Buchse der Box gesteckt.

Als nächstes schalten Sie die Stromversorgung ein und stellen Sie die Zeit ein.

Genießen.

Code-Wettbewerb blockieren
Code-Wettbewerb blockieren
Code-Wettbewerb blockieren
Code-Wettbewerb blockieren

Zweiter im Block Code Contest