Mobir-M8_2

#Einleitung

Über die Firma DIAS bin ich inzwischen nicht nur Besitzer der Mobir M8.
Ich kann sie dank der zusätzlichen PYROSOFT DAQ und extra Datenkabeln inzwischen auch sehr viel komfortabler benutzen.

Die DAQ ist eine DLL, welche die Digitale Datenerfassung über USB möglich macht. Damit lässt sich die Wärmebildkamera in eigene Softwareprojekte einbinden. Die mitgelieferte PYROSOFT Compact hat zwar sehr gute Darstellung und Messmöglichkeiten, wie auch der IR Analyzer von Guide, aber beide bieten nicht den Freiraum einer eigenen Software.
So sehen beide Programme beispielsweise nicht vor, dass man eine Webcam neben der Wärmebildkamera platziert und deren Bilder gleichzeitig darstellt (oder gar in unterschiedlichen Transparenz-Stufen übereinander legt).

Zusätzlich zur DAQ, habe ich auch einen weiteren Batteriedeckel mit Stativanschluss und einen weiteres USB-Datenkabel besorgt. Die 3 Sachen sind nicht im Standard Paket enthalten und müssen daher als Zubehör erworben werden, sie sind aber ihr Geld wert...

#Aufsatz mit Webcam

Die Programme PYROSOFT Compact und IR Analyzer können das Bild der internen visuellen Kamera nicht als Livebild darstellen. Auch die DAQ enthält keine Möglichkeit dazu.

Eine Webcam musste her...
da ich Interesse an einem visuellen Livebild habe. Die Webcam war vorher aus einem Notebook ausgebaut worden. Die Teile haben zwar nur einen geringen Linsendurchmesser und sind nicht so gut bei schlechten Lichtverhältnissen, aber dafür ist ihre Bauform entsprechend gering und sie benötigen manchmal nicht mal extra Treiber. Die von mir verwendete Webcam kann bis zu 1.3 Megapixel liefern und meldet sich als "USB Videodevice" an, wird aber vorerst nur im VGA Modus betrieben.

Nachdem ich ein IR-Livebild über die DAQ beziehen konnte, stellte sich heraus, dass (bei wenig ausgelastetem Computer) nur 10-12 FPS angezeigt werden konnten. Bei der PYROSOFT Compact ist das aber nicht anders und beim IR Analyzer wird die Bildrate gar nicht erst angezeigt.
Außerdem sind 10-12 IR Bilder pro Sekunde immer noch schneller als bei der PCE-TC3, die auf ihrem Display (laut Datenblatt) die Bilder nur mit 7.5 FPS darstellte.

Nach ein bisschen experimentieren stellte sich ein flaches Blech als gute Befestigungsmöglichkeit heraus. Da diese Bleche relativ dünn sind, lassen sie sich gut unter das klappbare Display schieben. Das hebt sich dadurch nur leicht an. Außerdem wird das Blech vom Gehäuse magnetisch angezogen, vermutlich, weil der Shutter durch eine Kombination aus Spulen und Permanentmagneten bewegt wird. Oder Das Display wird so an der Kamera unten gehalten und klappert nicht.
Das Blech wurde dann seitlich und nach Vorn umgebogen, so dass es nach dem Aufsetzen nur in sehr geringem Maß verschoben werden kann. Die Webcam wurde durch ein weiteres Blech am Hauptblech so befestigt, dass sie möglichst dicht und möglichst direkt über der IR-Linse liegt.
Dadurch hat sie keinen sichtbaren Einfluss auf das IR Bild (auch nicht am Rand), erzeugt aber im fast gleichen Winkel ein visuelles Bild. Das ist gerade bei nahen Objekten von Vorteil, da sonst das genaue überlagern (IR+VIS) nur teilweise funktioniert.

