Thermal Imaging Bricklet

Features

  • 80x60 Pixel Wärmebildkamera
  • Messbereich -10°C bis 450°C
  • Nutzt FLIR Lepton mit Radiometry und Shutter
  • High Contrast Bild mit 8,6Hz und 8 Bit Auflösung (zum darstellen)
  • Temperatur Bild mit 4,5Hz und 16 Bit Auflösung (für wissenschaftliche Berechnungen)
  • Definierbares Spotmeter mit Min-, Max-, Durchschnitts-Temperaturberechnung
  • Automatische Shutter-Steuerung

Beschreibung

Das Thermal Imaging Bricklet ist mit einer 60x80 Pixel Wärmebildkamera ausgestattet. Das Bricklet kann mit Bricks verbunden werden.

Das Bricklet nutzt einen FLIR Lepton Sensor mit Radiometrie und Shutter. Der Sensor kann Temperaturen zwischen -10°C bis zu 450°C mit einer Auflösung von 80x60 Pixel messen.

Ein Spotmeter kann definiert werden um Minimum-, Durchschnitts und Maximaltemperatur für eine definierte Region im Bild zu messen.

Das Bricklet unterstützt zwei Modi: High Contrast Image und Temperature Image.

Im High Contrast Image Modus streamt das Bricklet Bilddaten mit 8,6Hz und 8 Bit Auflösung. Die Bilddaten sind Grauwerte, der hohe Dynamikbereich des Sensors ist zusammengefasst um zur Anzeige geeignet zu sein. Dieser Modus wird von Wärmebildkameras, die auf dem Markt verfügbar sind, genutzt. Üblicherweise werden die Grauwerte mittels einer Lookuptable auf Falschfarben abgebildet.

Im Termperature Image Modus streamt das Bricklet Daten mit 4,5Hz und 16 Bit Auflösung. In den Bilddaten stellt jeder 16 Bit Wert eine Temperatur zwischen -10°C und 450°C mit einer Auflösung von 0,1°C oder einen Wert -10°C und 140°C mit einer Auflösung von 0,01°C (abhängig von der Auflösungs-Konfiguration). Dieser Modus kann für wissenschaftliche Berechnungen und der Analyse von Temperaturänderungen genutzt werden.

Der Shutter wird vom Bricklet automatisch gesteuert.

Das Thermal Imaging Bricklet hat einen 7 Pol Bricklet Stecker und wird mit einem 7p-10p Bricklet Kabel mit einem Brick verbunden.

Technische Spezifikation

Eigenschaft Wert
Stromverbrauch 546mW (109,2mA bei 5V, laufend)
   
Auflösung 80x60
Bildrate (Frame Rate) 8,6Hz (High Contrast Image); 4,5Hz (Temperature Image)
Blickfeld (Field of View) 51° Horizontal, 66° Diagonal
Tiefenschärfe 10cm bis unendlich
Thermale Sensitivität < 50mK (0,05°C)
Radiometrische Genauigkeit ±5°C or 5% (typisch)
   
