3112d15eec5366155538240f46357e0f0a49fa3a
Rust on Robots - Workshop (Didacta Ed.)
Rust ist schnell, modern und hilft dabei, typische Embedded-Fehler früh zu vermeiden – genau das, was man auf Robotern braucht. In diesem Workshop gebe ich eine kurze, praxisnahe Einführung in Rust und wir steigen dann direkt in gemeinsame Übungen ein: selbst Rust schreiben, kleine Aufgaben lösen und anschließend Rust auf einem STM32 Bluepill flashen und testen. Ideal für RoboCup-Interessierte aus der außerschulischen bzw. beruflichen Bildung, die schon einmal programmiert haben und Rust als Werkzeug für robuste Robotik ausprobieren wollen.
Workshop Layout
Jede Übung hat ihren eigenen Ordner. Der Lernpfad ist nummeriert. Jede Übung hat Aufgabe mit TODOs zum Lösen.
Ablauf
- Install Rust
- Rust Basics - Hello World
- Rust Basics - Typen
- Rust Basics - Ownership/Borrow
- kleines Desktop Programm
- Embedded - no std
- Embedded - LED Blinky
- Embedded - Button Input
- Embedded - Analog Readout
- Embedded - EmbassyRS
Hardware
- MCU board: STM32F103C8T6 Bluepill
- Debug probe: ST-Link (SWD)
SWD Wiring
- ST-Link
SWDIO-> BluepillPA13 - ST-Link
SWCLK-> BluepillPA14 - ST-Link
GND-> BluepillGND - ST-Link
3V3-> Bluepill3V3 - Optional: ST-Link
NRST-> BluepillNRST
Workshop I/O Wiring
- LED:
- Onboard LED an
PC13(active-low)
- Onboard LED an
- Button:
- Externer Taster von
PA0nachGND - Interner Pull-up wird im Code aktiviert
- Externer Taster von
- Analog (optional):
- Poti/Sensor-Ausgang an
PA1 - Sensorversorgung über
3V3+GND
- Poti/Sensor-Ausgang an
Troubleshooting
Host Setup
rustup: command not found- Rust via rustup installieren.
probe-rs: command not foundcargo install probe-rs-tools
- Target fehlt
rustup target add thumbv7m-none-eabi
Probe / Flashing
No probe found- USB-Kabel/Port prüfen
- ST-Link Treiber/udev prüfen
probe-rs listerneut ausführen
chip not found- Runner-String prüfen:
STM32F103C8
- Runner-String prüfen:
Permission denied(Linux)- udev-Regeln für ST-Link setzen und neu laden
Runtime Behavior
- LED blinkt nicht
- PC13 active-low beachten
- Versorgung prüfen
- Button reagiert nicht
- Taster nach GND verdrahten
PA0korrekt belegt?
- Analogwerte ändern sich nicht
- Sensor/Poti wirklich an
PA1 - Gemeinsame Masse sicherstellen
- Sensor/Poti wirklich an
Fallback in Session
Wenn eine Station nicht stabil läuft:
- Mit funktionierender Nachbarn pairen.
solution/ausführen.- Später wieder auf
task/zurückwechseln.
Description
Languages
Rust
45.7%
HTML
38%
Nix
7.9%
Shell
6.5%
RPC
1.9%