Aus Raspberry Pi Geek 09/2023

Pico Pi Base: RasPi-HATs mit dem Pi Pico nutzen (Seite 2)

Den Raspberry Pi Pico sowie die Pin-Leiste für die HATs müssen Sie noch selbst löten. Dasselbe gilt bei der großen Basis auch noch für den optionalen Batterieanschluss (Standard-PH2-Buchse) und die verschiedenen herausgeführten Pin-Leisten wie I2C oder SPI. Theoretisch könnten Sie die Zero-Base-Platine auch ohne die beiden Pullups ordern, denn die Widerstände im SMD1206-Format lassen sich noch ohne Probleme von Hand löten und sind bei HATs mit integrierten Pullups ohnehin überflüssig. Die Kosteneinsparung fällt aber so gering aus, dass sich das nicht wirklich lohnt.

Platinen bei JLCPCB bestellen

Für die Bestellung benötigen Sie ein Benutzerkonto bei JLCPCB [7]. Auf dieser Seite starten Sie mit der Schaltfläche Instant Quote (Sofortangebot). Es erscheint eine Abfolge von Dialogen, die Sie durch den Bestellprozess leiten.

Oben auf der ersten Seite laden Sie eine ZIP-Datei mit den Gerber-Daten (Platinenbeschreibung) hoch. Die finden Sie im Projekt-Repository im Unterverzeichnis production_files/. Ziemlich am Ende der Seite aktivieren Sie die Schaltfläche SMT und wählen bei der Pico Zero Base die Unterseite aus, ansonsten die Oberseite. Anschließend legen Sie die Platine in den Warenkorb.

Auf der nächsten Seite laden Sie noch zwei weitere Dateien hoch, die Teileliste BOM (Bill of Materials) und die Datei mit den Bausteinkoordinaten CPL. Auf den nächsten Seiten sehen Sie, wie die Teile auf der Platine aussehen und ob sie richtig sitzen. Am Ende des Prozesses legen Sie auch die SMT-Bestückung in den Warenkorb und leiten den Bezahlprozess ein. Dort wählen Sie die Versandart (die billigste Variante hat es bis jetzt für den Autor immer getan) und die Bezahlart. Neukunden stehen Coupons zur Verfügung, die die SMT-Produktionskosten quasi ersetzen.

Theoretisch könnte es vorkommen, dass es die Bauteile nicht mehr gibt, aber bei den Platinen kommen übliche Standardbauteile zum Einsatz. Im Zweifel überprüfen Sie in der JLCPCB-Komponentenliste [8] die Verfügbarkeit der Teile aus der BOM-Liste. Dafür genügt es, die C-Nummer (letzte Spalte) in das Suchfeld einzutippen.

Schöner wohnen

Ein Hauptgrund für den Wunsch nach Platinen im Zero- beziehungsweise RasPi-Formfaktor sind nicht nur die verfügbaren HATs, sondern auch die Gehäuse, von denen viele als anpassbare 3D-Modelle vorliegen. Aber auch wenn die Adapter hineinpassen und dadurch die Täuschung noch realistischer wirkt, eignen sich die wenigsten Gehäuse.

Der Zero hat seinen Stromanschluss rechts unten, USB liegt direkt daneben. Beim RasPi ist das anders: Das Stromkabel steckt links unten und USB gibt es rechts. Der Pico dagegen trennt Strom und USB nicht: Beides bedient dieselbe Buchse.

Bestehende Gehäuse lassen sich also nicht so einfach wiederverwenden. Wenn Sie aber auf anpassbare 3D-Modelle zurückgreifen, haben Sie nicht übermäßig viel Arbeit: Der USB-Anschluss des Pi Pico liegt dort, wo der Raspberry Pi seine MicroSD-Karte erwartet. Können Sie mit den entsprechenden CAD-Programmen umgehen, vergrößern Sie also einfach nur den Ausschnitt. Dasselbe gilt analog auch für den Stromanschluss bei der Pico Pi Base. Dort macht die MicroSD-Karte kein Problem, denn sie sitzt passend zum Ausschnitt für den LAN-Anschluss.

