Inhaltsverzeichnis:

Positionsbasierte Multifunktionswürfeluhr - Gunook
Positionsbasierte Multifunktionswürfeluhr - Gunook

Video: Positionsbasierte Multifunktionswürfeluhr - Gunook

Video: Positionsbasierte Multifunktionswürfeluhr - Gunook
Video: Verwalten von Windows 10 Geräten in einer On-Premises Domäne 2024, Juli
Anonim
Image
Image
Positionsbasierte Multifunktions-Würfeluhr
Positionsbasierte Multifunktions-Würfeluhr
Positionsbasierte Multifunktions-Würfeluhr
Positionsbasierte Multifunktions-Würfeluhr

Fusion 360-Projekte »

Dies ist eine Arduino-basierte Uhr mit einem OLED-Display, das als Uhr mit Datum, als Nickerchen-Timer und als Nachtlicht fungiert. Die verschiedenen "Funktionen" werden von einem Beschleunigungsmesser gesteuert und durch Drehen der Würfeluhr ausgewählt.

Ich wollte eine neue Nachttischuhr, aber ich wollte kein Geld für eine schicke Uhr ausgeben, die Tonnen von Funktionen hatte, die ich nicht verwenden würde. Außerdem hatte ich Komponenten und Sensoren gesammelt, die nur herumlagen, also beschloss ich, sie zu verwenden, um meine eigene Uhr zu bauen!

Ich hatte ein paar Ziele für dieses Projekt:

  1. Zeigen Sie diese Zeit mit einer Option zum Ausschalten an
  2. Beinhaltet eine Nachtlichtfunktion
  3. Fügen Sie einen 15-minütigen Nickerchen-Timer mit Wecker hinzu
  4. In der Lage sein, das Datum anzuzeigen

Lieferungen

  • Arduino Pro Mini 5V
  • ADXL335 3-Achsen-Beschleunigungsmesser
  • DS3231 AT24C32 IIC Präzision Echtzeituhr
  • Kleiner Lautsprecher
  • OLED-Display SSD1306 IIC 0,96 Zoll
  • 5V DC-Netzteil
  • LED x 2
  • Widerstände 220 Ohm x 2
  • Gleichstrombuchse
  • Kabel
  • Werkzeuge

    • Drahtschneider/Abisolierer
    • Lötkolben/Lötmittel
    • 3D-Drucker (optional)
    • FTDI-Programmierer als Schnittstelle zwischen dem Pro mini und der Arduino IDE

Schritt 1: Prototypen und Testen der Schaltung

Prototypen und Testen der Schaltung
Prototypen und Testen der Schaltung
Prototypen und Testen der Schaltung
Prototypen und Testen der Schaltung
Prototypen und Testen der Schaltung
Prototypen und Testen der Schaltung

Verbinden Sie Komponenten mit dem Arduino. Das Steckbrett-Layout oder der Schaltplan sind oben gezeigt. Die RTC und OLED verwenden das I2C-Protokoll, um mit dem Arduino zu kommunizieren und die A4- und A5-Pins zu verwenden. Der Beschleunigungsmesser verwendet 3 analoge Pins. Ich habe A0, A1, A2 verwendet. Die LEDs und Piezo können jeden der digitalen Pins verwenden, ich habe 4 bzw. 8 verwendet.

Schnittstelle zu jeder Komponente. Ich musste einige Arduino-Bibliotheken installieren, um mit jeder Komponente zu kommunizieren. Sie sind im obigen Bild dargestellt.

Code mit der Arduino-IDE. Ich habe einige Beispielskizzen durchgesehen, die von jeder Bibliothek bereitgestellt werden, um die richtige Syntax für jede Komponente basierend auf meinen Wünschen herauszufinden. Ich habe für jede Komponente eine Skizze erstellt, um sie einzeln zu testen. Sie werden unten bereitgestellt. Ich habe mit dem Piezo-Lautsprecher angefangen, weil es am einfachsten war. Es brauchte eigentlich keine spezielle Bibliothek, nur eine spezielle Funktion, die Frequenz und Klang einstellt. Um die LEDs zum Laufen zu bringen, musste nur einer der digitalen Pins hoch und niedrig gezogen werden. Als nächstes wechselte ich zum OLED und das war auch ziemlich einfach einzurichten. Die folgende Skizze ist eine Adafruit-Demo, die alle Animationen/Texte durchläuft, die angezeigt werden können. Dann habe ich versucht, die RTC zum Laufen zu bringen. Die von mir bereitgestellte Skizze war Teil eines Beispiels in der Bibliothek, das die aktuelle Uhrzeit abruft und auf dem seriellen Monitor ausgibt. Schließlich habe ich das bereitgestellte Beispiel verwendet, um den Beschleunigungsmesser zu testen. Die Ausgaben jeder Achse werden auf dem seriellen Monitor gedruckt.

Jetzt ist es an der Zeit, alles zusammenzustellen!

Schritt 2: Hauptprogramm

Hauptprogramm
Hauptprogramm
Hauptprogramm
Hauptprogramm

Jetzt, da ich weiß, dass alles individuell funktioniert, kann ich damit beginnen, ein Programm zu entwickeln, das alles zusammenbringt. Ich werde meinen Prozess zum Schreiben des Programms unten besprechen, aber Sie können einfach den vollständigen Code unten herunterladen, um ihn für Ihr eigenes Projekt zu verwenden. Ich habe versucht, spezifische Kommentare zu hinterlassen, damit Sie den Code selbst durchgehen können.

