Erstellen eigener Code-Blöcke für den Hardware-Zugriff mittels IO Device Builder

Aus HSHL Mechatronik
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.

Text der Überschrift
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

  1. Arduino IDE starten.
  2. Bibliothek "LiquidCrystal I2C von Frank de Brabander" installieren (hier mit v1.1.2 getestet)
  3. Das Arduino-Beispiel "Hello World" laden.
  4. Angeschlossenes LCD einstellen (z. B. hier 16 Spalten in 2 Zeilen)
  5. Gewünschten Text einstellen und starten.
  6. Ergebnis: Alle Elemente des LCD können wie gewünscht mit Zeichen beschrieben werden.

Schritte in Simulink

  1. Sicherstellen, dass das "Simulink Support Package for Arduino" installiert ist (siehe Matlab/AddOns)
  2. Einen Arbeitspfad wählen, der keine Leerstellen oder andere von Matlab nicht gewünschte Zeichen enthält
  3. Neues Simulinkmodell öffnen: Simulink/New/Blank Model
  4. Hardware einstellen: Simulink/Apps/Run on Hardware Board
  5. IO-Device-Builder starten: Simulink/Hardware/Prepare/IO Device Builder
    1. Arbeitspfad angeben
    2. Dateien auswählen, die mit einbezogen werden sollen (insbes. Bibliotheken)
    3. Parameter für den Block wählen (erscheinen dann in der Block-Maske in Simulink und können dort eingestellt werden)
    4. Ein- und Ausgänge inkl. Datentyp wählen
    5. ggf. noch ein Bild auswählen
  6. 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!
  7. Simulink-Modell erstellen (dann unter Hardware: "Run on Hardware..." das Board einstellen)
  8. per IO-Device-Builder erstellten Simulink-Block verwenden (hineinkopieren) und mit Ein- und Ausgangsdaten je nach Anwendungsfall versorgen
  9. Build&Deploy drücken, fertig. Jetzt sollte der Code auf dem Arduino ausgeführt werden.

Video-Tutorial

URL: https://youtu.be/BXF9x-Tmzhg
Anleitung