Qualitätsuntersuchung des Multi-Sensor-Systems Sensor Tag von TI

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Abb. 1: Sensor Tag von texas Instruments

Autoren: Dennis Bräker
Betreuer: Prof. Schneider
Art: PA
Projektlaufzeit: Dez. 18 - März 19


Thema

Datenaufzeichnung mit einem TI Sensor Tag

Ziel

Nutzen Sie das Multi-Sensor-Systems Sensor Tag von TI um einen Datenlogger zu realisieren. Die Daten sollen über einen längeren Zeitraum aufgezeichnet werden und die Qualität ausgewählter Sensoren bewertet werden. Hier kann beispielsweise ein PC mit Matlab zur Visualisierung und Auswertung verwendet werden.

Aufgabenstellung

  1. Einarbeitung in die Hardware
  2. Konzept zur Auswertung der Messdaten (z.B. BT LE)
  3. Realisierung der Schnittstelle
  4. Auslesen und Speichern der Messdaten von 4 Sensoren (Empfehlung: Temperatur und Luftfeuchte)
  5. Visualisierung der Messdaten z.B. mit Matlab
  6. Schätzen Sie anhand der Messdaten und einer geeigneten Referenz die Genauigkeit des Systems ab
  7. Wissenschaftliche Dokumentation als HSHL-Wiki Artikel
  8. Softwareentwicklung nach HSHL Standard in SVN.
  9. Funktionsnachweis als YouTube-Video


Anforderung

  • Wissenschaftliche Vorgehensweise (Projektplan, etc.)
  • Wöchentliche Fortschrittsberichte (informativ)
  • Projektvorstellung im Wiki
  • Machen Sie ein tolles Videos, welches die Funktion visualisiert.


Lösung

Zielsetzung

Ziel dieses Projektes ist es, eine Lösung für den TI SensorTag zu entwickeln, welche das Abrufen und Speichern der Sensordaten, auch über längere Zeiträume, ermöglicht. Insbesondere die mögliche Verbindungstechnologie sowie die einsetzbare Software werden dabei genauer betrachtet. Ein solcher Datenlogger ermöglicht eine langfristige Überwachung der verfügbaren Sensoren über einen größeren Zeitraum. Des Weiteren sollen diese Daten neben der Aufzeichnung auch grafisch dargestellt werden.


Kommunikation

Abb. 2: Bedeutung der HEX-Werte einer GATT-Übertragung

Die Kommunikation zwischen PC und SensorTag erfolgt via Bluetooth Low Energy über ein vorbereitetes USB-Dongle. Dieses wurde im Rahmen des Projekts iBeacon Indoor Lokalisierung bereits geflasht und vorbereitet.
In der Umsetzung des Codes zur Kommunikation von MatLab und SensorTag wird auf Sourcecode von ebendiesem und A Matlab program to interface with the Sensor tag using the CC2540 zurückgegriffen. Dieser Code wurde teilweise angepasst und im Rahmen der Realisierung des Datenloggers verwendet.
Mithilfe der Programme "BLE Device Monitor" [1] oder "btool" lassen sich definierte GATT-Nachrichten an den SensorTag senden sowie die empfangenen Antworten auslesen. Dies ermöglicht eine erleichterte Problemfindung und Überprüfung der Schnittstelle sowie des SensorTags.


Vor der Programmausführung

Bevor die Software in Matlab (ReadSensors_master.m) gestartet wird, gilt es folgende Punkte zu beachten:


  • Die MAC-Adresse des SensorTag muss in der Datei initializeSensortag.m an folgender Stelle geändert werden. Die MAC-Adresse besteht hierbei aus den letzten 6 Werten in umgekehrter Reihenfolge.
GAP_connect = ['01'; '09'; 'FE'; '09'; '00'; '00'; '00' ;'07';'3C'; 'F7' ;'22' ;'91' ;'B0'];  %B0:91:22:F7:3C:07


  • Der COM-Port muss in ReadSensors_master.m an folgender Stelle angepasst werden. Herausfinden lässt sich dieser in Windows über die Bluetooth-Geräteeigenschaften
DisplayHex = 0;
COMPORT = 'COM3';
interval = 60; %Intervall für das Abrufen der Daten


  • An dieser Stelle lässt sich die Ausgabe der übertragenen GATT-Nachrichten in der Kommandozeile in Matlab auch während der Messungen aktivieren sowie das Intervall zum Abrufen der Sensorwerte (in Sekunden) einstellen.

Das Programm

Abb. 3: Programmablauf des Hauptprogramms

Nach dem Start des Programms erfolgt eine Abfrage, ob der SensorTag initialisiert werden soll. Wurde dieses bereits zuvor durchgeführt und der SensorTag nicht neu gestartet, so kann in diesem Fall der Schritt übersprungen werden. Diese Funktion erhöht die Flexibilität, da der Initialisierungsprozess einige Zeit in Anspruch nimmt und im Falle der vorhandenen Verbindung nicht notwendig ist.
Während der Ausführung des Programms wird die Kommunikation mit dem SensorTag in der Matlab-Kommandozeile dokumentiert (sofern diese Funktion nicht deaktiviert wurde). Dies erleichtert u.a. die Fehlersuche bei Problemen und macht das Programm nachvollziehbarer.
Eine Darstellung des Programmablaufs ist in Abbildung 3 zu sehen.