Ich musste die Uhrzeit und das Datum auf dem OLED anzeigen, was ziemlich einfach war. Ich musste nur die aktuelle Uhrzeit auf dem Display anstelle des seriellen Monitors ausgeben. Es gab ein paar Formatierungsdinge, die ich berücksichtigen musste, damit es ein 12-Stunden-Format anstelle von 24 anzeigt und Nullen dort hinzufügt/entfernt, wo es angebracht war. Das Datum war ähnlich, wobei der Monat und der Tag in auf dem Bildschirm gezeichneten Rechtecken angezeigt wurden. Ich habe eine verschachtelte FOR-Schleife verwendet, um den Timer zu erstellen und den Piezo nach dem Ende der Schleife auszulösen. Ich beschloss, den Bildschirm blinken zu lassen, wenn der Summer ertönte, was eine grundlegende Animation aus der Adafruit-Demo war. Ich habe das Zurückdrehen des Würfels in die Uhrposition zur einzigen Möglichkeit gemacht, den Summer auszuschalten. Schließlich wollte ich eine Möglichkeit haben, den Bildschirm auszuschalten, was durch einfaches Löschen der Anzeige erreicht wurde. Jetzt brauchte ich all diese Funktionen, um basierend auf den Beschleunigungsmesser-Ausgängen zu arbeiten. Ich habe das Skript Accel_Test verwendet, um die Achsenkoordinaten jeder Position zu bestimmen, die jede Funktion ausführen soll. Ich habe den Beschleunigungsmesser-Chip manuell bewegt und die Messwerte auf dem seriellen Monitor aufgezeichnet. Das obige Diagramm gibt die Ausgabekoordinaten jeder Position in GRAU an. Die Koordinaten in ROT sind die Grenzen zwischen den einzelnen Positionen und ich habe diese Zahlen für mein Programm verwendet. In den 4 Anzeigepositionen werden nur die Koordinaten der X- und Y-Achse benötigt. Die fünfte Position für das Nachtlicht verwendet die Z-Achse. Ich habe einfache IF-Anweisungen für die Beschleunigungsmesserpositionen vor jedem Funktionsblock verwendet. Wenn Sie einen anderen Beschleunigungsmesser verwenden, können diese Koordinaten variieren und müssen im Programm angepasst werden.

Schritt 3: 3D-Druck des Würfels

3D-Druck des Würfels
3D-Druck des Würfels
3D-Druck des Würfels
3D-Druck des Würfels
3D-Druck des Würfels
3D-Druck des Würfels

Ich dachte, ein Würfel wäre das beste Design, um die Funktion der Uhr zu berücksichtigen. Ich habe fusion360 verwendet, um das Modell zu erstellen. Ich brauchte einen Ausschnitt für das OLED und die Barrel-Buchse. Ich wollte auch einen einfachen Zugang zum Austausch der Zellenbatterie in der RTC, nachdem alles verkabelt war. Ich brauchte einen Steckplatz, um den Arduino in einer Ausrichtung zu halten, die bei Bedarf leicht umprogrammiert werden kann. Außerdem musste das Gehäuse leicht abnehmbar sein, damit ich auf das Arduino zugreifen kann. Sie können das CAD-Modell oben und die STL-Dateien unten sehen.

Ich habe den Körper in schwarzem PLA mit 20% Füllung, 0,2 mm Auflösung gedruckt.

Die Umhüllung oder Hülle wurde aus flexiblem Solutech-Filament mit 100 % Füllung, 0,3 mm Auflösung, gedruckt. Ich habe dieses Material verwendet, weil es eine gewisse Flexibilität hat, die es leicht macht, sich über den Körper zu strecken. Es fühlt sich auch weicher an, wenn die Uhr herumgedreht wird. Zuletzt wählte ich ein klares Filament, damit die LEDs für die Nachtlichter durchscheinen.

Schritt 4: Montage

Montage
Montage
Montage
Montage
Montage
Montage

Ich habe alles zusammen mit dem Schaltplan aus Schritt 1 verdrahtet. Ich habe ein kleines Stück Perfboard verwendet, um alle gemeinsamen Drähte zu verbinden, damit ich nicht mehrere Drähte an einen Pin auf dem Arduino löten musste. Heißkleber wurde verwendet, um alles mit Ausnahme des Arduino an seinem jeweiligen Platz zu befestigen. Es wurde einfach in den dafür vorgesehenen Steckplatz geschoben. Ich stellte sicher, dass die Beschleunigungsmesserplatine senkrecht und eben auf der Unterseite des Körpers war, damit die Koordinaten im Code nicht geändert werden mussten.

Schritt 5: Hochladen und fertig

Hochladen und fertig!
Hochladen und fertig!
Hochladen und fertig!
Hochladen und fertig!
Hochladen und fertig!
Hochladen und fertig!
Hochladen und fertig!
Hochladen und fertig!

Jetzt kann das endgültige Programm auf die Uhr hochgeladen werden, um die richtige Uhrzeit einzustellen. Der Zellakku sollte die Zeit auch dann halten, wenn der Strom nicht angeschlossen ist. Schieben Sie die 3D-gedruckte Hülle über den Körper, um alle Komponenten zu verbergen, und Sie haben eine komplette Würfeluhr!

Ich hoffe, Sie genießen dieses Projekt und finden es genauso nützlich wie ich. Das Schöne an diesem Projekt ist, dass es sehr anpassbar ist. Fühlen Sie sich frei, Ihre eigenen verschiedenen Funktionen wie eine Weckfunktion hinzuzufügen, verschiedene Komponenten wie ein größeres OLED, einen FM-Radioempfänger usw. zu verwenden. Viel Spaß beim Basteln!