Smart Light: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Zeile 163: Zeile 163:




- Wirkung des Tiefpassfilters:
Auch in dieser Funktion werden zu Anfang alle verwendeten Variablen als persistent Datentyp einmalig deklariert und falls vorhanden ein fester oder initialer Wert zugewiesen. Insgesamt beruht der Detektionsalgorithmus auf der Differenz zwischen den einzelnen Temperaturen der Pixelmatrix und einer berechneten Umgebungstemperatur. Für die Berechnung der Umgebungstemperatur werden zunächst alle gemessenen Temperaturen in einem Array nach Größe aufsteigend sortiert. Hiernach wird ein Tiefpassfilter 1. Ordnung verwendet.
 
 
<math>\vartheta = T * \alpha - (1-alpha) * \vartheta_{old}</math>
 
 
<math>T</math> stellt in dieser Gleichung den Mittelwert aus den vier kleinsten Temperaturwerten der Pixelmatrix dar. Diese Berechnung ergibt sich aus der Überlegung, dass das Smart Light System für die Wahrnehmung von Wärmesignaturen in einem Abstand von ca. 2-3 m verwendet wird. Somit spannt sich die Pixelmatrix über einen Bereich von ungefähr 2.5 m^2 bis 5.7 m^2 auf (siehe [[:Datei:D6T DB-EN.pdf| Datenblatt]]). Da dieser Bereich im Vergleich mit der projizierten Fläche eines Menschen deutlich geringer ist, kann davon ausgegangen werden, dass mehrere Pixel repräsentative Messwerte für die Umgebungstemperatur besitzen.
 
Die Wirkung des verwendeten Tiefpassfilters lässt sich in Abbildung 8 erkennen.


[[Datei:Messung Raumtemperatur Tiefpassfilter.png| left| 1000 px]]
[[Datei:Messung Raumtemperatur Tiefpassfilter.png| left| 1000 px]]
<br clear=all>
<br clear=all>
''Abbildung 6: Messung der Raumtemperatur''
''Abbildung 8: Messung der Raumtemperatur''


== Komponententest ==
== Komponententest ==

Version vom 4. Januar 2022, 22:04 Uhr


Autoren: Björn Schlottke & Dennis Schleicher
Betreuer: Prof. Göbel & Prof. Schneider


→ zurück zur Übersicht: WS 21/22: Fachpraktikum Elektrotechnik (MTR) und Angewandte Elektrotechnik (BSE)


Einleitung

Das Smart Light System stellt ein Steuergerät für intelligentes Licht dar. Mithilfe eines thermischen MEMS Präsenzsensors sollen Menschen erkannt werden und dementsprechend eine Lichtquelle ein- und ausgeschaltet werden. Somit kann diese effizient und gleichzeitig vollautomatisch arbeiten. Der Unterschied zu einer reinen Abstandsmessung durch beispielsweise Ultraschallsensoren oder LiDAR Sensoren, ist der, dass die Menschen mithilfe eines MEMS Präsenzsensors auch ohne Bewegung erkannt werden können. Eine Skizze des Systems lässt sich in der folgenden Abbildung erkennen.


Abbildung 1: Skizze Smart Light

Der Sensor, welcher verwendet werden soll ist der D6T44L06 vom Hersteller OMRON. Das Datenblatt des Sensors kann hier eingesehen werden.

Anforderungen

ID Inhalt
Tabelle 1: Anforderungen
001 Das System muss Lebewesen erkennen können.
002 Der Mensch muss sich in einem definierten Bereich befinden, der dem Messbereich des MEMS Präsenzsensors entspricht, damit die Lichtquelle vom Steuergerät angeschaltet wird.
003 Die Lichtquelle muss angeschaltet bleiben, wenn sich das Lebewesen im Messbereich nicht bewegt.
004 Die Lichtquelle muss ausgeschaltet werden, wenn das Lebewesen sich nicht im definierten Messbereich befindet.
005 Alle elektrischen Komponenten des Messsystems müssen in einem entsprechenden Gehäuse integriert sein, mit Ausnahme der Lichtquelle.
006 Das System muss eine LED als Lichtquelle besitzen.
007 Das System muss von einem Mikrocontroller gesteuert werden.
008 Das System muss einen MEMS Präsenzsensor beinhalten.
009 Das System basiert auf einem Mikrocontroller der die Steuerung des Systems sowie Spannungsversorgung von Sensoren und Aktoren übernimmt.
010 Das Gehäuse des Systems muss im 3D-Druckverfahren hergestellt werden

