Wie implementiert man künstliche Intelligenz-Algorithmen auf STM32?
Globaler Lieferant elektronischer Komponenten AMPHEO PTY LTD: Umfangreiches Inventar für One-Stop-Shopping. Einfache Anfragen, schnelle, individuelle Lösungen und Angebote.
Die Bereitstellung von KI-Algorithmen auf STM32-Mikrocontrollern erfordert die Umwandlung trainierter Modelle in optimierten, effizienten Code, der auf den begrenzten Ressourcen der STM32-Geräte ausgeführt werden kann (eingeschränkter Speicher, Rechenleistung und Energieverbrauch). Hier ist eine Schritt-für-Schritt-Anleitung:
1. Auswahl des richtigen STM32-Boards
Nicht alle STM32-Mikrocontroller eignen sich für KI. Wähle ein Modell mit ausreichend RAM, Flash und Rechenleistung:
-
STM32H7-Serie (High-Performance)
-
STM32F7-Serie (hohe Leistung)
-
STM32L4-Serie (für stromsparende KI-Anwendungen)
-
STM32MP1 (Mikroprozessorbasiert, unterstützt Linux)
2. Trainieren des KI-Modells
Trainiere dein Modell auf einem PC mit einem Standard-Framework:
-
TensorFlow / TensorFlow Lite
-
PyTorch (muss zu ONNX oder TFLite konvertiert werden)
-
Keras
Stelle sicher, dass das Modell klein genug ist (TinyML-tauglich).
3. Umwandlung des Modells in ein geeignetes Format
Nach dem Training musst du das Modell in ein Format umwandeln, das mit STM32-Tools kompatibel ist.
Gängige Formate:
-
TensorFlow Lite (.tflite) – kompatibel mit STM32Cube.AI
-
ONNX – kann in TFLite konvertiert oder mit Drittanbieter-Tools verwendet werden
4. Verwendung von STM32Cube.AI
STM32Cube.AI ist das offizielle Tool von ST zur Konvertierung und Optimierung neuronaler Netzwerke für STM32-MCUs.
Schritte:
-
STM32CubeMX installieren (enthält STM32Cube.AI Plugin)
-
Neues STM32-Projekt in STM32CubeMX erstellen
-
X-CUBE-AI Middleware hinzufügen
-
Dein
.tflite
- oder.onnx
-Modell importieren -
Speicher und Peripherie konfigurieren
-
C-Code generieren
STM32Cube.AI wird:
-
Das Modell analysieren
-
Es optimieren (Quantisierung, Pruning etc.)
-
Effizienten C-Code für Inferenz erzeugen
5. Integration des Inferenz-Codes
-
STM32Cube.AI erzeugt Funktionen wie
ai_network_run()
, die du in deiner Embedded-Anwendung aufrufen kannst. -
Du musst Ein-/Ausgabepuffer verwalten (z. B. normalisierte Bilder, Audiodaten usw.)
6. Bereitstellen und Testen
-
Kompiliere und flashe die Firmware mit STM32CubeIDE oder Keil/IAR.
-
Teste mit realen Eingaben.
-
Verwende Tools wie STM32CubeMonitor-AI zur Validierung der Modellleistung auf der Hardware.
7. Optimierung der Leistung
-
Nutze festkommaarithmetische oder quantisierte Modelle (z. B. 8-Bit).
-
Aktiviere Hardwarebeschleunigung (einige STM32s verfügen über DSP, FPU oder KI-Beschleuniger).
-
Nutze DMA für I/O und vermeide blockierende Aufrufe.
-
Verringere die Modellkomplexität (weniger Schichten, kleinere Filter usw.)
Beispielanwendungen
-
Sprachaktivierung (z. B. Erkennung von Schlüsselwörtern)
-
Gestenerkennung mit Beschleunigungssensoren
-
Bildklassifikation mit niedrig aufgelösten Graustufenbildern
-
Zustandsüberwachung (Predictive Maintenance) mit Vibrationssensoren
Zusätzliche Tools
-
NanoEdge AI Studio (von ST): Für Anomalieerkennung und Edge-KI ohne tiefes ML-Wissen.
-
CMSIS-NN: Optimierte neuronale Netzwerk-Kernel für Cortex-M-Prozessoren (Alternative zu STM32Cube.AI für mehr Kontrolle).
Verwandte Artikel
- ·Der Unterschied zwischen 8-Bit-, 16-Bit-, 32-Bit- und 64-Bit-Mikrocontrollern
- ·STM32 PWM Prinzip und Anwendung
- ·Wie benutzt man stm32 als Logikanalysator?
- ·Wie erstelle ich eine PCB für STM32?
- ·Unterschied zwischen HEX- und BIN-Dateien in Mikrocontrollern
- ·Wie man eine STM32 CNC 4-Achsen macht?
- ·UART-Serielle Kommunikationsexperiment basierend auf Raspberry Pi 4B und STM32
- ·Wie wählt man den Takt für den STM32 aus?
- ·Welches ist besser für Anfänger: ESP32 oder STM32? Ein Roboter-Beispiel