Berechnung der Sensorwerte

Die Sensorwerte werden innerhalb des Programms GetSensorData.m mittels der Rohdaten berechnet. Der SensorTag liefert über die BLE-Schnittstelle unterschiedliche Rohdaten in Form von HEX-Werten, welche mithilfe definierter Berechnungen in einen Messwert umgerechnet werden müssen.
Die Berechnungen für die jeweiligen Sensoren sind hier dokumentiert.
Im Folgenden ist ein die Berechnung eines Temperaturwertes im Programm GetSensorData.m dargestellt

        [result_data] = HCI_TXRX(GATT_ReadIRTemp,READ_TYPE);
        TempSensor = [0,0];
        rawObjTemp = hex2dec([result_data(2,:), result_data(1,:)]);
        rawObjTemp = typecast(uint16(rawObjTemp), 'int16');
        it = bitshift(rawObjTemp,-2,'int16');
        t = double(it)*SCALE_LSB;
        TempSensor(1,1) = t;


Darstellung der Messdaten

Abb. 4: Ausgabe der Messdaten in MatLab als Tabelle

Um den SensorTag als Datenlogger zu verwenden, wird die Software in Matlab so gestaltet, dass die Sensordaten in definierbaren Intervallen abgefragt und gespeichert werden. Da in Matlab Variablen als Matrizen vorliegen, werden die Sensordaten in Form einer Tabelle zugeordnet und abgespeichert.
Zusätzlich wird in einer zweiten Variablen die fortlaufende Nummer und die dazugehörige Uhrzeit abgespeichert, um die Werte bei länger anhaltenden Messungen zuordnen zu können. Die beiden Matrizen werden fortlaufend bei jedem Messzeitpunkt nach unten um eine Zeile erweitert, sodass ein beliebig großer Messumfang und -zeitraum möglich ist. Das Abspeichern in der Datei erfolgt nach jeder Messung, dementsprechend also im definierten Intervall von beispielsweise 5 Minuten.

Abb. 5: Grafische Darstellung der Daten

Des Weiteren werden die Abgefragten Sensorwerte während des laufenden Programms in Matlab grafisch dargestellt. Dies ist in Abbildung 5 zu sehen.


Abschätzung der Genauigkeit

Abb. 6: Messreihe des SensorTag und Referenzwerte

Abschließend galt es die Richtigkeit und Genauigkeit der ermittelten Sensordaten zu überprüfen. Dies dient zum Einen der Überprüfung der richtigen Berechnung der Werte im Code, zum Anderen zur Einschätzung der Genauigkeit des gesamten Messsystems und deren Nutzung für weitere Problemstellungen. Grundlage der Überprüfung ist eine Messreihe der Umgebungstemperatur im Umfang von 100 Werten. Parallel wird die Temperatur zu jedem Messzeitpunkt mit einem Referenzthermometer festgestellt und notiert. Das Referenzthermometer liefert dabei eine Genauigkeit von einer Nachkommastelle, was für eine erste Abschätzung der Genauigkeit der Sensorwerte ausreichend ist. Der Vergleich der beiden Werte ist in Abbildung 6 erkennbar. Eine konstante Temperatur konnte in diesem Fall, wie zu erkennen ist, nicht erreicht werden. Dennoch ist ein Vergleich der Messwerte möglich. So ergibt sich eine mittlere Messabweichung des SensorTags von 0,0811°C. Daraus lässt sich schließen, dass der SensorTag gut geeignet ist, um Temperaturwerte mit der Genauigkeit von einer Nachkommastelle zu erfassen.


Probleme und Herausforderungen

  • Berechnung der Sensorwerte schwierig, insbesondere Helligkeit und Luftdruck
  • Geschwindigkeit: Die Kommunikation via COM-Port ist sehr langsam, BTool fragt die Werte schneller ab
  • Firmwareversion spielt eine wichtige Rolle
  • Teilweise kurzzeitige starke Schwankungen der Werte (auch in der App und BLE Device Monitor), Ursache unklar
  • Nähe zum PC -> Reichweite der Bluetooth Schnittstelle
  • Notwendigkeit einen PC mit Matlab zu nutzen (Ausblick: Handy-App)


Video

Youtube-Video

Anlagen

Sourcecode

BTool

SensorTag GATT Tabelle

Weblinks

  1. Sensor Tag im Detail
  2. Connect Sensortag with matlab
  3. Get accelerometer data from ti sensortag using Matlab and HCI-command
  4. A Matlab program to interface with the Sensor tag using the CC2540
  5. BLE Device Monitor User Guide
  6. Berechnung der Sensorwerte

Siehe auch

  1. Studentische Arbeiten bei Prof. Schneider
  2. Anforderungen an eine wissenschaftlich Arbeit
  3. Programmierrichtlinien für Matlab
  4. iBeacon Indoor Lokalisierung
  5. SVN Repositorium

→ zurück zum Hauptartikel: Studentische Arbeiten