Funktionaler Systementwurf/Technischer Systementwurf

Der funktionale Systementwurf lässt sich in der folgenden Abbildung erkennen.


Abbildung 2: Funktionaler Systementwurf


Komponentenspezifikation

ID Modul Komponente
Tabelle 1: Komponentenspezifikation
001 Sensor D6T44L06
002 Datenverarbeitung Einlesen der Messwerte
003 Datenverarbeitung Interpretation der Messwerte
004 Datenverarbeitung Ansteuern der LED
005 LED Bezeichnung der LED
006 Gehäuse Grundkörper
005 Gehäuse Deckel

Umsetzung (HW/SW)

Hardware

Die einzelnen Komponenten können aus Tabelle 1 entnommen werden. Im folgenden Abschnitt wird insbesondere auf den Zusammenbau und das Zusammenwirken der Komponenten eingegangen.

Verdrahtungsplan

Der Verdrahtungsplan welcher mit der Software Fritzing erstellt wurde lässt sich in Abbildung 3 erkennen.


Abbildung 3: Fritzing Steckplatinenaufbau Smart Light Projekt


Bei Betrachtung von Abbildung 3 lässt sich erkennen, dass ein Arduino Uno dargestellt ist, welcher jedoch als Funduino Uno R3 gekennzeichnet ist. Dies liegt daran, dass es sich bei dem verwendeten Mikrocontroller um einen Arduino Uno Klon des Herstellers Funduino handelt. Beide Mikrocontroller sind von den Abmaßen, Anschlüssen und den technischen Daten identisch und somit wurde ein Arduino Uno für den Fritzing Entwurf verwendet, weil innerhalb dieser Software bisher keine Funduino Teile existieren. Des Weiteren wurden beide Status LEDs mit jeweils einem digitalen Ausgang des Funduino Uno verbunden und der Sensor über den I2C Bus an den Mikrocontroller angeschlossen. Anhand dieses Entwurfes wurde das System aufgebaut und anschließend der Schaltplan des Projektes ausgearbeitet.

Schaltplan

Der Verdrahtungsplan welcher mit der Software Multisim erstellt wurde lässt sich in Abbildung 4 erkennen.


Abbildung 4: Multisim Schaltplan Smart Light Projekt


In Abbildung 4 ist deutlich zu erkennen, dass der verwendete Funduino Uno mit einer externen Gleichspannungsquelle versorgt wird. Hierbei handelt es sich um ein Netzteil welches den Mikrocontroller mit 9 V versorgt. Die LEDs und der Sensor werden über den Mikrocontroller mit Spannung versorgt. Außerdem lässt sich erkennen, dass der Schaltplan aufgrund der Übersicht lediglich die belegten Steckverbindungsgruppen beinhaltet. Diese beiden Gruppen lassen sich in dem Steckplatinenaufbau in Abbildung 3 erkennen und somit auf dem Funduino Uno eindeutig zuordnen.

Software

Im folgenden Ablauf wird detailliert auf die erstellte Software des Projektes eingegangen. Grundlegend wurde die Software modellbasiert mit MATLAB Simulink erstellt. Um einen ersten Überblick über den Programmablauf zu erhalten, lässt sich in Abbildung 5 der Programmablaufplan der programmierten Software erkennen.


Abbildung 5: Programmablaufplan des Simulinkmodells


Die Software beginnt damit das Startkommando an den Sensor über den I2C Bus zu senden, damit er beginnt zu messen. Dies wird einmalig ausgeführt. Anschließend beginnt die endlose Zyklusschleife die nicht mehr verlassen wird. Innerhalb dieser Schleife wird zunächst ein 32 Byte langes Datenpaket über den I2C Bus ausgelesen. In diesem Datenpaket werden vom Sensor unter anderem die gemessenen Temperaturen übermittelt. Ursprünglich ist das Paket 35 Byte lang. Jedoch ist es mit den Bausteinen des "Simulink Support Package for Arduino Hardware" nicht möglich mehr als 32 Byte in einem Zyklus über den I2C auszulesen. Mehr Informationen zu dieser Problematik lassen sich unter dem Abschnitt Lessons Learned wiederfinden.

