Inhaltsverzeichnis
Messungen mit dem Spektrometer
HdM Messgeräte
Es gibt viele Möglichkeiten und auch verschiedene Arten Licht zu messen. An der HdM haben wir unter anderem:
- Seconic Belichtungsmesser
- Seconic Spektrometer
- Spektrometer SpectraScan PR670
Belichtungsmesser sind am bekanntesten und werden wahrscheinlich am häufigsten benutzt. Diese können jedoch nur Lichtintensitäten messen (einfallende und reflektierende). Spektrometer hingegen können, wie der Name schon sagt, die spektrale Energieverteilung des Lichtes in bestimmten Wellenlängenbereichen messen, zusätzlich mit vielen anderen hilfreichen Parametern. Die beiden Geräte von Seconic sind kleiner, günstiger und nicht 100% akkurat, da sie für den täglichen und einfachen Gebrauch am Set gedacht sind. Der SpectraScan PR670 hingegen ist um einiges größer und unhandlicher, teurer und sehr präzise, was die Messungen angeht. Daher macht es Sinn diesen für akkurate Messungen zu benutzen.
SpectraScan PR670
Das SpectraScan PR670 Spektrometer befindet sich in der HdM normalerweise im Besitz von technischem Mitarbeiter Peter Ruhrmann und wird nur mit Einverständnis oder Absprache herausgegeben. Verstaut wird es in einer Box mit Ladekabel und all seinem Zubehör. Das PR670 misst in einem Wellenlängenbereich von 380-780nm in 2nm Schritten.
Gemessen wird, indem man durch die Optik des Gerätes auf das gewünschte Ziel schaut, die Linse scharf stellt und auf den „Measure“-Knopf auf der oberen Seite des Geräts drückt. Das Spektrometer braucht dann einen kurzen Zeitraum, um die Messung abzuschließen und kommuniziert das mit zwei hörbaren Pieps-Tönen. Die Messungen werden dann entweder intern auf einer SD-Karte gespeichert oder direkt über eine serielle Verbindung an einen PC mit einem USB-Kabel übertragen. Über diese können auch Signale an das Spektrometer gesendet werden, sodass man es über einen PC remote steuern kann.
Im Menü können noch mehrere Einstellungen zum Verhalten oder den Messungen eingestellt werden. Darunter auch wo etwas gespeichert werden oder welche Werte überhaupt gemessen werden sollen.
Spektrometer Gebrauchsanleitung: https://www.jadaktech.com/product/spectrascan-pr-670/
Einsatzmöglichkeiten
Datenblätter von Herstellern und maximale Anforderungen prüfen:
Oft geben Hersteller leicht verbesserte oder irreführende Werte an, um ihre Produkte besser vermarkten zu können. Deshalb lohnt es sich die Geräte in realen Szenarien zu testen und eigene Werte sammeln. Manchmal weiß man auch nicht mehr genau, was ein Gerät alles kann bzw. wie weit es geht, bis man es vermessen hat.
Überprüfen auf technische Fehler:
Elektronische Bauteile können sehr empfindlich sein und somit auch schnell kaputt gehen oder nicht mehr richtig funktionieren. Vor allem nach langjähriger Benutzung lassen sich oft schon Leistungseinbuße nachweisen, weswegen es sich lohnt Geräte regelmäßig zu überprüfen, um mögliche Fehler zu erkennen.
Messwerte für Kalibrierung sammeln:
Dies trifft vor allem auf Displays zu, denn nur die wenigsten kommen schon korrekt Farbkalibriert vom Hersteller. Außerdem lässt eine Kalibrierung ebenfalls mit der Zeit nach, sodass man auch Displays in regelmäßigen Abständen neu kalibrieren sollte. Sonst kann das Gerät nicht in vollem Umfang arbeiten und die Farben stimmen ggf. nicht.
Für Forschungszwecke:
Oft will man einfach nur verschiedene Szenarien testen oder vergleichen um eine Vermutung aufzustellen oder zu bestätigen. Um dies auf einer neutralen und faktischen Ebene durchzuführen müssen Messwerte erstellt werden.
Ziel:
Da es sehr langwierig und mühsam werden kann, viele Messungen selbständig per Hand zu machen und vor allem dann später die wichtigen Daten herauszusuchen und auszuwerten, macht es Sinn das Spektrometer mit einem Laptop zu verbinden und die gesamte Messung darüber zu steuern. Glücklicherweise unterstützt das Spektrometer mit dem „Remote Mode“ die Verbindung zu einem Computer, sodass sich alle wichtigen Funktionen über diesen steuern lassen. Dies geschieht, wie bereits erwähnt über ein USB-Kabel. Um das Spektrometer zu steuern kann es in viele Programme eingebunden werden, in diesem Fall ist es Matlab.
Bedienung des Skripts:
Die Matlab-Scripts wurden für die Vermessung der LED-Wand der HdM geschrieben, können jedoch universell angewendet oder angepasst werden.
Github-Link: SpectrometerControl
Falls das Ziel ist, nur jeweils einzelne Messungen auf Kommando zu machen, öffne das Skrip „measure.m“. Für das Skript zur automatischen Messung öffne „auto_measure.m“. Beide Skripte sind in mehrere Abschnitte unterteilt:
- User-Config
- Setup
- Measurement
- End
Einstellungen:
Alle Einstellungen für die Messungen werden im ersten Abschnitt unter „User Config“ eingegeben und sind für beide Skripte weitgehend identisch. Schalte dafür das Spektrometer an und verbinde es per USB-Kabel mit deinem Rechner. Konfiguriere dann die verschiedenen Einstellungen für deine Messung:
conf.port
Gibt den Port vom Spektrometer am Laptop an. Dieser variiert von Gerät zu Gerät und muss deshalb selbst herausgefunden werden. Dafür einfach alle anderen Geräte vom Laptop abstecken und „serialportlist“ in die Matlab Konsole eingeben. Den ausgegebenen String dann bei „conf.port“ eintragen. Je nach Betriebssystem heißen die Werte beispielsweise „COM8“ (Windows), „/dev/cu.usbmodem11301“ (MacOS) oder „/dev/ttyACM0“ (Linux), die genauen Ausgaben variieren aber. Falls es unter Linux bei der Verbindung zu Problemen kommt liegt das häufig daran, das Matlab bestimmte Rechte fehlen. Um das zu beheben kann man einfach Matlab als superuser (sudo) ausführen.
conf.command
Gibt den Messmodus an, also welche Daten überhaupt ausgegeben werden sollen. Zur Auswahl stehen hier
'XYZ': Misst CIE 1931 XYZ Werte
'Yxy': Misst CIE 1931 Yxy Werte
'Yuv': Misst CIE 1976 Yu'v' Werte
'spectral': Misst von 380-780nm in 2nm Schritten
'all': Liefert alle genannten Werte zurück
conf.file_name
Hier kann man den Namen eingeben, unter welchem das Programm die Messung abspeichert. Zusätzlich dazu wird noch die Uhrzeit und das Datum miteingefügt. Die Messungen werden als Liste in einer .json Datei abgespeichert und sind damit leicht weiterverarbeitbar.
conf.output_dir
Bestimmt den Ordner, in welchem die Messungen gespeichert werden (standardmäßig „./out“).
conf.show_images (nur bei auto_measure)
Bestimmt ob auf die Werte auf einem angeschlossenen Display angezeigt werden sollen oder nicht. Falls kein Medium direkt bespielt wird, diesen Wert auf „false“ setzten und ggf. unter „values“ den Messungen Namen geben. Bei „true“ werden die Messungen automatisch durchgegangen, bei „false“ muss man jede Messung manuell starten.
conf.width/-height (nur bei auto_measure)
Ist die Anzeigegröße des zumessenden Displays (bei beiden LED Wänden muss hier idR. 1920×1080 eingetragen werden).
values (nur bei auto_measure)
Wenn „conf.show_images“ auf „true“ gestellt ist können hier eigene Bildsequenzen konfiguriert werden, wie z.B. ein Verlauf von Schwarz bis Weiß oder verschiedene Farbverläufe. Dabei können Farbwerte als n:3 Matrix und Grauwerte als Vektor angegeben werden. Die angegebenen Werte werden nacheinander angezeigt und gemessen. Die get_values(type, step) Funktion bietet hierbei die Möglichkeit verschiedene typische Werte zu generieren. step bezeichnet dabei, wieviele Werte zwischen 0 und 1 liegen sollen (zB. 256 für eine volle 8 Bit Abstufung, häufig reichen aber auch deutlich niedrigere Werte). Bei type können folgende Optionen gewählt werden: „grey“, „primary-borders“, „borders“, „mesh“ (hover über den Bildern um die genauen Kommandos zu sehen).
Einige Beispiele hierfür sind auch bereits im Skript und können einfach auskommentiert werden. Wenn „conf.show_images“ auf „false“ gestellt ist können die „values“ alternativ auch eine Liste von strings sein, die gemessen werden sollen. Die Farbwerte bzw. Namen werden für jede Messung mit abgespeichert.
Programmablauf:
Wenn man alle Werte für seine Messung richtig eingestellt hat, kann man nun das Spektrometer ausrichten, fokussieren und das Skript starten. Das die Verbindung geklappt hat sieht man in der Matlab Konsole und daran, dass das Spektrometer „Remote Mode“ auf dem Display anzeigt.
Bei einer automatischen Messung, bei dem auch ein Display bespielt wird, bittet das Programm einen dann noch dazu, das Fenster auf Vollbildmodus zu stellen, falls dies noch nicht geschehen ist. Mit einem Druck auf „ENTER“ startet nun das Programm nach einem kurzen Timer automatisch.
Manuelle Messungen über das Skript „measure“ kann man jeweils einzelne Messungen durchführen. Das Programm frägt einen dabei über die Konsole, wie man die Messung nennen will (optional, ohne Namen werden die Messungen einfach durchnumeriert). Mit der „ENTER“-Taste startet man die Messung. Nachdem die jeweilige Messung erfolgt ist, werden einem die Werte in der Konsole ausgegeben. Daraufhin frägt einen das Programm, ob man die nächste Messung durchführen will (ENTER-Taste), die vorherige Messung wiederholen bzw. überschreiben („REDO“) oder die gesamte Messung beenden („SAVE“) und in einer Datei abspeichern möchte.
Eigene Implementierung:
Für die Verwendung in eigenen Skripts kann auch einfach nur die „Spectrometer“ Klasse eingesetzt werden, die dann die Kommunikation mit dem Spektrometer und Verarbeitung der Rückgabewerte übernimmt. In der Spectrometer.m sind alle Funktionen für die Verwendung des Spektrometers implementiert. Hier der grundlegende Ablauf:
spectro = Spectrometer(port); disp(spectro.is_connected()); measurement = spectro.measure("all") spectro.quit_remote_mode();
Alternativ können auch Kommandos direkt gesendet werden über:
output = spectro.command("M10");
Eine Liste von mögliche Kommandos finden sich im Manual auf Seite 141.
Tipps und Verbesserungen:
- Für möglichst unverfälschte Messungen am besten jegliches andere Licht ausschalten und Tageslicht vermeiden, ein dunkler Raum ist ideal. Außerdem kann man am Spektrometer mit einem Drehknopf an der linken Seite eine Klappe im Spektrometer umlegen, damit kein Licht durch den Sucher die Messung verfälschen kann.
- Es lohnt sich seine Messungen sinnvoll und durchgehend zu benennen, sonst hat man beim Auswerten der Daten später ein riesiges Chaos.
- Manche Messungen können bis zu 20 Minuten dauern, daher am besten die Zeit grob hochrechnen und die Zeit währenddessen sinnvoll nutzen oder die Messungen irgendwo im Hintergrund laufen lassen
Das Skript ist für alle offen zugänglich auf GitHub und kann nach belieben verbessert oder erweitert werden. Der aktuelle Stand dient nur als Grundbaustein um zu zeigen, was alles möglich ist und jedem zukünftige Messungen erleichtern.