Aus Raspberry Pi Geek 01/2025

Pimoroni Pico LiPo: RP2040 mit integriertem Akkumanagement (Seite 2)

Die Installation läuft ähnlich wie beim normalen Pi Pico ab. Sie verbinden die MCU via USB mit dem Rechner, halten den BOOT-Taster auf dem Board gedrückt und schalten via POWER die Spannung ab. Nach einigen Sekunden Wartezeit schalten Sie den Pico LiPo wieder ein, woraufhin auf dem Rechner ein neues Laufwerk erscheint. Nun stoßen Sie in Thonny die Installation an (Abbildung 4), warten etwas und verbinden sich dann via Thonny mit dem Pico LiPo.

Abbildung 4: Die Installation des passenden Images erledigt Thonny im Handumdrehen.

Abbildung 4: Die Installation des passenden Images erledigt Thonny im Handumdrehen.

Das Ansteuern des OLED-Displays setzt eine passende Bibliothek voraus. Die installieren Sie mit dem Tool Mpremote [11] auf dem Pico LiPo (Listing 1). Dabei darf Thonny nicht mit der MCU verbunden sein.

Listing 1

Bibliothek installieren

$ mpremote mip install github:adafruit/micropython-adafruit-ssd1306/ssd1306.py

Testprogramm

Listing 2 zeigt das Testprogramm für den Pimoroni Pico LiPo. Speichern Sie es unter dem Dateinamen main.py ab, startet es automatisch beim Einschalten des Controllers. Der Code importiert zunächst alle nötigen Bibliotheken (Zeile 1) und erstellt dann die Objekte für die Kommunikation mit der Hardware (Zeile 2 bis 6).

Die Variable factor dient dazu, aus dem rohen Wert des Analogeingangs die Spannung zu berechnen (Zeile 7). Der Multiplikator 3 rührt daher, dass vor dem Analogeingang des Pico LiPo ein 3-zu-1-Spannungsteiler sitzt. Treten in Ihrem Testaufbau hier starke Abweichungen auf, liegt das an der Qualität des Spannungsteilers. Um die Bauteiltoleranzen auszugleichen, verändern Sie dann den Faktor und messen nach, ob er besser passt.

Zeile 8 dient als Hintertür, um uns nicht auszusperren: Der Pico wartet nach dem Start 10 Sekunden. In dieser Zeit können wir uns via IDE mit dem Controller verbinden. Je nach gewähltem Schlafmodus wird es danach unter Umständen unmöglich, eine Verbindung aufzubauen.

Die folgende While-Schleife ab Zeile 9 holt die Sensorwerte ab und gibt sie auf dem Display aus. Am Ende der Schleife finden sich auskommentierte Befehle für die unterschiedlichen Energiesparmodi (Zeile 19 und 20). Sie können sie einkommentieren, um sich ein wenig mit der Materie vertraut zu machen. Für den machine.deepsleep() eignet sich das Testprogramm allerdings weniger – den Grund dafür werden Sie schnell bemerken. Die Werte in den Klammern entsprechen Millisekunden.

Listing 2

main.py

import machine, ssd1306, dht, time
sensor = dht.DHT22(machine.Pin(17))
analog = machine.ADC(machine.Pin(29))
usb = machine.Pin(24, machine.Pin.IN)
i2c = machine.I2C(0,scl=machine.Pin(5), sda=machine.Pin(4), freq=1000000)
display = ssd1306.SSD1306_I2C(128, 64, i2c)
factor = 3 * 3.3 / 65535
time.sleep(10)
while(True):
  sensor.measure()
  voltage=(analog.read_u16()*factor)
  display.fill(0)
  display.text("BAT:  {:.2f}".format(voltage)+" V", 0, 0, 1)
  display.text("TEMP: "+str(sensor.temperature())+" C",0,11,1)
  display.text("HUM:  "+str(sensor.humidity())+" %",0,22,1)
  display.text("USB:  "+str(usb.value()),0,33,1)
  display.show()
  time.sleep(10)
  #machine.lightsleep(10000)
  #machine.deepsleep(10000)

Fazit

Der Pimoroni Pico LiPo kostet zwar etwas mehr als der Pi Pico, bietet aber bei identischem Formfaktor eine Menge interessanter Zusatzfunktionen für den mobilen Einsatz. Dank des Qwiic/Stemma-Qt-Anschlusses können Sie viele vorhandene Sensoren und Boards ohne großes Basteln verwenden. Der Ausschalter erspart Ihnen, beim Entwickeln ständig die USB-Verbindung trennen zu müssen. Alles in allem präsentiert sich der Pico LiPo als gelungenes Entwicklungsboard. (jlu)

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 3 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
RASPBERRY PI GEEK KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Raspberry Pi Geek bei Google Play Readly Logo
Nach oben