Erstellen eigener Code-Blöcke für den Hardware-Zugriff mittels IO Device Builder
Zur Navigation springen
Zur Suche springen
Zielsetzung
Es soll ein Block für Matlab/Simulink erstellt werden, um einen Wert an einem LCD (Liquid Crystal Display) anzuzeigen, das per I²C an einen Arduino Uno angeschlossen ist. Natürlich kann auch andere Hardware verwendet werden - hier ist dies am Beispiel des Uno gezeigt.
Schaltung
Das LCD ist wie folgt an den Arduino Uno angeschlossen.
Bedeutung | Arduino | LCD |
---|---|---|
Masse | GND | GND |
5V | 5V | Vcc |
I²C Daten | A4 | SDA |
I²C Takt ("clock") | A5 | SCL |
Vorbereitung außerhalb von Simulink
- Arduino IDE starten.
- Bibliothek "LiquidCrystal I2C von Frank de Brabander" installieren (hier mit v1.1.2 getestet)
- Das Arduino-Beispiel "Hello World" laden.
- Angeschlossenes LCD einstellen (z. B. hier 16 Spalten in 2 Zeilen)
- Gewünschten Text einstellen und starten.
- Ergebnis: Alle Elemente des LCD können wie gewünscht mit Zeichen beschrieben werden.
Schritte in Simulink
- Sicherstellen, dass das "Simulink Support Package for Arduino" installiert ist (siehe Matlab/AddOns)
- Einen Arbeitspfad wählen, der keine Leerstellen oder andere von Matlab nicht gewünschte Zeichen enthält
- Neues Simulinkmodell öffnen: Simulink/New/Blank Model
- Hardware einstellen: Simulink/Apps/Run on Hardware Board
- IO-Device-Builder starten: Simulink/Hardware/Prepare/IO Device Builder
- Arbeitspfad angeben
- Dateien auswählen, die mit einbezogen werden sollen (insbes. Bibliotheken)
- Parameter für den Block wählen (erscheinen dann in der Block-Maske in Simulink und können dort eingestellt werden)
- Ein- und Ausgänge inkl. Datentyp wählen
- ggf. noch ein Bild auswählen
- cpp-Datei öffnen und den Inhalt aus dem funktionierenden Arduino-Projekt Stück für Stück einbauen. Hier können die von Matlab erzeugten Input und Output-Variablen verwendet werden!
- Simulink-Modell erstellen (dann unter Hardware: "Run on Hardware..." das Board einstellen)
- per IO-Device-Builder erstellten Simulink-Block verwenden (hineinkopieren) und mit Ein- und Ausgangsdaten je nach Anwendungsfall versorgen
- Build&Deploy drücken, fertig. Jetzt sollte der Code auf dem Arduino ausgeführt werden.
Video-Tutorial
URL: https://youtu.be/BXF9x-Tmzhg