Normalerweise hat die M8 2 Kabelsets...
das eine ist ein reiner USB-Anschluss. Das andere, bietet eine Serielle RS232-Schnittstelle und einen analogen Videoausgang. Da bei beiden Kabelsets von außen alle Pins vorhanden sind, habe ich ein zweites USB-Kabel nachgekauft. Ich wollte in diesem Kabelset beide Funktionen kombinieren, was mir letztendlich auch gelungen ist.
Die USB Anschlüsse waren ja ohnehin nach außen geführt und die anderen Pins ließen sich durchs Messen herausfinden. Die unbenutzten Kontaktbeinchen sind im inneren des Steckers zwar abgeschnitten worden, aber mit etwas Feingefühl bekommt man alle benötigten Anschlüsse verbunden. Während die Kamera über USB Verbunden ist, werden RS-232 Signale ignoriert, aber das Videobild wird die ganze Zeit mit übertragen. Es zeigt letztendlich aber auch nur das, was man auf dem Display gesehen hätte.
So kann man die Kamera aber zumindest über beide Arten steuern und nutzen. Denkbar sind auch Sachen wie:
USB Verbindung trennen → Autofocus → USB Verbindung herstellen
Ob das auch Zeitlich Sinn macht, probier ich später vielleicht mal...

Ein 7fach USB-Hub...
wurde zusätzlich an der Seite, neben dem Kameraaufsatz, eingebunden. So belegt der Kamerablock insgesamt nur einen USB Anschluss. Inzwischen sind es nur noch 6... 1 Port ist beim auslöten der USB-Buchsen leider zerstört worden (die Datenleitung hatte sich von der Platine mit gelöst). 3 der Ports sind derzeit verwendet: Wärmebildkamera, Webcam und USB-RS232 Wandler.
Der RS232 Wandler ist direkt mit der Kamera Verbunden. Alle Komponenten sind durch 4 fach Wechsler mit den USB Ports verbunden. Somit lassen sie sich einzeln bei Bedarf zuschalten und sind andernfalls galvanisch vom Port getrennt.

#Kameraaufsatz

Kameraaufsatz

Hier ist der eigentliche Kameraaufsatz zu sehen. Der USB Hub könnte auch aktiv (mit Netzteil) betrieben werden, aber starke Stromverbraucher sind ohnehin nicht dabei, daher wird es wohl nicht so weit kommen.
Ästhetisch nicht gerade eine Augenweide und an der einen oder anderen Stelle noch etwas scharfkantig. Um die Optik kümmere ich mich aber später, wenn ich mit der "Gesamtsituation zufrieden" bin.


Kameraaufsatz 2

Dieses Bild zeigt die Kamera mit adaptiertem Aufsatz. Von vorn kann man sehen, dass die Webcam-Linse sehr nahe und mittig über der IR-Linse liegt. Darunter kann der kleine Spalt gesehen werden, der durch das Blech hervorgerufen wird. Der Kameradeckel ist ja schließlich auch dafür konzipiert worden, bündig auf dem Gehäuse aufzuliegen, von daher war es nicht anders zu erwarten. Die Portanschlüsse des Hubs wurden durch die 4fach-Umschalter ersetzt. Da intern sowieso alles fest verlötet ist, wären sie danach auch nicht weiter verwendet worden(außerdem hätte ich Platz verschwendet).


Kamera im Einsatz

Hier die Kamera im Einsatz an einem VAIO-P. Wie zu sehen ist, wird die Kamera nur an einem Port verbunden und liefert IR+VIS Bild. Oben links ist das IR Bild transparent im visuellen Bild eingeblendet, dadurch ist eine schnelle und genaue Erkennung von Wärmequellen möglich.

Der Verwendete VAIO-P hat eine 1.8 GHz ATOM-CPU. Die tut sich war scheinbar etwas schwer beide Kameras mit über 10 FPS anzuzeigen, aber zum anzeigen und Speichern klappt das schnell genug. So mal das IR Bild auf die doppelte Größe interpoliert wird und die Display-Auflösung 1600x768 ist.
Ob ich an den Kameraaufsatz noch einen Videograbber mit einbinde, ist noch nicht ganz raus. Statt dem einen USB-Port oben, könnte da ein weiterer Schalter sitzen und der Videoausgang könnte direkt mit dem Grabber verbunden werden. Allerdings wird die Hauptverwendung auf der Digitalen Bilderfassung liegen. Es wäre schade um den Videograbber, wenn ich ihn so gut wie gar nicht benutze.

