Pico-Watch zum Download

auf rundem 1.28-Zoll-IPS-LCD-Display 240 x 240 Pixel
Anleitung und Download für CircuitPython 8.2.4


Bildbox 1 (klick hier)

Ein Reihe von Anfragen zu den Projekten mit dem runden 1.28 Pico LCD Display haben mir gezeigt, dass ein großes Interesse daran besteht. Die Komplexität bringt den einen oder anderen Nutzer aber dennoch in Schwierigkeiten. Auch Anfänger sind mitunter schnell verzweifelt, wenn sich der Erfolg nicht einstellt. Deshalb habe ich mich entschlossen, einige Anwendungen als Komplettdownload anzubieten. Schon vor einiger Zeit hatte ich auf dem runden LCD-Display eine Analoguhr realisiert. Als ich diese Anwendung jetzt zum Download etwas aktualisieren wollte, habe ich festgestellt, dass sie unter CircuitPython 9.0.5 Speicherprobleme hat und nicht mehr läuft. Wenn Sie diese Anwendung umsetzen wollen, müssen Sie also unbedingt auf CircuitPython 8.2.4 zurückgehen. Das ist kein Problem, denn die uf2-Datei mit der Firmware und eine Datei 'flash_nuke.uf2' habe ich hier zum downloaden bereitgestellt. Entpacken Sie die zip-Datei und folgen den Hinweisen.

Übersicht zu den Arbeitsschritten:

- Installation von CircuitPython
- wichtiger Hinweis zum Akku
- Software 'Pico-Watch' installieren
- Uhrzeit einstellen
- Stromsparfunktion
- Gehäuse im 3D Druck

Hardware

- Rundes 1,28-Zoll-IPS-LCD-Display (z.B. Amazon)
- Lipo-Akku 320 mAh (z.B. LP402535 von hier)
- Nylon-Armband 22mm (z.B. von hier)
- Gehäuse aus dem heimischen 3D-Drucker
- USB-A zu USB-C Kabel


Das Ganze ist auch nicht gerade billig, vor allem weil die Akkus und die Armbänder nicht einzeln, sondern mehrfach abgeboten werden. Eine einfache Smartwatch gibt es auch schon unter 50 Euro. Aber dafür ist beim Eigenbau der Bastelspass garantiert. Und vielleicht braucht man ja auch mal ein ausgefallenes Geschenk für einen guten Freund.

Als erstes werde ich noch einmal die Inbetriebnahme des runden LCD-Displays-1.28 beschreiben und dann die Uhrfunktion unter CircuitPython, wie im unteren Bild, realisieren.



Installation von CircuitPython:


1. Bevor Sie das Pico-Display erstmalig an die Stromversorgung anschließen, muss zunächst die CircuitPython-Firmware 8.2.4 mit der Ansteuerung für das runde Display übertragen werden. Fall Sie das Display bereits mit einer neueren Firmware genutzt haben, sollten Sie den Speicher mit der 'flash_nuke.uf2' komplett löschen. Dazu gehen Sie so vor:

Sie nehmen das Display im ausgeschalteten Zustand zur Hand und drücken die Boot-Taste (siehe Beschriftung auf der Platinenrückseite). Die wird gehalten und das Pico-Display erst dann (!!) über das USB-A zu USB-C Kabel mit dem Rechner verbunden. Nach dem Verbinden kann die Boot Taste losgelassen werden. Es öffnet sich im Filesystem ein Explorer-Fenster mit einem neuen Massenspeicher RPI-RP2. Per Drag&Drop ziehen Sie die 'flash_nuke.uf2' auf den Massenspeicher RPI-RP2. Dieser verschwindet darauf für kurze Zeit, während der Speicher komplett gelöscht wird.

2. Im nächsten Schritt ziehen Sie die uf2-Datei mit der CircuitPython Firmware 8.2.4 auf den Massenspeicher RPI-RP2. Sobald die Firmware-Datei auf das Pico-Display kopiert ist, wird die Firmware ausgeführt und ein neuer Massenspeicher 'CIRCUITPY' im Explorerfenster angezeigt. Auf diesen Ordner sollten Sie jetzt wie gewohnt zugreifen können. Vorher aber noch ein Hinweis, wenn Sie z.B. das Programm später mit Hilfe des Thonny-Interpreters verändern möchten.

3. Falls bei der ersten Benutzung von Thonny kein Board erkannt wird, muss in den Interpreter-Einstellungen die Port-Auswahl überprüft werden und ggf. auf CircuitPython (generic) eingestellt werden. Klicken Sie dazu ganz unten rechts auf den 'Button'. Das Fenster sollte jetzt so aussehen:

In der unteren Kommandozeile wird der Controler z.B. mit "Adafruit CircuitPython 8.2.0 on 2023-07-05; Waveshare RP2040-LCD-1.28 with rp2040" angezeigt.

wichtiger Hinweis zum Akku:

An das Board des Displays kann über einen JST 1.25 Stecker ein kleiner Lithium-Polymer-Ionen-Akku angeschlossen werden, welcher während des Betriebs geladen wird und das Board auch nach dem Abziehen des USB-C Anschlusses mit Strom versorgt. Aber Vorsicht ! Die Stecker an den Akkus sind nicht immer so gepolt, wie es der Anschluss auf dem Board erfordert. Prüfen Sie unbedingt die Polarität (durch eine Messung), bevor Sie den Akku mit dem Board verbinden.
Bei dem oben angegebenen 320 mAh Akku ist es auch erforderlich die Polarität zu ändern. Am einfachsten schneidet man dazu das Anschlusskabel auf der Hälfte auseinander und lötet es umgekehrt wieder zusammen. Vorher sollte man je ein Stück passenden Schrumpfschlauch zur Isolierung aufschieben. Auch wenn es etwas ungewöhnlich aussieht (rot auf schwarz und schwarz auf rot), geht das doch recht gut.
Ich habe mich immer für die Variante entschieden, bei der ich die Folie am Kabelanschluss des Akkus vorsichtig entfernt und die Kabel neu angelötet habe. Dazu hab ich mir entsprechende Stecker mit kurzen Anschlussdrähten aus dem Internet bestellt, welche ich auf entsprechende Länge angelötet habe. So hat auch optisch alles seine Ordnung (siehe Bild).



