Rust auf dem Raspberry Pi Pico
Der zweite Teil des Rust-Selbstlernkurses führt vom PC auf den Mikrocontroller. 24 Lektionen mit Übungen und aufklappbaren Musterlösungen, zunächst mit externer LED und Taster, später mit ADC, I²C, asynchronen Tasks und optional WLAN.
Empfehlung: Zuerst Rust auf dem PC bearbeiten. Der Kurs setzt Funktionen, Datentypen, Ownership und Cargo voraus.
Wichtiger Hinweis: Die Beispiele sind bewusst als didaktische Ausschnitte gekennzeichnet, wenn sie nicht alleine kompilieren. Für die Firmware das offizielle Embassy-Projektgerüst sowie die dazugehörigen Versionen und Boardfeatures verwenden. Hardwarebeispiele wurden hier nicht auf einem realen Pico getestet.
Kurslektionen
Einstieg
- Teil 01: Rust auf dem Raspberry Pi Pico
- Teil 02: Hardware und sichere Beschaltung
- Teil 03: Rust und Entwicklungsumgebung
- Teil 04: Embassy-Projekt einrichten
- Teil 05: Firmware bauen und übertragen
GPIO
- Teil 06: Erste LED blinken lassen
- Teil 07: Taster als digitaler Eingang
- Teil 08: Taster entprellen
- Teil 09: Timer und asynchrones Programmieren
Signale
Schnittstellen
- Teil 12: UART und Debug-Ausgaben
- Teil 13: I²C-Bus verstehen
- Teil 14: Text auf einem OLED anzeigen
- Teil 15: SPI und externe Module
Fortgeschritten
- Teil 16: Interrupts und Ereignisse
- Teil 17: Mehrere Aufgaben mit Embassy
- Teil 18: PIO und präzise Signale
Netzwerk
- Teil 19: WLAN mit Pico W und Pico 2 W
- Teil 20: TCP, HTTP und einfache Netzwerkdienste
- Teil 21: MQTT und Messwerte übertragen
Projektpraxis
Abschlussprojekt
Hardware
- Raspberry Pi Pico 2 W (empfohlen), alternativ Pico 2; RP2040 benötigt angepasste Targets/Features.
- USB-Datenkabel, Breadboard, Jumperkabel, 330-Ω-Widerstände, LEDs, Taster, Potentiometer.
- Optional: SSD1306-I²C-OLED (3,3-V-kompatibel), I²C-Sensor, USB-UART-Adapter mit 3,3-V-Pegeln oder SWD-Debugger.
Achtung: GPIO-Pins sind nicht 5-V-tolerant. Keine Motoren oder anderen leistungsstarken Verbraucher direkt anschließen.
Entwicklungsumgebung
- Rust/rustup, Cargo, VS Code und rust-analyzer.
- RP2350 ARM:
rustup target add thumbv8m.main-none-eabihf. - RP2040:
rustup target add thumbv6m-none-eabi. - Firmwareflash per UF2/BOOTSEL oder SWD je nach Beispielprojekt.
Technische Basis
Embassy / embassy-rp für Peripherie und Task-Ausführung; cyw43 und embassy-net für WLAN auf W-Modellen. Stets eine passende, zusammengehörige Release-/Commit-Kombination nutzen.