#Alternatives Konzept

Alternative

Wenn ich keine so kleine Webcam gehabt hätte, wäre es vielleicht so umgesetzt worden:
Vor der IR-Linse der M8 hätte ich im 45° Winkel ein poliertes Metallplättchen aus Aluminium oder so platziert (quasi ein IR-Spiegel) und hätte dahinter, 90° zur Blickrichtung der M8 die visuelle Kamera befestigt. Dann würde die M8 mit Zusatzkamera quasi seitlich Bilder erzeugen.

Auf diese Weise, wäre der Kamerablock zwar größer, aber vermutlich leichter zur Hardware Interpolation fähig.
Man könnte IR-Spiegel und Webcam an einem kleinen Servo befestigen. Damit ließe sich vom Programm aus die Perspektive leicht verschieben. Mit einem weiteren Servo (oder gleich 2 Schrittmotoren), würde man die Blickrichtung horizontal/vertikal ändern können.

Ich hab mich dann aber zur kleineren und festen Kameravariante entschlossen, da ich erst mal Kamera und Software aneinander anpassen wollte.
Andere Versuche erfolgen später, sofern Zeit dafür ist.

#Hardware Interpolation

Die Grundidee hinter der Hardware Interpolation ist relativ einfach... Im Normalfall hat man (vereinfacht dargestellt) bei einer Kamera eine Linse und dahinter den Sensor.

Wenn man ein Bild macht, hat man nachher ein aus Pixeln bestehendes Bild:
(zur Vereinfachung hier ein 5x3 Sensor. Es wurde 1 Bild gemacht und somit bestehen alle Bildpunkte aus der ersten Aufnahme)
11111
11111
11111
Wenn man nun das Doppelte haben will, könnte man wie bei Panoramaaufnahmen 4 Bilder aneinander heften:
1111122222
1111122222
1111122222
3333344444
3333344444
3333344444
Damit hätte man aber nur einen größeren Sichtbereich auf seinem Bild. Will man stattdessen das gleiche Objekt nur Detaillierter betrachten, muss man anders vorgehen:
man verschiebt die Linse oder den Sensor leicht und fügt alle daraus resultierenden Bilder ineinander:
1212121212
3434343434
1212121212
3434343434
1212121212

Man muss nur herausfinden, bei welchem Verschiebungswinkel die Pixel auf dem Bild sich exakt um 1 verschoben haben. Wenn man diesen Verschiebungswinkel halbiert, nimmt die Kamera genau die Bildpunkte dazwischen auf. Wenn die Winkel entsprechen präzise eingestellt werden, würde aus 4 Aufnahmen eine einzelne mit doppelter Auflösung entstehen, bei der jeder Bildpunkt gemessen wurde und nicht wie bei der Software berechnet.
Mit Servos oder Schrittmotoren ließe sich sowas ohne große Kosten umsetzen lassen. Außerdem würde es nicht die Änderung der Kamera voraussetzen (was mit Garantieverlust einhergehen würde). Allerdings darf dafür die Kamera nicht bewegt werden, ist also eher was für eine, auf dem Stativ stehende, Kamera.

Eine aus meiner Sicht sehr viel umständlichere, aber letztendlich auch bessere Variante könnte folgende sein:
Eine gebrauchte, vielleicht sogar defekte Kamera oder Camcorder günstig erwerben, die einen Optischen Bildstabilisator hat. Am besten was mit Piezos, wobei sowas vor dem Kauf bestimmt nicht so leicht erkannt werden dürfte.
Dann diese YX-Ablenkeinheit in die Kamera einbauen, wo entweder die Linse, oder der Detektor verschoben wird. Die Googlesuche nach "sensor shift" spukte diese sehr interessante Seite aus: SteadyShot INSIDE