Software 'Pico-Watch' installieren:


Laden Sie die Datei von meiner Seite herunter. Als nächstes wird sie in den vorgeschlagen Ordner 'pico_watch' entpackt. Der sollte jetzt folgende Dateien enthalten:

code.py
pico_watch.py

und die Ordner
lib
images

Im Ordner 'lib' sind die Bibliotheken für die Funktionsweise des Displays und in 'images' die Bitmap-Dateien mit dem Zifferblatt und den Uhrzeigern. Verbinden Sie das Display mit Ihrem Rechner und kopieren die o.g. Dateien bzw. Ordner ins Laufwerk 'CIRCUITPY'. Bestätigen Sie dabei die Meldung für das Überschreiben der Datei 'code.py' mit 'ja'.

Nun können Sie die Analoguhr im Thonny-Interpreter über die Datei 'code.py' oder 'pico_watch.py' starten. Das Display bezieht die aktuelle Uhrzeit vom Rechner und zeigt diese sekundengenau an. Bei angeschlossenem Akku beenden Sie Thonny, ohne die Programmausführung zu stoppen und ziehen den USB-C Stecker ab. Solange der Akku genügend Spannung liefert, läuft das Display ohne Unterbrechung weiter. Damit das möglichst lange der Fall ist, habe ich eine Stromsparfunktion vorgesehen, die noch erläutert wird.

Wenn das Display nicht mit dem Rechner verbunden ist und die Stromzufuhr hergestellt wird, dann startet die Programmausführung von 'code.py' automatisch. Der Microcontroller setzt dabei das Datum und die Uhrzeit auf den 1.1.2020 um 0:00 Uhr. In diesem Fall muss die Uhrzeit per Hand eingestellt werden.

Uhrzeit einstellen:


Dazu wird der ACC-Sensor genutzt, indem das Display in einer bestimmten Richtung gehalten wird.

1. Stellen der Minuten:
Halten Sie den USB_C Anschluss des Displays im ausgeschalteten Zustand nach unten und schließen jetzt den USB_C Stecker an. Auf dem Display wird eine Textbox dargestellt, in der die Minuten hochgezählt werden. Kurz bevor der gewünschte Wert erreicht ist, drehen Sie das Display um 90 Grad, so dass der USB-Anschluss zur Seite zeigt. Dadurch bleibt die Minutenanzeige auf dem letzten Wert stehen. Wenn der Wert zu weit 'gelaufen' ist, drehen Sie den USB-Anschluss wieder nach unten und wiederholen den Vorgang. Nach ein paar Übungen klappt das sehr gut.


2. Stellen der Stunden:
Drehen Sie den USB-Anschluss aus der seitlichen Position nach oben, um die Stunden zu stellen. Auch hier wird der Vorgang unterbrochen, wenn das Display wieder um 90 Grad zur Seite gedreht wird. Zum Beenden des Einstellens legen Sie das Display mit der Anzeige nach oben flach auf den Tisch und warten (5 Sekunden), bis das Zifferblatt und die Zeiger angezeigt werden. Von jetzt wird die Zeit analog angezeigt und kann durch den eben beschriebenen Vorgang nicht mehr geändert werden.



Stromsparfunktion:


Soll die Uhr in ein Gehäuse eingebaut werden, ist die Stromversorgung mit einem geeigneten Akku vor allem ein Platzproblem. Bei meinen ersten Versuchen mit einem kleinen 100 mAh Akku lief das Display gerade mal 30 - 40 Minuten. Einen guten Kompromiss bietet der o.g. 320 mAh Akku. Durch die zusätzliche Abschaltung des Displays (eigentlich Verringerung der Displayhelligkeit), wenn es 5 Sekunden lang nicht bewegt wird, erreicht man eine Betriebsdauer von ca. 8 Stunden. Zur Zeit ist das Programm so eingestellt, dass sich das Display beim Tragen am linken Arm einschaltet, wenn das Display zum Betrachter hin gekippt wird. Was ja der Fall ist, wenn man die Uhrzeit ablesen will.

Gehäuse im 3D Druck:


Das Gehäuse wurde mit FreeCAD entworfen und mit einem einfachen Flashforge 3D Drucker gedruckt. Es besteht aus drei Teilen.



In das Unterteil wird als erstes der Akku eingelegt. Dann wird das Mittelteil aufgesteckt und das Kabel vom Akku nach oben durchgeführt. Nun wird der Stecker mit dem Batteriekonnektor am Display verbunden und das Display in die Öffnung gelegt. Achtung: Drücken Sie dabei nicht mit dem Finger auf die Displayfläche! Die Flüssigkristalle könnten das für immer übel nehmen. Nun klicken Sie den oberen Ring entsprechend der Öffnungen auf das Gehäuse. Es ist ratsam, diesen mit etwas Kunststoffkleber an den Stiften zu fixieren. Das Unter- und Mittelteil sollte nicht verklebt werden, denn es wird durch das Armband an den Stegen zusammengehalten und für den nicht auszuschließenden Fall kommt man an die Boot-Taste der Platine, ohne das Gehäuse zu zerstören.


      


Viel Spass und Erfolg beim Ausprobieren.