Die Raspberry Pi Foundation hat einen reinen Mikrocontroller zum super günstigen Preis herausgebracht: den Raspberry Pi Pico. Dieser unterscheidet sich von seinen Geschwistern, aber ist so einfach zu programmieren wie selten zuvor. Mittels MicroPython und/oder C++ können wir unsere erste kleine Applikation schreiben. Dazu kommt der Pico mit vielen GPIOs an Board und sogar dem ein oder anderen Sensor.
In diesem Artikel schauen wir uns zunächst die Unterschiede zu anderen Raspberry Pi Modellen an und erstellen anschließend unser erstes kleines Programm für den Pico.
Was kann der Raspberry Pi Pico?
Das neue Gerät der Raspberry Pi Foundation weicht von seinen Vorgängern ab. Der kleine Mikrocontroller wird für 4$ (ohne Steuern und Versandkosten) verkauft und ist damit mehr als wettbewerbsfähig. Seine direkte „Konkurrenz“ sind andere Mikrocontroller wie Arduino oder ESP8266.
Die offiziell veröffentlichten Daten des Picos sind folgende:
- RP2040 Mikrocontroller-Chip
- Dual-Core-Arm Cortex M0+ Prozessor, flexibler Takt mit bis zu 133 MHz
- 264 KB SRAM und 2 MB integrierter Flash-Speicher
- Direktes Löten auf der Platine möglich
- USB 1.1 mit Geräte- und Hostunterstützung
- Energiesparmodus und Ruhezustand
- Drag-and-Drop-Programmierung über USB
- 26 GPIO-Pins (3.3V)
- 2 × SPI, 2 × I2C, 2 × UART, 3 × 12-Bit-ADC, 16 × steuerbare PWM-Kanäle
- RTC und Timer auf dem Chip
- Temperatursensor
- Gleitkomma-Bibliotheken auf dem Chip
- 8 × Programmierbare I/O State Machines (PIO) für benutzerdefinierte Peripherieunterstützung
Das klingt zunächst einmal alles sehr interessant. Vor allem der geringe Preis ist ein Highlight. Die 26 programmierbaren Pins sind an folgenden Stellen zu finden. Einige haben mehrere Funktionen:
Raspberry Pi Pico vs. Model 4B vs. Zero – was sind die Unterschiede?
Die Eigenschaften des Picos lesen sich alle sehr gut – aber was sind nun die technischen Unterschiede zu einem Raspberry Pi 4 Model B oder einem Raspi Zero?
Zunächst einmal der wichtigste Unterschied. Der Pico ist ein Mikrocontroller und kein Mini-Computer. Das bedeutet, dass der Pico kein Betriebssystem hat, da sein Aufgabenfeld etwas anders ist: Ein reiner Mikrocontroller hat üblicherweise einfachere Aufgaben, welche er dafür schnell ausführen muss. Durch ein Betriebssystem können wir u.a. zwar viele Prozesse parallel laufen lassen, aber dafür ist dieser langsamer im Ausführen der einzelnen Tasks.
Die erste Frage, die du dir also stellen musst, ist: Wofür wird der Raspberry Pi genutzt? Bei einfachen Aufgaben (Messwerte sammeln, Schaltkreise schalten, Signale empfangen und senden), ist der Pico eine gute Wahl. Wenn du komplexere Probleme lösen möchtest (bspw. Machine Learning) oder Desktop-Anwendungen starten möchtest, dann solltest du zu einem normalen Raspberry Pi greifen. Und falls du nicht viel Geld ausgeben willst, kannst du auch das Modell Zero nehmen, was (ohne W-LAN) ähnlich viel kostet.
Auch könnte die Frage wichtig sein, ob dein Projekt einen Internetanschluss oder eine Bluetooth-Verbindung benötigt. Beides bringt der Pico nicht out-of-the-box mit.
Nun wirst du dir vielleicht die Frage stellen „wofür brauche ich einen Raspberry Pi Pico dann überhaupt“? Das hat ein paar Gründe, wobei der wichtigste Grund der super geringe Stromverbrauch ist.
Je nach Programm kann der Pico über viele Tage oder sogar Wochen hinweg mit einer kleinen Li-Po Batterie auskommen. Im Sleep / Standby-Modus braucht der Pico < 0.2mA (= 0.006 Watt) und auch bei Last (Grafiken rendern) nur etwa 90mA.
Was außerdem praktisch für viele Sensoren ist: Der integrierte Analog-Digital-Wandler (ADC). Während wir bei den großen Modellen nicht ohne weiteres analoge Signale auslesen können, ist dies mit dem Pico problemlos möglich. Und das ist noch nicht einmal alles: Wer wenig Zubehör hat und beispielsweise einfach nur sofort loslegen möchte, kann den integrierten Temperatursensor in seinem Code einbinden (so wie wir es gleich tun werden).
Und natürlich spielt auch die Größe eine Rolle. Der Pico ist noch einmal deutlich kleiner als ein Model 4B und sogar kleiner als der Zero:
Ein weiterer überzeugender Punkt ist die sehr gute Dokumentation. Der Einstieg in Mikrocontroller ist gerade für Anfänger schwieriger als für Erfharene, weshalb die Dokumentation sehr wichtig ist.
Zubehör für unseren ersten Test
In der Basis-Version (ohne Kabel und Pin-Header) kostet der Pico lediglich 4-5 €. Für einen (originalen) Arduino Nano muss man normalerweise mindestens das Doppelte hinlegen und dazu ist der Arduino um einiges langsamer. Ähnlich verhält es sich mit dem ESP8266. Zwar hat der ESP andere Vorteile, aber ein vergleichbares Modell (ESP32-based) wäre auch hier teurer (dafür allerdings mit Wifi).
Im nächsten Schritt brauchen wir folgende Teile, um den Pico zu programmieren:
- Raspberry Pi Pico (idealerweise mit Pin-Header)
- Breadboard
- Micro USB Kabel (kein Mini oder Typ C)
- optional: Batteriefach (3 x 1.5 Volt AA)
- LEDs
- optimal: ein Nachschlagewerk für MikroPython
Außerdem brauchst du einen Mac, Windows oder Linux Rechner. Du kannst den Pico übrigens auch über einen normalen Raspberry Pi programmieren, was ich empfehle und ebenfalls getan habe.
Für junge Teenager, die noch keine oder nur wenig Erfahrung mit Mikrocontrollern oder der Programmierung im Allgemeinen haben, bietet der Raspberry Pi Pico einen sehr schönen und einfachen Einstieg. Verschiedene Raspberry Kits und Sets mit weiteren Teilen beinhalten alles, was man zum Starten braucht. Also auch ein schönes Geburtstagsgeschenk!
MicroPython Programm auf den Raspi Pico flashen
Nun wirst du dich fragen, wie wir den Pico Pi programmieren. Dazu können wir entweder MicroPython oder C++ als Programmiersprache nutzen. Das kompilierte Programm wird dazu einfach per Drag & Drop auf das Filesystem des Picos gezogen. Der Pico Pi verbindet sich automatisch als Massenspeichergerät.
Als Erstes machen wir den Pico fertig: Dazu laden wir die MicroPython UF2-Datei (alternativ für C++) von der Raspberry Pi Foundation Website herunter. Folge dann diesen Schritten:
- Der Pi darf nicht mit Strom versorgt werden (keine USB Verbindung)
- Halte den BOOTSEL Button gedrückt.
- Verbinde den Pico Pi mit deinem Raspberry Pi / PC / Mac per USB.
- BOOTSEL loslassen
- Übertrage die MicroPython UF2 Datei per Drag & Drop.
An unserem Raspberry Pi Model B öffnen wir nun ein Terminal und geben Folgendes ein:
sudo apt install minicom
Anschließend verbinden wir uns mit dem Pico:
minicom -o -D /dev/ttyACM0
Drücke hier einige male Enter oder STRG + D (was den Pico neu starten lässt). Danach sind wir in der Python-Konsole und können befehle eingeben. Du kannst dort beispielsweise ein erstes Hello-World ausgeben
print("Hello, Pico!")
oder die Onboard-LED eine Minute blinken zu lassen:
from machine import Pin import time led = Pin(25, Pin.OUT) for i in range(60): led.value(i % 2) time.sleep(1)
Um mehr zu lernen, empfehle ich dir dieses Tutorial, um mit Python das Programmieren zu lernen.
Natürlich kannst du auch noch viel mehr: So kannst du auch Module per SPI, I2C, UART oder analog auslesen (und steuern). Eine Menge weiterer Beispiele findest du im Github-Repository der Foundation.
Python Skript dauerhaft auf dem Pico Pi laufen lassen
Das Problem bei dem bisherigen Code ist, dass dieser nicht dauerhaft ausgeführt wird und nach einem Neustart vergessen wird. Daher schreiben wir ein Python-Skript, welches wir auf den Pi laden. Wir öffnen dazu die Thonny Python IDE:
Unter „Run“ > „Select interpreter“ kannst du „MicroPython (Raspberry Pi Pico)“ auswählen. Darunter wählst du anschließend „Board in FS Mode“ aus (evtl. musst du den Pico neustarten).
Falls du hier keinen solchen Eintrag siehst, musst du wahrscheinlich die Thonny IDE updaten:
sudo apt-get update && sudo apt-get upgrade python3-thonny --yes
Um die Datei auf dem Pico zu speichern, wähle „File“ > „Save as“ > „Raspberry Pi Pico“ und gib einen Namen an (z.B. „pico-blink.py“). Wenn die Datei automatisch beim Neustart gestartet werden soll, musst du sie main.py nennen.
Übrigens: Falls du lieber C++ zum Programmieren nutzt, ist dies auch kein Problem. Hierfür kannst du diesem Guide folgen.
Weitere Projektideen für den Pico
Mit dem RPi Pico ist natürlich noch viel mehr möglich. Hier sind einige spontane Ideen:
- W-LAN nachrüsten mit ESP-01: Der Pico Pi hat zwar kein Wifi, aber dafür viele andere Vorteile. Da der ESP8266 per serieller Schnittstelle angesprochen werden kann, können wir die Datenübertragung darüber laufen lassen.
- W2812 NeoPixel: Die beliebten LED Streifen können auch mit einem Pico gesteuert werden. Damit können wir bspw. Räume ausleuchten oder Farbeffekte präsentieren. Da wir nur wenige GPIOs brauchen, können wir nebenbei noch viel mehr bauen.
- Jegliche Sensoren auslesen: So ziemlich alle Sensoren, die wir mit einem Raspberry Pi, Arduino oder ESP auslesen können, können auch mit dem Pico Pi benutzt werden. Gleiches gilt für viele Module.
Fazit
Der Pico Pi ist der erste Raspberry Pi, der kein Einplatinencomputer ist, sondern ein reiner Mikrocontroller. Er ist super effizient im Stromverbrauch und kommt mit vielen weiteren Features, die ähnliche Mikrocontroller nicht haben – oder nur für einen Aufpreis. Für sehr kleines Geld gibt es mit dem Pico Pi eine mehr als geeignete Alternative zu Arduino Boards.
Was mir auch gut gefallen hat: Im Gegensatz zu den Einplatinen Raspberry Pi’s hat der Pico alle Pins beschriftet. Das hilft beim Fehler suchen und, wenn man nicht wieder nach der Pinbelegung suchen will. Ich hätte es zwar besser gefunden, wenn die Oberseite beschriftet wäre, aber vielleicht kommt das ja bei der nächsten Version.
Zu guter Letzt interessiert mich natürlich noch, welches Projekt ihr mit dem Raspberry Pi Pico vorhabt oder bereits gebaut habt und zu welchem Thema Tutorials gewünscht sind?
13 Kommentare
Super gute Einführung in das erste Projekt. Mach weiter so
Dieser Betrag ist ein perfekter Einstieg in dieses neue Raspberry-Produkt.
Ich freue mich schon auf die nächsten Beiträge.
Mich würde die bidirektionale Kommunikationsmöglichkeiten mit dem Raspberry interessieren. Als Beispiel der Pico misst Daten und übertragt diese per serieller Verbindung an den PI auf dem z. B. eine Webseite läuft.
Guter Punkt. Dann mittels MicroPython oder C++? Letzteres ist ähnlich wie die serielle Verbindung zum Arduino: Arduino und Raspberry Pi miteinander kommunizieren lassen
Danke,
für deine Einführung in das Thema Raspberry Pi Pico.
Die Verbindung würde mich auch interessieren. Wie man z.b. Temperaturdaten und/oder Erdfeuchtewerte mit dem Pico ausließt und diese dann weiter auf dem Raspberry verarbeiten kann.
Achso, fände der Einfachheit halber gut bei Python zu bleiben.
Ein Tutorial zu disem Thema fände ich auch sehr Interessant. Vielen Dank übrigens für die ganzen anderen Tutorials.
Den ersten Fehler habe ich gefunden. Habe ein anderes USB-Kabel verwendet. Jetzt sehe ich den Pico.
Hallo Felix,
könntest Du bitte auch einen Beitrag verfassen indem die Werte des MCP3008 vom Pico lesen kann?
Ich weiß der Pico hat eine ADC aber ich möchte mehrere analoge Sensoren auswerten.
Beste Grüße 🙂
Mich würde auch, wie hier auch schon nachgefragt, die Verbindung von Pico und Pi interessieren – ich würde gern mehrere Picos zum „Datensammeln“ nutzen, und diese an den Pi senden.
Macht es Sinn, Wägezellen direkt von den ADC-Ports des Pico auszulesen?
Ich muss 5 Waagen überwachen – das könnten so ja auch 2 Picos übernehmen. Oder lieber ein Pico nebst HX711-Modulen?
Wie viele Wiegezellen pro Waage sind denn verbaut?
Ich frage weil ich eine art Fahrzeugwaage vor Augen habe, da müssten ja dann mindestens 3 Wiegezellen pro Waage verbaut sein und ausgelesen werden!?
Zum Thema Kommunikation gibt es verschiedene Bus-Systeme (SPI, I2C), einfach mal reinlesen und ausprobieren.
Hallo,
tolle Einführung. Ich erwarte meinen ersten Pico in den nächsten Tagen.
Ich möchte als Erstes einen Midi-Merger bauen. Dazu werde ich auch die PIOs nutzen und den USB-Anschluss. Wäre toll, wenns was gäbe zur Beschaltung und Programmierung.
Weiter so !🌈👍