Eine Wärmebildkamera mit sauber eingestelltem "Detector Shift", ließe sich mit Beschleunigungssensoren bestimmt auch zur freihändig Benutzung überreden. Solche Beschleunigungssensoren bekommt man ja heutzutage auch sehr leicht. Außerdem ist die Detektorgröße und die damit verbundene Auflösung das mit Abstand teuerste an einer Wärmebildkamera.

#Software

Die Softwareumsetzung wurde in C# gemacht und basiert auf dem ThermalViewer. Dieses Programm hab ich mal als Bildbetrachter entwickelt.

Das eigentliche Bild liegt intern (im Speicher) als zweidimensionaler Temperaturarray vor. Einzelne Temperaturpunkte werden über ihre Position abgefragt:
Pixeltemperatur = Temp[pos_x,pos_y];

Über eine DAQ Funktion, wird das gesamte Kamerabild als eindimensionaler Temperaturarray übergeben. Dieser wird unmittelbar nach dem Auslesen in den zweidimensionalen Temperaturarray übersetzt und den Rest macht das bereits vorhandene ThermoViewer Programm.

Nachdem die Wärmebilderfassung gut funktionierte, wurde die Webcam fürs visuelle Livebild eingebunden.

#Screenshot des Programms

Screenshot des Programms

Das visuelle Bild wird in einem zusätzlichen, ausblendbaren Panel angezeigt. Das IR Bild wird darüber, in einstellbaren Transparenzstufen, dargestellt.

Im Beispielbild links kann man sehen, wie dadurch die beiden Bilder übereinander liegen. So findet man sehr schnell raus, was wo zu heiß wird.

Ein radiometrisches M8 Bild mit diesem Programm nimmt ca. 100KB ein und beinhaltet den abgespeicherten Temperaturarray, das visuelle Bild als .JPG, ein Vorschaubild als .JPG und Zusatzinfos (Pegel, Spanne, Farbscala, aktive Messungen...). Es kann wie das Kamerabild nachträglich verändert werden. Allerdings werden nach wie vor die Temperaturen direkt abgespeichert. Emission und Transmission können beim aufnehmen mit der Kamera geändert werden (auf dem Bild: unten rechts). Aber bei einem abgespeicherten Bild sind nur noch die reinen Temperaturwerte sichtbar. Nachträgliche Änderungen sind so nur wenig möglich (außer man rechnet pauschal mal 0.5°C zu allen Pixel hinzu, dass geht natürlich... sofern ich wollen würde).

Die Temperatur wird mit 2 Nachkommastellen gespeichert.

#Visible Overlay Modus

Visible Overlay Modus

In diesem Modus wird ein transparentes, zugeschnittenes, visuelles Bild über das IR-Bild gelegt.
Man kann es als Fusionsbild bezeichnen, da ein gewisser Bildbereich als voll IR, voll VIS oder eine Mischung aus beiden dargestellt werden kann.
Die 2 Rechteck Messobjekte werden über dem visuellen Bild dargestellt, stellen selbst aber den gemessenen IR Bereich dar. So kann man die Rechtecke quasi als bewegbare IR Fenster benutzen, wenn man auf voll VIS eingestellt hat. Die visuelle Bildposition und ihre Transparenz, werden mit Mausrad und Mausziehen oder mit der Tastatur verstellt.

Dieser Modus ist auch nützlich, wenn die Kamera nicht mit einem Breitbilddisplay verwendet wird, dann kann man das Seitenpanel ausblenden und verzichtet nicht generell auf eine visuelle Darstellung.

Fusionsbild
Bildauswertung

Neben dem normalen radiometrischen speichern und dem einfachen speichern des IR-Bildes, sind 2 neue Kategorien hinzugefügt worden.
Das Fusionsbild ist vom Aufbau her, mit einer Aufnahme der Fluke Ti10 vergleichbar. Das IR-Bild ist im Zentrum und wird vom visuellen Bild umrandet. An der Seite befindet sich zusätzlich noch eine Temperaturscala.
Die Bildauswertung umfasst neben IR und VIS Bild noch den Graphen und die Messtabelle. Ziel war es hier, möglichst alle Infos in einem Bild unter zu bekommen. Es ist quasi eine "Light Variante" der Thermografie Reports, welche von den anderen Programmen angeboten werden.