Abmessungen (B x T x H) 40 x 40 x 9mm (1.57 x 1.57 x 0.35")
Gewicht 8g

Ressourcen

Demo Video

Im folgenden Video ist ein Thermal Imaging Bricklet im Einsatz zu sehen. Wir filmen eine Küchenspühle mit einer warmen Tasse Kaffee. Dann stellen wir warmes wasser an und danach auf kalt und wieder zurück.

Man kann sehen das anfangs der die warme Tasse Kaffe das wärmste Objekt im Bildausschnitt ist. Nach dem wir das warme Wasser aufdrehen wird dieses langsam wärmer als die Tasse. Wenn wir dann den Wasserhahn wieder auf kalt stellen wird es wieder kälter etc.

Zusätzlich kann man in der Küchenspühle einen Vortex sehen, der sich durch das wechseln von warm und kalt im Wasser bildet.

Das Wärmebild im Video wurde aus den High Contrast Daten des Thermal Imaging Bricklet erstellt.

Erster Test

Um ein Thermal Imaging Bricklet testen zu können müssen zuerst Brick Daemon und Brick Viewer installiert werden. Brick Daemon arbeitet als Proxy zwischen der USB Schnittstelle der Bricks und den API Bindings. Brick Viewer kann sich mit Brick Daemon verbinden, gibt Informationen über die angeschlossenen Bricks und Bricklets aus und ermöglicht es diese zu testen.

Als nächstes muss das Thermal Imaging Bricklet mittels eines Bricklet Kabels mit einem Brick verbunden werden.

Wenn der Brick per USB an den PC angeschlossen wird sollte einen Moment später im Brick Viewer ein neuer Tab namens "Thermal Imaging Bricklet" auftauchen. Wähle diesen Tab aus. Wenn alles wie erwartet funktioniert sollte nun ein Wärmebild dargestellt werden.

Thermal Imaging Bricklet im Brick Viewer

Nun kann ein eigenes Programm geschrieben werden. Der Abschnitt Programmierschnittstelle listet die API des Thermal Imaging Bricklet und Beispiele in verschiedenen Programmiersprachen auf.

High Contrast Image vs Temperature Image

Das Thermal Imaging Bricklet unterstützt zwei Bildstream Modis mit verschiedenen Anwendungsmöglichkeiten.

High Contrast Image:

Im High Contrast Image Modus stellt das Bricklet ein 60x80 Pixel Bild mit einer Bildrate von 8.6Hz. Jedes Pixel ist eine Grauwert-Darstellung und hat eine Auflösung von 8-Bit.

Dieser Modus wird von FLIR basierten Wärmebildkameras genutzt, die auf dem Markt verfügbar sind. Die Daten können für Visualisierungen genutzt werden oder direkt auf ein Display dargestellt werden.

Für den High Contrast Image Modus wird der hohe Dynamikumfang des Sensors zusammengefasst mit einer Histogramm-basierten nichtlinearen Abbildungsfunktion. Diese Filterung ist notwendig für Visualisierungen. Wären die Daten ungefiltert, so könnten diese nicht für Visualisierungen genutzt werden. Mit einem Temperaturbereich von -10°C bis 450°C wären typische Temperaturänderungen im Bild von 20°C-30°C nicht sichtbar.

Die 8-Bit Daten jedes Pixels enthält dafür aber keine Temperaturinformationen mehr. Dafür gibt es aber die Möglichkeit, auch im High Contrast Image Modus, das Spotmeter zu nutzen.

Für das Spotmeter kann eine Region innerhalb der 60x80 Pixel Matrix definiert werden. In dieser Region wird die Minimum-, Maximum- und die Durchschnitttemperatur für jedes Bild berechnet. Es ist auch möglich die Spotmeter-Region als nur ein Pixel zu definieren um genau für dieses Pixel die Temperatur zu erhalten.

In diesem Modus können verschiedene Parameter konfiguriert werden:

  • Dampening Factor: Dieser Parameter stellt die Stärke der zeitlichen Dämpfung dar, die auf der HEQ (history equalization) Transformationsfunktion angewendet wird. Ein IIR-Filter der Form (N/256) * transformation_zuvor + ((256-N)/256) * transformation_aktuell wird dort angewendet. Der HEQ Dämpfungsfaktor stellt dabei den Wert N in der Gleichung dar. Der Faktor stellt also ein, wie stark der Einfluss der vorherigen HEQ Transformation auf die aktuelle ist. Umso niedriger der Wert von N um so größer ist der Einfluss des aktuellen Bildes. Umso größer der Wert von N umso kleiner ist der Einfluss der vorherigen Dämpfungs-Transferfunktion.
  • Clip Limit Low: Dieser Parameter definiert einen künstliche Menge, die jeder nicht leeren Histogrammklasse hinzugefügt wird. Wenn Clip Limit Low mit L dargestellt wird, so erhält jede Klasse mit der aktuellen Menge X die effektive Menge L + X. Jede Klasse, die nahe einer gefüllten Klasse ist erhält die Menge L. Der Effekt von höheren Werten ist eine stärkere lineare Transferfunktion bereitzustellen. Niedrigere Werte führen zu einer nichtlinearen Transferfunktion.
  • Clip Limit High: Dieser Parameter definiert die maximale Anzahl von Pixeln, die sich in jeder Histogrammklasse sammeln dürfen. Jedes weitere Pixel wird verworfen. Der Effekt dieses Parameters ist den Einfluss von stark gefüllten Klassen in der HEQ Transformation zu beschränken.
  • Empty Counts: Dieser Parameter spezifiziert die maximale Anzahl von Pixeln in einer Klasse, damit die Klasse als leere Klasse interpretiert wird. Jede Histogrammklasse mit dieser Anzahl an Pixeln oder weniger wird als leere Klasse behandelt.

Zusätzlich kann eine Region of Interest definiert werden. Der Algorithmus, der mit den obigen Parametern konfiguriert wird, arbeitet dann nur auf dieser Region. Diese Region kann definiert werden um Teile des Bildes von der Analyse auszuschließen und daher die Daten nicht verzerren kann. Dies ist zum Beispiel interessant, wenn irgendwo im Bild ein heißer Bereich ausgeschlossen werden soll.

Dieser Modus sollte genutzt werden, wenn Daten visualisiert werden sollen.

Temperature Image:

Im Temperature Image Modus stellt das Bricklet ein 60x80 Pixel Bild mit einer Bildrate von 4.5Hz zur Verfügung. Jeder Pixel in dem Bild ist eine Temperaturmessung mit einer Auflösung von 16-Bit.

Das Thermal Imaging Bricklet hat zwei konfigurierbare Temperaturbereiche für den Temperature Image Modus:

  • -10°C to 140°C mit einer Auflösung von 0.01°C
  • -10°C to 450°C mit einer Auflösung von 0.1°C

Müssen keine Temperaturen über 381°C sollte der erste Messbereich gewählt werden um die Auflösung zu erhöhen.

Die Daten können für wissenschaftliche Berechnungen oder zur Analyse von Temperaturänderungen genutzt werden.

Dieser Modus sollte genutzt werden, wenn mit wirklichen Temperaturdaten gearbeitet werden soll.

Thermal by FLIR

Das Tinkerforge Thermal Imaging Bricklet ist mit einer Lepton Wärmebildkamera ausgestattet. Tinkerforge ist Teil des Thermal by FLIR Programms (daher auch das Logo auf dem Bricklet). Thermal by FLIR ist ein Programm bei dem FLIR mit Entwicklern zusammenarbeitet um die Entwicklung und die Vermarktung von FLIR Sensoren zu unterstützen. Das Ziel dieses Programms gehört zur FLIR's Mission den sechsten Sinn zu entwickeln und Leben und Existenzen zu retten.

Über die Webseite lepton.flir.com unterstützt FLIR die Lepton Maker Community.

Gehäuse

Ein laser-geschnittenes Gehäuse für das Thermal Imaging Bricklet ist verfügbar.

Gehäuse für Thermal Imaging Bricklet

Der Aufbau ist am einfachsten wenn die folgenden Schritte befolgt werden:

  • schraube 12mm Schrauben mit Mutter an Oberteil
  • Baue Seitenteile auf,
  • stecke zusammengebaute Seitenteile in Oberteil,
  • Schraube 10mm Abstandshalter an das Bricklet und,
  • schraube Unterteil auf Abstandshalter.

Im Folgenden befindet sich eine Explosionszeichnung des Thermal Imaging Bricklet Gehäuses:

Explosionszeichnung für Thermal Imaging Bricklet

Hinweis: Auf beiden Seiten der Platten ist eine Schutzfolie, diese muss vor dem Zusammenbau entfernt werden.

Programmierschnittstelle

Siehe Programmierschnittstelle für eine detaillierte Beschreibung.

Sprache API Beispiele Installation
C/C++ API Beispiele Installation
C# API Beispiele Installation
Delphi/Lazarus API Beispiele Installation
Go API Beispiele Installation
Java API Beispiele Installation
JavaScript API Beispiele Installation
LabVIEW API Beispiele Installation
Mathematica API Beispiele Installation
MATLAB/Octave API Beispiele Installation
MQTT API Beispiele Installation
Perl API Beispiele Installation
PHP API Beispiele Installation
Python API Beispiele Installation
Ruby API Beispiele Installation
Rust API Beispiele Installation
Shell API Beispiele Installation
Visual Basic .NET API Beispiele Installation
TCP/IP API    
Modbus API