This documentation is based on the DTI '24 Microcontroller Workshop and introduces the Raspberry Pi Pico W and its potential in physical computing using CircuitPython. All examples, explanations and tutorials are adapted from the online version found at https://adriaanb.github.io/dti_workshop/.
Der Raspberry Pi Pico ist ein kompaktes Mikrocontroller-Board der Raspberry Pi Ltd. Im Gegensatz zu den Einplatinencomputern der Raspberry-Pi-Familie läuft auf dem Pico kein Linux; das Board führt genau ein Programm aus, das im integrierten Flash-Speicher abgelegt ist. Damit eignet sich der Pico für Aufgaben, bei denen Sensoren ausgelesen und Aktoren (Licht, Klang, Bewegung) in Echtzeit gesteuert werden – also für Physical Computing, interaktive Objekte und Prototypen.
Im DTI-Workshop wird der Raspberry Pi Pico W verwendet, vorinstalliert mit CircuitPython 10 und ergänzt durch ein Grove Shield für steckbare Bauteile.
| Modell | Chip | SRAM | Flash | Funk |
|---|---|---|---|---|
| Pico / Pico H | RP2040 | 264 kB | 2 MB | – |
| Pico W / Pico WH | RP2040 | 264 kB | 2 MB | WLAN + Bluetooth |
| Pico 2 / Pico 2 with headers | RP2350 | 520 kB | 4 MB | – |
| Pico 2 W / Pico 2 W with headers | RP2350 | 520 kB | 4 MB | WLAN + Bluetooth |
| Merkmal | Wert |
|---|---|
| Mikrocontroller | RP2040, Dual-Core Arm Cortex-M0+ |
| Taktfrequenz | bis 133 MHz |
| Arbeitsspeicher | 264 kB SRAM |
| Programmspeicher | 2 MB Flash (auf dem Board) |
| GPIO | 26 multifunktionale Pins |
| Analogeingänge | 3 × ADC, 12 Bit |
| Schnittstellen | 2 × UART, 2 × SPI, 2 × I²C, 16 PWM-Kanäle |
| PIO | 8 programmierbare I/O-Zustandsmaschinen |
| USB | USB 1.1 (Device und Host), Micro-USB-Buchse |
| Funkchip | Infineon CYW43439 |
| WLAN | IEEE 802.11n, 2,4 GHz, WPA3, Access-Point-Modus (bis 4 Clients) |
| Bluetooth | 5.2 (BLE und Classic) |
| Logikpegel | 3,3 V |
Hinweis: Die GPIO-Pins arbeiten mit 3,3 V und sind nicht 5-V-tolerant. Ein 5-V-Signal direkt an einem GPIO kann den Mikrocontroller beschädigen.
board.LED ansprechbar.Wichtige Versorgungs- und Sonderpins:
VBUS (Pin 40): 5 V direkt vom USB-Anschluss.VSYS (Pin 39): Systemeingang für externe Versorgung (z. B. Batterie).3V3(OUT) (Pin 36): geregelte 3,3-V-Ausgangsspannung für Sensoren.3V3_EN (Pin 37): auf GND gezogen, schaltet das Board ab.ADC_VREF (Pin 35): Referenzspannung der Analog-Digital-Wandler.AGND (Pin 33): analoge Masse für störungsarme Sensormessungen.RUN (Pin 30): Reset-Pin.
Analogeingänge liegen auf GP26 (A0), GP27 (A1) und GP28 (A2).
Offizielles Pinout-Diagramm: Raspberry Pi Documentation – Wireless board layout
| Umgebung | Sprache | Charakteristik |
|---|---|---|
| CircuitPython (Adafruit) | Python | Board erscheint als USB-Laufwerk CIRCUITPY; Code wird beim Speichern sofort ausgeführt. Im Workshop verwendet. |
| MicroPython | Python | Offiziell von Raspberry Pi unterstützt; Dateiübertragung über Editor (z. B. Thonny). |
| Pico C/C++ SDK | C, C++ | Höchste Performance und volle Hardwarekontrolle; Kompilierung nötig. |
| Arduino-Core | C++ (Arduino) | Community-Core; Nutzung der Arduino-Bibliotheken möglich. |
Bei den Workshop-Boards ist CircuitPython bereits installiert. Für eigene Boards oder ein Update:
RPI-RP2.RPI-RP2 kopieren.CIRCUITPY.Der BOOTSEL-Modus liegt im unveränderlichen ROM des Chips. Ein Board kann daher durch fehlerhafte Software nicht dauerhaft unbrauchbar werden.
code.py: Hauptprogramm; wird bei jedem Start und nach jedem Speichern automatisch ausgeführt.lib/: Ordner für zusätzliche Bibliotheken (Dateien *.mpy oder Ordner).boot_out.txt: enthält die installierte CircuitPython-Version.Bibliotheken stammen aus dem Adafruit Library Bundle, das zur installierten Hauptversion passen muss (Workshop: Bundle 10.x): circuitpython.org/libraries
code.py auf dem Laufwerk CIRCUITPY öffnen, bearbeiten und mit cmd + S speichern.print() und Fehlermeldungen.print.# --- Imports import time import board import digitalio # --- Variables led = digitalio.DigitalInOut(board.LED) led.direction = digitalio.Direction.OUTPUT # --- Main loop while True: led.value = True time.sleep(0.5) led.value = False time.sleep(0.5)
Das Gliederungsschema (Imports, Variables, Functions, Setup, Main loop) entspricht der Struktur der Workshop-Beispiele.
digitalio.analogio.pwmio.busio.Das Grove Shield für den Pi Pico stellt lötfreie Grove-Steckverbinder bereit:
GP9/GP8, I2C1: GP7/GP6 für SCL/SDA), auch digital nutzbarDie Anschlüsse A1 und A2 sind „geschindelt“: Der zweite Pin eines Anschlusses ist mit dem ersten Pin des darüberliegenden Anschlusses identisch. Die Nutzung eines Anschlusses kann daher den benachbarten blockieren.
CIRCUITPY erscheint nicht: anderes USB-Kabel testen (reine Ladekabel übertragen keine Daten).ImportError: benötigte Bibliothek fehlt im Ordner lib/ oder stammt aus einem nicht passenden Bundle.code.py zu vermeiden.