
Abbildung 4: Auf der Rückseite der Platine findet das mit Fädeldraht verbundene Widerstandsnetzwerk Platz.
Abbildung 5 zeigt, wie Sie den Raspberry Pi Pico mit dem Würfel verbinden. Der Pico befindet sich dabei auf einem modifizierten Breadboard und beherbergt außerdem einen Schalter zum Starten des Würfels. Der digitale Eingang, an den der Schalter angeschlossen ist, besitzt keinen externen Pulldown-Widerstand. Stattdessen verwenden wir hier den internen Pulldown-Widerstand des Pico, der sich via Software aktivieren lässt. Den kompletten Testaufbau sehen Sie in Abbildung 6.

Abbildung 6: Der vollständige Testaufbau besteht aus einem Pi Pico, einem modifizierten Breadboard und dem LED-Würfel.
Mikrocontroller
Zum Ansteuern des Würfels verwenden wir einen Raspberry Pi Pico. Mit seinen 30 GPIO-Pins eignet er sich bestens für diese Aufgabe. Die Pins sind nicht nur einfache IOs, Sie dürfen sie auch mit Sonderfunktionen belegen (2 x SPI, 2 x I2C, 2 x UART). Darüber hinaus gibt es drei ADC-Eingänge. Wer sich intensiver mit dem Raspberry Pi Pico beschäftigen möchte, dürfte mit einem Ausdruck des Pinouts [6] des Controllers (Abbildung 7) gut bedient sein.
Der Pi Pico verwendet zum Hochladen der Programme in den Controller ein von Microsoft entwickeltes Verfahren. Dabei versetzt das Drücken des Tasters BOOTSEL den Pico in den Hochladen-Modus, in dem er sich wie ein USB-Speichermedium verhält. Kopieren Sie jetzt eine Datei im UF2-Format darauf, wird die in der Datei enthaltene Software installiert und direkt vom Controller ausgeführt. Sobald das Programm läuft, verschwindet das virtuelle USB-Speichermedium wieder, und es erscheint eine serielle USB-Schnittstelle, über die Sie mit dem Pico kommunizieren können.
Dieses Verfahren passt allerdings nicht so recht zu den Mechanismen, die die integrierte Entwicklungsumgebung Arduino IDE nutzt, um Software in MCUs zu laden. Hier kommt jetzt das Mbed OS [7] ins Spiel, das es ermöglicht, Programme über die serielle USB-Schnittstelle auf den Pico zu spielen. Beim ersten Mal müssen wir dafür, wie weiter unten beschrieben, einen ausgefallenen Weg gehen, aber danach lässt sich die Arduino IDE wie gewohnt verwenden.
Es stellt übrigens kein Problem dar, einen anderen Controller zum Ansteuern des Würfels zu verwenden. Wichtig ist nur, dass die entsprechende MCU über genug verwendbare IO-Pins verfügt.
IDE
Für die Programmierung setzen wir die Arduino IDE mit C/C++ als Programmiersprache ein. Auf Mikrocontrollern ist C/C++ neben Assembler die übliche Programmiersprache. Gerade auf Systemen mit stark eingeschränkten Ressourcen kommt es darauf an, eine Sprache zu verwenden, die effizienten Maschinencode erzeugt. Für den Einstieg in die Controllerprogrammierung ist MicroPython zwar eine Alternative, wenn es aber auf Ausführungsgeschwindigkeit ankommt, führt kein Weg um C/C++ und Assembler herum.
Die Arduino IDE ist ein Klassiker in der Welt der Mikrocontroller. Sie lässt sich über unterschiedliche sogenannte Boardmanager an so gut wie jeden Mikrocontroller anpassen. Die Arduino IDE laden Sie von der Projekt-Homepage [8] für verschiedene Betriebssysteme herunter. Die Installation läuft je nach OS unterschiedlich ab. Folgen Sie dazu der entsprechenden Installationsanleitung auf der Projektseite. Bei den hier gezeigten Beispielen kam Ubuntu zum Einsatz.
Das erste Mal
Es erfordert einige Vorarbeiten, um die Arduino IDE für den Raspberry Pi Pico einzurichten.
Damit ein Nutzer unter Linux auf die serielle Schnittstelle zugreifen darf, muss er Mitglied der entsprechenden Gruppe sein. Das gilt auch für serielle USB-Schnittstellen, wie der Pico sie verwendet. Mit dem Kommando sudo addgroup $USER dialout weisen Sie Ihr Benutzerkonto der entsprechenden Gruppe zu. Damit die Änderung erfolgt, müssen Sie sich neu einloggen.
Im nächsten Schritt installieren Sie den Boardmanager für den Pi Pico. Hier funktioniert der Installationsmechanismus noch nicht richtig, es bedarf einiger manueller Nacharbeiten. Zuerst verbinden Sie den Raspberry Pico mit der USB-Schnittstelle. Danach wählen Sie in der Arduino IDE über das Ausklappmenü Select Board oder Select other Board and Port aus. Im sich daraufhin öffnenden Fenster suchen Sie nach Pico und wählen den Port des Raspberry Pico aus. Klicken Sie zu guter Letzt auf ok und beantworten Sie die Frage, ob Sie das Arduino Mbed OS installieren wollen, mit Yes.
Die Installation von Mbed OS benötigt einige Zeit. Nachdem sie abgeschlossen ist, öffnen Sie ein Terminal und wechseln in den Ordner ~/.arduino15/packages/arduino/hardware/mbed_rp2040/4.0.10/. Falls Sie eine neuere Version von Mbed OS installiert haben, müssen Sie die Versionsnummer im Pfad entsprechend ändern. Nach dem Wechsel in das Verzeichnis führen Sie mit Root-Rechten das Skript post_install.sh aus. Danach starten Sie die Arduino IDE einmal neu.
Problemlösung
Jetzt stehen Sie vor einem Henne-Ei-Problem: Um Mbed OS auf dem Pico zu installieren, muss Mbed OS schon dort installiert sein. Sie müssen also einen Weg finden, Mbed OS ohne die Arduino IDE auf dem Pi Pico zu installieren. Der einfachste Weg wäre es, einfach eine passende UF2-Datei in das Filesystem des Pico zu praktizieren, wenn er sich im Hochladen-Modus befindet. Müsste nicht die Arduino IDE diese Datei erzeugen, wenn wir ein Projekt für den Pico hochladen wollen?