Nach dem Auslesen der Messdaten folgt die Berechnung der Temperaturen in der zugehörigen 4x4 Pixelmatrix des Sensor. Dieser Vorgang wurde genau wie der Detektionsalgorithmus in dem Simulinkmodell mithilfe eines "MATLAB Function" Blocks in dem Modell implementiert. In diesem Block befindet sich der in Abbildung 6 dargestellte Programmcode.


Abbildung 6: Programmcode getTemperature Funktion


Eingangswerte der Funktion sind die Bytes aus dem Datenpaket, die der Sensor über den I2C Bus an den Mikrocontroller sendet. Diese Bytes sind in der Variable data hinterlegt. Anschließend werden zunächst einmalig die verwendeten Variablen als persistent Datentyp deklariert und ein entsprechender Wert zugewiesen. Das 16. Temperaturpixel kann aufgrund der bereits beschriebenen Problematik nicht ausgesen und somit berechnet werden. Dementsprechend wird ihm dauerhaft der Wert NaN zugewiesen.

Als nächstes werden die anderen 15 Temperaturen aus den Bytes berechnet und an ihrer zugehörigen Stelle in der 4x4 Matrix hinterlegt. Abschließend wird die vollständige Matrix an die Variable temperature zurückgeben. Eine Rückgabevariable kann nicht als persistent Variable verwendet werden. Weitergehend folgt im Programmablauf der Detektionsalgorithmus. Der Programmcode dieser MATLAB Function ist in Abbildung 7 einsehbar.



Abbildung 7: Programmcode DetectionAlgorithm Funktion


Auch in dieser Funktion werden zu Anfang alle verwendeten Variablen als persistent Datentyp einmalig deklariert und falls vorhanden ein fester oder initialer Wert zugewiesen. Insgesamt beruht der Detektionsalgorithmus auf der Differenz zwischen den einzelnen Temperaturen der Pixelmatrix und einer berechneten Umgebungstemperatur. Für die Berechnung der Umgebungstemperatur werden zunächst alle gemessenen Temperaturen in einem Array nach Größe aufsteigend sortiert. Hiernach wird ein Tiefpassfilter 1. Ordnung verwendet.



stellt in dieser Gleichung den Mittelwert aus den vier kleinsten Temperaturwerten der Pixelmatrix dar. Diese Berechnung ergibt sich aus der Überlegung, dass das Smart Light System für die Wahrnehmung von Wärmesignaturen in einem Abstand von ca. 2-3 m verwendet wird. Somit spannt sich die Pixelmatrix über einen Bereich von ungefähr 2.5 m^2 bis 5.7 m^2 auf (siehe Datenblatt). Da dieser Bereich im Vergleich mit der projizierten Fläche eines Menschen deutlich geringer ist, kann davon ausgegangen werden, dass mehrere Pixel repräsentative Messwerte für die Umgebungstemperatur besitzen.

Die Wirkung des verwendeten Tiefpassfilters lässt sich in Abbildung 8 erkennen.


Abbildung 8: Messung der Raumtemperatur

Komponententest

Ergebnis

Zusammenfassung

Lessons Learned

Durch das Verwenden von Matlab waren uns leider klare Grenzen in der Umsetzung des Projektes gesetzt. Durch die Schwierigkeiten Bibliotheken von Arduino in Matlab einzubauen konnten wir leider nicht alle Messwerte auswerten. Der letzte Messwert der 4x4 Matrix ist durch die Begrenzung auf 32 bit Verarbeitung in Matlab verloren gegangen. Weiterhin lies sich kein LED streifen oder eine LED Matrix mit (in dem Rahmen des Projektes) zumutbaren Umfang einbinden. Durch die Verwendung von einer LED gehen Informationen verloren, welche eigentlich ins der Software vorhanden wären.

- Menschen haben keine so signifikante Wärmesignatur wie erwartet und sind dementsprechend an der Oberfläche nicht so warm

- für die Differenzierung von anderen Wärmesignaturen wie Elektrogeräten müsste ein zusätzlicher Präsenzsensor verwendet werden

- Sensordatenfusion wäre möglich um den Algorithmus mit derselben Grundlage zu verwenden und das System zu verbessern

Projektunterlagen

Projektplan


Abbildung 6: Projektplan Smart Light

Projektdurchführung

YouTube Video

Weblinks

Präsenzsensor D6T-44L-06

Literatur


→ zurück zur Übersicht: WS 21/22: Angewandte Elektrotechnik (BSE)