#Videomodus

Videomodus

Im Grunde ist es ein mehrfaches hintereinander speichern von normalen Bildern in eine Datei. Durch das regelmäßige weiterschalten auf das nächste Bild entsteht der Videoeindruck.

Zu sehen ist eine etwas ältere 8.6MB .jpg Datei (mit 125 Einzelbildern). Wegen der Dateivorschau hab ich mich dazu entschlossen, auch für Videos das .jpg Format zu verwenden.
Das Infrarotbild wird wie üblich als radiometrischer Datensatz, das Visuelle Bild als jpg abgespeichert.
Zusätzlich ist es wichtig ob die Einstellungen mit geladen werden. Wenn sie nicht mit geladen werden, werden Temperaturdrifte nicht richtig dargestellt, aber so kann man nachträglich Farbdarstellung und Level/Span nach Wunsch verstellen. Das gilt auch für Interpolation.

Mit FPS kann man festlegen, wie schnell ein Video wiedergegeben wird.
Aufgenommen wird so schnell, wie die Kamera Bilder liefert, aber mit maximal 13 FPS da sie nicht mehr hergibt. Man kann aber mit ca. 13FPS aufnehmen und mit 1FPS wiedergeben um schnelle Prozesse langsam genauer betrachten zu können. Dafür gibt's auch die Möglichkeit, anstatt auf "Play" zu drücken, jedes Bild einzeln durchzuschalten.

Man kann aber auch statt einer Automatischen Aufnahme jedes gewollte Bild manuell erfassen.
So kann man wie ein Album verschiedene Bilder in einer Datei zusammenfassen. Einzelne Bilder kann man mit Bild speichern in der gewünschten Interpolation speichern.

#Stativ

Softwaresteuerung

Inzwischen ist der Kameraaufsatz erweitert worden.
Zusätzlich zum Originalzubehör hab ich einen extra Batteriedeckel und ein USB-Kabel hinzugekauft. Dadurch ist die Kamera samt komplettem Originalzubehör technisch unverändert, was für den hoffentlich nicht eintreffenden Garantiefall interessant sein dürfte. Der Batteriedeckel ist an einem Servo befestigt, der an einem weiteren Servo montiert ist.

Stativ
Carat TPA-03
2x Servo
Futaba S3305
Videograbber
SilverCrest VG2000 (USB 2863 Device)
Webcam
Somikon WEC-260.AF (Auflösungen bis 1280x960, Autofocus)
Mikrocontroller
ST Microelectronics (STM32F103C8T6... 72MHz, 64k Flash, 20k RAM)

#Kamerastecker

Vom zusätzlichen USB-Kabel ist jetzt nur noch der Stecker vorhanden. Normalerweise sind 2 Kabelsets vorhanden... einmal USB und einmal RS-232/Video. Bei mir sind nun beide kombiniert:

  • USB geht an den 4x Umschalter zum USB Hub
  • RS-232 geht an den Rs232 Wandler
  • Video geht direkt an den Videograbber

Wenn eine USB Live-Verbindung hergestellt ist, aktualisiert sich das analoge Videobild nicht mehr und RS-232 Befehle werden auch nicht mehr angenommen. Da nicht alle Funktionen parallel kompatibel sind, wurden wahrscheinlich auch 2 Kabelsets hergestellt.

#Webcam

Die vorher verwendete Webcam wurde gegen eine mit Autofocus getauscht. Außerdem hat die neue Webcam eine höhere Maximalauflösung (1280x960).
Nachteil ist dafür ein etwas ungünstigerer Winkel als vorher, aber das macht nicht viel aus, das lässt sich mit der Software leicht verstellen.

#Videograbber

