Seit einiger Zeit bieten MATLAB und Simulink der Firma MathWorks die Möglichkeit, mit Low-Cost Embedded Systemen wie beispielsweise Arduino (Abbildung 1) oder Raspberry Pi (Abbildung 2), zu interagieren. Der Einsatzbereich reicht von einfacher Datenerfassung mit MATLAB bis hin zum Simulinkmodell, das eigenständig auf der Zielplattform läuft. Dieser Blog zeigt eine Übersicht der Möglichkeiten und illustriert verschiedene Einsatzgebiete im Bereich Internet der Dinge.
Praktisch jeder Student eines technischen Studiengangs kommt früher oder später mit MATLAB in Berührung. Für die Studenten an den Hochschulen wird MATLAB meist von der Bildungseinrichtung zur Verfügung gestellt oder kann als günstige Studentenversion gekauft werden. Solange man sich innerhalb der MATLAB Runtime Umgebung bewegt, lässt sich das Potential von MATLAB gänzlich ausschöpfen. Sobald man aber MATLAB mit realer Embedded Hardware benutzen möchte, wurde es in der Vergangenheit schnell teuer und aufwändig. Mit der neuen Möglichkeit, Low-Cost Hardware mit MATLAB verwenden zu können, wird eine Tür geöffnet, um MATLAB auch im Embedded Umfeld schnell und einfach einzusetzen.
Insbesondere Prototypen, verteilte Algorithmen, Datenlogger oder Daten Aggregatoren sind effizient und kostengünstig zu realisieren und können in kurzer Zeit in einem Real-World-Szenario getestet und eingesetzt werden. Die Low-Cost Hardware ist dabei universell einsetzbar und kann beliebig oft, für verschiedenste Szenarien konfiguriert und wiederverwendet werden.
Im Bereich Internet der Dinge kommt die Grundarchitektur wie in Abbildung 3 dargestellt zum Einsatz. MATLAB kann in bei diesem Umfeld bei den Smart-Devices eingesetzt werden oder übernimmt als Teil der Cloud Datenverarbeitungstasks. In dieser Konfiguration können Devices unter sich kommunizieren (M2M) oder der Benutzer kann sich an das gewünschte Gerät anmelden und so Monitoring und Servicearbeiten tätigen (H2M).
Mit den Board Support Packages von Mathworks werden die Funktionen für die Anbindung an ein bestimmtes Target inkl. einer automatischen Installationsroutine gratis (inkl. Runtime) zur Verfügung gestellt und können ohne weitere Toolboxen verwendet werden. In den Beispielen von Mathworks (z.B. Simulinkbeispiele) werden teilweise weitere Toolboxen benötigt, um das komplette Beispiel durchzuspielen. Bei den Beispielen, welche diesem Beitrag in Kürze folgen, wurde darauf geachtet, dass ausser MATLAB und Simulink keine weiteren Toolboxen benötigt werden. Die folgende Tabelle gibt eine Übersicht über die drei getesteten Targets mit ihren Technischen Eigenschaften:
Arduino Mega 2560 | Raspberry Pi B | GALAXY S4 | |
Hersteller | Arduino | Raspberry Pi Foundation | Samsung |
Prozessor | ATmega2560 8-bit 16 MHz | BCM2835 32-bit SoC 700 MHz | Quad-Core Cortex-A15 1.9 GHz |
RAM | 8 KB | 512 MB | 2 GB |
Flash | 256 KB | SD-Karte | 16/32 GB |
Betriebssystem | Linux (Raspian Wheezy) | Android | |
Kosten | ≈ 45.- | ≈ 35.- | ≈ 500.- (Marktstart) |
Unterstützte Schnittstellen bzw. Sensoren |
|
|
|
Unterstützte Erweiterungen | |||
Weitere Schnittstellen |
|
(je nach Geräteversion können diese Daten abweichen)
Die Auflistung illustriert, wie sich die drei verglichenen Plattformen bezüglich der Leistungsfähigkeit unterscheiden. Auch bei den Kosten sieht man, dass das sehr leistungsfähige GALAXY S4 eigentlich kein Low-Cost Device ist.
In nachfolgenden Blogs wird auf diese drei unterschiedlichen Plattformen eingegangen. Die grundsätzlichen Eigenschaften können auf weitere ähnliche Systeme übertragen werden, welche MATLAB unterstützt (z.B. LEGO Mindstorms, Beagle Board oder Overo Gumstix). Diese Liste wird fortlaufend erweitert. Die Auswahl der getesteten Plattformen wurde auf Grund derer Verfügbarkeit getroffen.
Anwendungsszenarien von MATLAB / Simulink
Szenario 1: Embedded Hardware wird als Ein- und Ausgabe von MATLAB auf einem PC verwendet
Bei dieser Standardanwendung wird das Embedded Device direkt an einen Rechner mit einer MATLAB-Installation angeschlossen. MATLAB steuert das Device via einer USB Schnittstelle und unterstützt Funktionen wie Konfigurieren, Lesen und Schreiben der Ein- und Ausgänge.
Eigenschaften dieser Anwendung:
- Einfache Anbindung von Sensoren und Aktoren an Matlab
- Umfangreiche Datenauswertungen auf dem PC möglich
Szenario 2: Klassisches Sensor-Device („Sensor mit Antenne“)
Das Sensor-Device ist nun mit einem Netzwerk (TCP/IP) verbunden. Mit Simulink wird ein Model erstellt, das autonom auf der Hardware ausgeführt wird. Mit den Sensoren werden die Messwerte erfasst und periodisch an ein übergeordnetes System gesendet. Das Device selber macht keine Analysen basierend auf den Sensordaten.
Eigenschaften dieser Anwendung:
- Einfache Anbindung von Sensoren und Aktoren an ein Netzwerk
- Erlaubt umfangreiche Datenauswertung von mehreren Devices in der Cloud
- Da das Device nur als Gateway für die Sensordaten agiert, sind keine hohen Anforderungen an die Hardware notwendig
- Effiziente Implementierung als Simulink Modell
Szenario 3: Intelligentes Sensor-Device
Ein intelligentes Sensor-Device hat neben der eigentlichen Gateway-Funktionalität auch lokal die Möglichkeit, Sensordaten auszuwerten und mit Aktoren darauf zu reagieren. Dazu wird mit Simulink ein Model mit eigener lokaler Intelligenz gebaut. Auch in diesem Fall ist eine Netzwerkverbindung vorhanden, die beispielsweise für Monitoring und Alarm-Funktionen verwendet werden kann. So ein Device könnte ein Blumengiessautomat sein, der selbstständig die Pflanzen, je nach Temperatur und Feuchtigkeit, aus einem Tank giesst. Wenn sich der Füllstand des Tanks zu Ende neigt, sollte über die Netzwerkverbindung ein Alarm ausgelöst werden.
Eigenschaften dieser Anwendung:
- Die eigentliche Logik befindet sich auf dem Device
- Autonome Steuerung von Aktoren durch beeinflusst durch angeschlossene Sensoren
- Einfache Vernetzung autonomer Devices – Kollektive Intelligenz
- Erlaubt umfangreiche Datenauswertung von mehreren Devices in der Cloud
- Lokale Datenanalyse abhängig von verwendeter Hardware (Speicher, Rechenleistung, Energie)
- Effiziente Implementierung als Simulink Modell
Zusammenfassung
Mit MATLAB / Simulink lassen sich effizient intelligente Sensorknoten für das Internet der Dinge erstellen. Der Einsatzbereich reicht von einfacher Datenerfassung mit MATLAB bis hin zum Simulinkmodell, das eigenständig auf der Zielplattform Datenanalysen auf Grund der Sensordaten vornimmt, Entscheidungen fällen und Informationen mit der Cloud Plattform austauschen kann.
Weiterführende Links:
- Unterstütze Hardware von MATLAB/Simulink: www.mathworks.com
- Portal von Mathworks mit vielen Informationen zu Arduino, Raspberry Pi und LEGO MINDSTORMS Projekten: makerzone.mathworks.com
- Arduino Hard- und Software: www.arduino.cc
- Raspberry Pi: www.raspberrypi.org