Software

Software für den RasPi läuft aus naheliegenden Gründen nicht auf dem Pi Pico. Neben der Hardwarebastelei stand also auch die Portierung von Treibern für die HATs auf dem Programm des Autors. Das hört sich komplexer an, als es tatsächlich ist. Für alle HATs im Fundus gab es Python-Treiber. Diese nutzen hauptsächlich I2C, SPI und digitale IO-Pins – alles ein Heimspiel für den Pico.

Bis auf wenige Ausnahmen musste der Autor also nur die wenigen Zeilen anpassen, die direkt auf die Hardware zugreifen. Bei der Pin-Leiste Blinkt von Pimoroni [3] sieht das so aus wie in Listing 1. Der Treiber nutzt Bit-Banging, also das programmgesteuerte Umschalten eines GPIO-Pins. Das Original verwendet das Urgestein RPi.GPIO, die Version des Autors stattdessen die Klasse DigitalInOut (Abbildung 3).

Listing 1

Einfache Portierung

# Auszug aus dem Original
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
GPIO.setup(DAT, GPIO.OUT)
GPIO.setup(CLK, GPIO.OUT)
def _write_byte(byte):
  for x in range(8):
    GPIO.output(DAT, byte & 0b10000000)
    GPIO.output(CLK, 1)
    time.sleep(sleep_time)
    byte <<= 1
    GPIO.output(CLK, 0)
    time.sleep(sleep_time)
# Version für CircuitPython
data_pin = digitalio.DigitalInOut(DAT)
clk_pin  = digitalio.DigitalInOut(CLK)
data_pin.direction = digitalio.Direction.OUTPUT
clk_pin.direction  = digitalio.Direction.OUTPUT
def _write_byte(b):
  for _ in range(8):
    data_pin.value = b & 0x80
    clk_pin.value = True
    time.sleep(SLEEP_TIME)
    clk_pin.value = False
    time.sleep(SLEEP_TIME)
    b = b << 1
Abbildung 3: Die Pico Zero Base mit dem Blinkt-HAT von Pimoroni.

Abbildung 3: Die Pico Zero Base mit dem Blinkt-HAT von Pimoroni.

Noch einfacher war es mit dem Four Letter pHAT und dem LED Shim (Abbildung 4) von Pimoroni. Hier gab es fertige Treiber samt Beispielen in den Repositories von Adafruit. Etwas Suche im Netz erspart also im Zweifel reichlich Arbeit. Das Repository des Autors enthält eine Reihe von portierten Bibliotheken beziehungsweise Hinweise auf bereits vorhandene Treiber.

Abbildung 4: Die Pico Pi&nbsp;Base mit Four Letter pHAT und LED Shim von Pimoroni.

Abbildung 4: Die Pico Pi Base mit Four Letter pHAT und LED Shim von Pimoroni.

Fazit

RasPi für Arme – so könnte man die Platinen böswillig nennen, aber sinnvoll eingesetzt haben sie ihren eigenen Wert. Beim Autor ersetzt zum Beispiel der Pico jetzt den RasPi beim täglichen Kalenderblatt [4] und der Wetteranzeige. Lange Boot- und Shutdown-Zeiten sind passé, das Update [5] des E-Ink-Displays [6] läuft jetzt viel schneller und vor allem stromsparender.

Wenn Sie also Probleme haben, eines der raren Raspberry-Pi-Modelle zu ergattern, sollten Sie die hier vorgestellte Alternative zumindest in Betracht ziehen. Für speziellere Projekte lohnt sich auch das Anpassen der Pi-Base-Platine: Statt Pin-Leisten und SD-Kartenleser könnten Sie sie auch mit anderen Komponenten bestücken, wie zum Beispiel einer RTC. (tle/jlu)

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 5 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