Das Gehäuse des Videograbbers ist mit dem USB-Hub Gehäuse fest verbunden und der Videograbber ist direkt an das Kamerasignal angeschlossen. Wenn von der Kamera das Videosignal eingeschaltet wurde, kann man durch einschalten des Videograbbers (USB-Verbindung über 4fach Schalter) das Videosignal auf dem PC darstellen.

#Servoturm

Komponenten

Über einen STM32F103 Board (nur 48Pins im Gegensatz zu 64 Pins bei STM32_Paintboard) sind 2 Servos vom PC aus steuerbar. Das Board meldet sich im HID-Modus an und wird vom PC über eine festgelegte Adresse angesprochen. Ein Servo ist zum Drehen (fast 180°), der andere zum Kippen (nach oben und unten sehen... ungefähr 30°).
Allerdings werden nicht nur die 2 Servos über die normale PWM angesteuert, es werden auch über Analogeingänge die Servopositionen ausgelesen.
Man kann auch vom PC aus die Servos abschalten, sie von Hand verstellen und an der neuen Position initialisieren. Initialisieren heißt im diesen Fall... der Analogwert wird in die Steuerpulsbreite umgerechnet und an den Servo geschickt. Die Regler werden im Programm auch entsprechend angepasst.
Der Servoturm braucht für die Servos natürlich eine eigene Stromversorgung. Deshalb ist im Gehäuse eine Buchse für ein Standardnetzteil.
Benutzt wird ein 5V Netzteil mit zusätzlichem (externen) Glättungskondensator.
Testweise hab ich auch eine kurze Leitung mit kleinerem Glättungskondensator und 2 Steckern, zur Direktverbindung von Servoturm und USB-Hub erstellt. Somit lassen sich auch die Servos über USB versorgen. Eine Strommessung ergab, dass beide Servos in Bewegung zu rund 600mA Belastung führen. Da der Port nur bis 500 mA spezifiziert ist, sollte das aber kein Dauerzustand sein. Wenn die Achsen aber einzeln bewegt werden, bleibt der Stromfluss unter 450 mA.
Bei der Messung waren STM32 + M8-USB + Webcam eingeschaltet.

Im Einsatz

Am UART1 des Mikrocontrollers ist ein RS-232 Pegelwandler angeschlossen. Die Tx Leitung geht vom Wandler direkt an die Kamera. Dadurch kann man über HID die RS-232 Befehle an die Kamera senden. Die Befehle sind alle im Mikrocontroller eingespeichert und werden vom PC einfach über einen Index aufgerufen.
Die Rx Leitung ist nicht verbunden, da es bedeuten würde, dass die Kamera nicht ohne µC betrieben werden darf. Wenn das Board aus ist, ist auch der Wandler abgeschaltet und die Rx Leitung (vom µC und Wander aus Rx, von der Kamera aus Tx) würde von der Kamera ein Signal bekommen, dass Kurzgeschlossen wird. Aber da die Kamera ohnehin nur "OK" als Antwort sendet, ist das nicht so schlimm. Ob der Befehl erhalten wurde, sieht man ja, wenn er dann ausgeführt wird. Die RS-232 Befehle werden ohnehin nur erkannt und ausgeführt, solange keine USB Datenverbindung hergestellt wurde.

Im Servoturm ist ein Standard-Kamerastativgewinde, damit normale Kamerastative verwendet werden können. Verwendet wird bei mir ein Tischstativ von Carat (TPA-03), bei welchem der Schwenkkopf mit Adapterplatte durch ein starres Kameragewinde getauscht wurde. Die Bewegungsfreiheit wird wegen den Servos nicht benötigt und so ist einerseits das Stativ kleiner und andererseits der Aufnahmeabstand zur Kamera nicht unnötig hoch, wenn das zu betrachtende Objekt auf dem gleichen Tisch wie die Kamera steht.


Zuletzt geändert am: Feb 05 2014 um 11:35 AM

© by joe-c, 2023 - 2024. All Rights Reserved. Built with Typemill.