mfassler / thermografree

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Thermografree

Thermografree is the first open source, medium resolution, and broadband forward looking infrared (FLIR) camera. It can be used as a thermographic camera, or for scientific imaging applications in the 2-18 um range.

The Thermografree device

This thermal camera is based on a Heimann Sensor thermopile array module, detailed in docs/HeimannArrays9-9-16.pdf and the sample datasheet (docs/HTPA 32x32d L2.1_0.8 (Hi)S Rev2 Datasheet.pdf.) Previous attempts at open source thermal cameras have been based on the Melexis MLX90621, an earlier and lower resolution thermopile array. For comparison, the datasheet for this part is also available at docs/MLX90621-Datasheet-Melexis.pdf.

Code is in source/GUI/, and should work out of the box on a Raspberry Pi with I2C enabled. It is dependent on OpenCV, and a handful of other Python packages.

Models for 3D printing are in case/.

Research on noise characteristics of the camera and possible uses/limitations for gas sensing are archived in noise/.

Hardware

The hardware involved is extremely straightforward: a Raspberry Pi communicates with the Heimann sensor over I2C and displays the images to the user. The sensor should be connected to the Raspberry Pi GPIO pins 3 and 5, and can be powered from the 3.3V and ground pins of the GPIO port. This does not interfere with the use of SPI for touch screen communication. The system is powered from a USB power bank.

Bill of materials

  • Raspberry Pi Zero (or Raspberry Pi)
  • LCD screen (e.g.) and HDMI cable
  • Raspberry Pi camera (e.g.)
  • Heimann HTPA32x32dL3.6/0.9 (purchased through Boston Electronics)
  • USB power bank (e.g.) and USB cable with switch
  • Case (3D printed files included in repository)
  • Bracket for attaching Heimann sensor to case

Software

The application consists of a Python class for interfacing with the module (htpa.py) and a GUI (dualcam.py). The GUI allows for control of the sensor clock frequency, current, and bias. The default settings are the settings used for the module factory calibration, and seem to produce the best results.

Known issues

  • The sensor calibration programmed into the EEPROM at the factory does not seem to match the noise profile of the images captured from the device.
  • The HDMI cable is super janky.

Physical assembly

All parts

IR sensor assembly

IR sensor in filter holder

IR sensor placed in case

With bracket mounted

Stress relief

Visible camera mounted

Screen and front case

Screen mounted in front case

Battery mounted underneath screen

Switch glued to top of case

HDMI cable connected

HDMI and USB cable connected

Back of case secured

Booting up (with proper display settings, the whole screen is used.)

About

License:MIT License


Languages

Language:OpenEdge ABL 94.2%Language:Fortran 3.3%Language:Jupyter Notebook 1.8%Language:Python 0.5%Language:OpenSCAD 0.2%Language:Shell 0.0%