Files
didakta-rust-on-robots/README.md
2026-03-11 13:59:56 +01:00

2.5 KiB
Raw Permalink Blame History

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

  1. Install Rust
  2. Rust Basics - Hello World
  3. Rust Basics - Typen
  4. Rust Basics - Ownership/Borrow
  5. kleines Desktop Programm
  6. Embedded - no std
  7. Embedded - LED Blinky
  8. Embedded - Button Input
  9. Embedded - Analog Readout
  10. Embedded - EmbassyRS

Hardware

  • MCU board: STM32F103C8T6 Bluepill
  • Debug probe: ST-Link (SWD)

SWD Wiring

  1. ST-Link SWDIO -> Bluepill PA13
  2. ST-Link SWCLK -> Bluepill PA14
  3. ST-Link GND -> Bluepill GND
  4. ST-Link 3V3 -> Bluepill 3V3
  5. Optional: ST-Link NRST -> Bluepill NRST

Workshop I/O Wiring

  1. LED:
    • Onboard LED an PC13 (active-low)
  2. Button:
    • Externer Taster von PA0 nach GND
    • Interner Pull-up wird im Code aktiviert
  3. Analog (optional):
    • Poti/Sensor-Ausgang an PA1
    • Sensorversorgung über 3V3 + GND

Troubleshooting

Host Setup

  1. rustup: command not found
    • Rust via rustup installieren.
  2. probe-rs: command not found
    • cargo install probe-rs-tools
  3. Target fehlt
    • rustup target add thumbv7m-none-eabi

Probe / Flashing

  1. No probe found
    • USB-Kabel/Port prüfen
    • ST-Link Treiber/udev prüfen
    • probe-rs list erneut ausführen
  2. chip not found
    • Runner-String prüfen: STM32F103C8
  3. Permission denied (Linux)
    • udev-Regeln für ST-Link setzen und neu laden

Runtime Behavior

  1. LED blinkt nicht
    • PC13 active-low beachten
    • Versorgung prüfen
  2. Button reagiert nicht
    • Taster nach GND verdrahten
    • PA0 korrekt belegt?
  3. Analogwerte ändern sich nicht
    • Sensor/Poti wirklich an PA1
    • Gemeinsame Masse sicherstellen

Fallback in Session

Wenn eine Station nicht stabil läuft:

  1. Mit funktionierender Nachbarn pairen.
  2. solution/ ausführen.
  3. Später wieder auf task/ zurückwechseln.