Thermal Imager: Progress Update 1
I have received the MLX 90620 thermopile and my Pan and Tilt servo system for this project, and I have come up with a simple concept test of the idea.
It was relatively easy to wire up the thermopile, and connect it to the arduino. It took a little more work to communicate with it over I2C. It turns out there is an array of 64 bit float values that needs to be calculated in order to calibrate this kind of thermopile. This array is different for each one, and I had to use a sketch to calculate the correct calibration values before I could use obtain temperate values from the thermopile.
I then used processing and a simple sketch I found to test the connection between the arduino and PC, and to visualise the 16×4 temperature values that I was getting from the thermopile array. This again, worked quite well.
I assembled the pan and tilt system using the manufacturers assembly instructions, this was easy, and then tested the servo code. I was surprised at how easy it is to control these servos, I was expecting it to be a lot more complex. I then soldering the thermopile and glued it to the pan/tilt system with a hot glue gun (A very useful tool, I don’t know how I did without one for so long!).
Since 16×4 is obviously far too low to be useful for any thermal imaging system, I intend to use use the pan/tilt kit to move the thermopile in a grid pattern, taking readings in 16×4 chunks, and assembling them together.
I ran into some issues while trying to program the servo motors to move the way I wanted. Interacting with the motors is easy, but I wanted the servos to move in the most efficient way possible, to pan from, say, left to right, tilting up and down, and then reversing direction. This turned out to be difficult, but I got it working.
I also got a basic concept test of the combined image working, although it will take some tweaking to get the individual chunks to line up properly.
The next step is to generate a properly aligned high-res image from the low-res chunks, and then run some smoothing algorithms on it. I will probably increase the size of the raw image by, say, three or four times, then interpolate the pixels inbetween to produce a smoothing effect. I will also implement colour coding as opposed to just grayscale.














































