frontNew MLX90640 Thermal Camera with STM32F7
Authors: J. Bajić, N. Stevanović, M. Janković, S. Švenderman, J. Slavujević 
2019 03 29 172747 

This project is demo project for Melexis MLX90640 thermal image sensor, capable of providing objects temperatures between -40℃ and 300℃. This thermal camera provides numerous applications for thermal analysis and offers a cost-effective alternative to high-end thermal cameras. Melexis MLX90640 infrared sensor delivers a typical target object temperature accuracy of ±1°C. In this project IR Grid 3 Click board by Mikroelektronika with sensor MLX90640 is used. Sensor is connected to Mikromedia 7 for STM32F7 development board by Mikroelektronika via I2C communication protocol (wirring is provided in image galllery). Mikromedia development tool contains STM32F746ZG microcontroller and integrated 7 inch TFT display driven by SSD1963 graphics controller. Using mentioned components a low cost infrared (thermal) camera is made. GUI application is designed using STemWin graphical stack library. 

It should be noted that by using I2C Fast Mode Plus MLX90640 has been successfully tested at all supported refresh rates (0,5-64Hz). However at higher rates noise level increases so in this demo refresh rate is set to 8Hz.

IR GRID 3                      mikromedia5 stm32 on v2

 Demo project is developed using following STM32 ecosystem:

  1. mikromedia 7 for STM32F7 development board by Mikroelektronika with STM32F746ZG mcu.
  2. STM32CubeMX 5.6.0 initialization code generator by STMicroelectronics.
  3. STM32CubeIDE 1.3.0 Integrated Development Environment for STM32.
  4. STemWin GUI library (SEGGER's emWin library for STM32)
  5. mikroProg v1.5. Notice: Mikromedia 7 board has onboard mikroProg programmer and debugger.

In demo project through graphical interface user has choice of:

  • Adjusting temperature range (-40,300) with autoscale option
  • Selecting color pallettes for thermal image drawing. Multiple color pallettes (ilustrated in picture on the right) are implemented as lookup tables, generated using python script. Pallette lookup table contains 256 24bit color values based on selected color pallette (map). In python script user can choose predefined color map from matplotlib or define custom using LinearSegmentedColormap.
  • Displaying raw (32x24) thermal images or interpolated using realtime bilinear interpolation. In demo size of interpolated image is 64x48 pixels.
  • Recording bitmap images on SD card. Images are recorded as 24bit images. Captured raw and interpolated images using different color pallettes are given below.

Other paramaters such as pixel size, image position, number of interpolation points, new color pallettes, MLX90640 data aqusition configuration (i.e. refresh rate) can be set inside source code. 


Color Pallettes

 PROJECT FILES&DOCS:

 - Melexis MLX90640 datasheet: pdf
 - mikromedia 7 for STM32F7 user manual: link
 - Demo project on youtube: video
 - Demo project on github: source 
 - Python script 
for color pallette generation: source
 - Thermal images
 recorded on SD using this demo are displayed below 

 

Raw vs interpolated image

Interpolated thermal images:

  • IMG3IMG3
  • IMG2IMG2
  • IMG9IMG9
  • IMG4IMG4
  • IMG5IMG5
  • IMG7IMG7
  • IMG6IMG6
  • IMG0IMG0
  • IMG16IMG16
  • IMG11IMG11
  • IMG10IMG10
  • IMG1IMG1
  • IMG12IMG12
  • IMG13IMG13
  • IMG15IMG15
  • IMG14IMG14
  • IMG8IMG8
  • IMG17IMG17
  • IMG18IMG18

Raw thermal images:

  • IMG1IMG1
  • IMG0IMG0
  • IMG4IMG4
  • IMG3IMG3
  • IMG5IMG5
  • IMG7IMG7
  • IMG9IMG9
  • IMG8IMG8
  • IMG2IMG2
  • IMG6IMG6
  • IMG17IMG17
  • IMG12IMG12
  • IMG11IMG11
  • IMG10IMG10
  • IMG13IMG13
  • IMG14IMG14
  • IMG16IMG16
  • IMG15IMG15
  • IMG18IMG18

IMAGE GALLERY:

  • wiringwiring
  • 33
  • 44
  • 55
  • 66
  • 11
  • 22

VIDEO GALLERY:

 

Joomla Extensions
© - Faculty of Technical Sciences, Novi Sad, 2016