Grove - Thermal Imaging Camera IR Array
Grove - Thermal Imaging Camera is a thermal sensor which carries MLX90640 IR Array. The camera can present dynamic thermal images and detect the surrounding temperature from -40℃~300℃. The camera with narrow-angle/wide-angle has an FOV(Field of View) of 55°x35°/110°x75°.
The IR thermal camera carries a 32x24 array of thermal sensors (MLX90640), it can detect the temperature of objects from feet away with the accuracy of ±1.5℃. In order to obtain the thermal image easily, I2C protocol is used to get the low-resolution image from the camera.
This module connects the MCU with the I2C interface. However, it needs an MCU which has over 20000 bytes of RAM to drive the camera. As a matter of fact, Dev board like Arduino Uno can not be used with this Sensor camera due to its lower ability of calculation. We recommend you to choose Arch Mix as an MCU to control the camera because it really has a good performance to process the complex data from the IR sensor camera.
Grove - Thermal Imaging Camera / IR Array MLX90640 110 degree
Grove - Thermal Imaging Camera / IR Array MLX90640 55 degree
This wiki fits both types of the Thermal Imageing Camera.
- IR Thermal Sensor Array 32X24(MLX90640)
- 55°x35°/110°x75° FOV(field of view)
- Temperature measurement range:-40℃~300℃
- I2C Grove interface
|Operating Voltage||3V ~ 6V|
|FOV(Field of View)||55°x35°/110°x75°|
|Temperature Measurement Range||-40°C-300°C|
|Interface||I2C Grove interface|
|Arduino||Raspberry Pi||BeagleBone||Wio||LinkIt ONE|
This thermal imageing sensor is compatibale with many Arduino boards and Seeeduino boards which are assembled with SAMD21/SAMD51 like Seeeduino Lotus Cortex - M0. And it also supports all series of Raspberry Pi including Raspberry Pi Zero.
Getting Started by Arduino¶
|Arch Mix||Arch Mix Grove Breakout||Grove - Thermal Imaging Camera / IR Array MLX90640 110 degree|
|Get one now||Get one now||Get one now|
- Step 1 Connect the Grove - Thermal Imaging Camera to one of the two I2C ports(Default Address is J9 port).
- Step 2 Plug the Arch Mix into Arch Mix Grove Breakout.
- Step 3 Connect the Arch Mix to PC via a micro USB cable.
We choose Arch Mix to read data from the camera by I2C interface, Arch Mix is perfectly compatible with Arduino IDE platform. First, you need to download the board of Arch Mix at Arduino IDE, you can find details in Arch Mix github. We need two parts to realize this project. First,an Arduino program should be downloaded to the Arch Mix in order to read data from I2C interface. Then we need to change the data into the frame of image by Python. As a matter of fact, Python 3.7 is ought to be downloaded for image processing.
- Step 1 Open the Arduino IDE and select the Arch Mix board you have downloaded.
- Step 2 Download the Arduino library from the github, Refer to How to install library to install library for Arduino.
- Step 3 Select File-> Examples -> Seeed_Arduino_MLX90640 -> BasicReadings, Download the code to Arch Mix.If you do not know how to upload the code, please check how to upload code.
- Step 4 Install the python 3.7, if your python is another version, we recommend you to reinstall the version 3.7 for this project.
- Step 5 Open your "Command Prompt" on your computer, you can search "CMD" to open it from the "Start" menu.
- Step 6 If you have already installed python 3.7, type the command to install the pypi package.
pip install seeed_python_ircamera
Make sure your that the path of your python folder and python scripts folder(inside the python folder) added into your computer's environmental PATH.
- Step 7 After insralling the package, check your Arch Mix is connecting your PC. Open your "Device manager" to find the port name of your device.(Like COM1,COM2 in Windows system)
- Step 8 Type the following command to start the python programme of IR thermal camera. And your will see the thermal images on your computer.
PortName is like COM1,COM2 in Windows system.
If you want to operate this programme on another system like linix or unix, please follow this link to configurate the programming environment.
Getting Started by Raspberry Pi¶
|Raspberry Pi 4||Grove Base Hat for Raspberry Pi||Grove - Thermal Imaging Camera / IR Array MLX90640 110 degree|
|Get one now||Get one now||Get one now|
- Step 1 Connect the Grove - Thermal Imaging Camera to one of the two I2C ports.
- Step 2 Plug the Raspberry Pi 4 into Grove Base Hat for Raspberry Pi.
- Step 3 Connect the Raspberry Pi to a display via HDMI cable, and power on the Raspberry Pi 4 by USB type-C.
Raspberry Pi 4 supports Python, so the project demo can be easily displayed from the Raspberry Pi 4 display if you follow the below steps.
- Step 1 Install grove.py by the commend
curl -sL https://github.com/Seeed-Studio/grove.py/raw/master/install.sh | sudo bash -s -
- Step 2 Install the MLX90640 driver with the following commend.
Python environment(If you don't have authority of your Raspberry Pi):
or (If you have the authority of yuor Raspberry Pi):
pip3 install seeed-python-mlx90640
Upgrade to the latest driver:
sudo pip3 install seeed-python-mlx90640
pip3 install --upgrade seeed-python-mlx90640
- Step 3 Check the corresponding i2c number of the Raspberry Pi:
You may get the result like this:
- Step 4 Check if the i2c device works properly， 0x33 is the MLX90640 i2c address.
The received results:
i2cdetect -y -r 1
1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- 33 -- -- -- -- -- -- -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- --
- Step 5 Initialize the sersor object and config the sersor refresh rate. You can change the refresh rate by optional choice.(The maximal of the refresh rate of Raspberry Pi 4 is 8Hz)
1 2 3 4 5 6 7 8 9 10 11
import seeed_mlx90640 mlx = seeed_mlx90640.grove_mxl90640() mlx.refresh_rate = seeed_mlx90640.RefreshRate.REFRESH_8_HZ # The fastest for raspberry 4 # REFRESH_0_5_HZ = 0b000 # 0.5Hz # REFRESH_1_HZ = 0b001 # 1Hz # REFRESH_2_HZ = 0b010 # 2Hz # REFRESH_4_HZ = 0b011 # 4Hz # REFRESH_8_HZ = 0b100 # 8Hz # REFRESH_16_HZ = 0b101 # 16Hz # REFRESH_32_HZ = 0b110 # 32Hz # REFRESH_64_HZ = 0b111 # 64Hz
- Step 6 Read the data from MLX90640 sensor
maybe you can add content that below to the config.txt to get the fastest rate recommended for compatibility
1 2 3 4 5
try: frame = *768 mlx.getFrame(frame) except ValueError: continue
This will give you a framerate of - at most - 8FPS.
Please do not hesitate to submit the issue into our forum.