Last time I reported that I could take b/w “stills” with the thermal camera. This meant that the system would do this:
- set up registers
- get ambient sensor temperature
- initiate i2c start
- interrupt driven i2c read of registers
- display a lit led if temperature>ambient
Unfortunately, this looked pretty lame, because it never updated. To fix this, I added a timer interrupt that interrupts every 100ms. It initiates the i2c transaction that reads the sensor values. 100ms was chosen because the camera updates at 10 fps, so a fresh frame is ready every 100ms. Doing this cuts down on time spent running i2c transactions, which produces a flicker free display. A timing diagram of the system would look like this:
0ms start i2c transaction
0-3.5ms read i2c data and output pixel data
3.5-100ms output pixel data
As you can see in the video, it can tell when my hand is hovering over the sensor, as well as what direction it is coming from. The clarity of how this is displayed should improve when I wire up all the LEDs.
The next steps of the process are to:
- wire up the rest of the display such that the micro will not tank if the voltage drops
- clean, comment, and publish code
- design and build an enclosure
I am excited to get this up and running!