People detecting IR radar idea (MLX90614)
Erlend
Posts: 612
I have just gotten an idea to use the MLX90614 infrared 'thermometer' sensor as part of a 'radar' to detect in which direction a person is. The MLX90614 sensor will be attached to a servo which - as soon as someone in the room is detected by a PIR - will start a 180deg scanning, radar-like. Measurements taken by the sensor will be stored in a table at - say every 5 deg - and after each complete scan the maximum temperature&direction will be computed. The surface temperature of a person is typically around 30 C. This information will be used to orient a robotic 'head' towards the person detected.
I am short of cogs, so I am thinking a tweak to the (OBEX) MLX90614 comms driver (Spin) to also maintain a servo pulse and do the computations should be feasible. Maybe one interrogation of the MLX90614 takes more than the 20mS interval the servo wants, but is that critical?
Any ideas / contributions before I get on with the hardware and software work?
Erlend
I am short of cogs, so I am thinking a tweak to the (OBEX) MLX90614 comms driver (Spin) to also maintain a servo pulse and do the computations should be feasible. Maybe one interrogation of the MLX90614 takes more than the 20mS interval the servo wants, but is that critical?
Any ideas / contributions before I get on with the hardware and software work?
Erlend
Comments
Neat idea. As to taking more than 20mS between pulses, it depends on the servo. A standard servo needs a pulse every 20mS (50Hz) to maintain position, but there are servos that only need a single pulse to maintain a position.
I am not trying to detect vampyres, no. The one I have was purchased a few years ago, and it is 10deg FOV. I have heard it is dicontinued, but I am not sure. How did your experiements turn out?
Erlend
Parallax discontinued their product and does not seem to be available anywhere. The PCB used an SX IC to interface with the MLX90614. Because the Parallax board was not available, about 2 months ago I purchased the Melexis part from DigiKey and wrote some C routines to talk to it via I2C. I have it measuring the temperature of my hand about 6 inches away. The temp correlates with other thermometers to within a couple of degrees F. As I increase the distance, say to 10 inches, the temp begins to drop towards ambient. This leads me to believe a 10 degree FOV will have problems at anticipated distances of 4 feet to 15 feet. The target might seem to be small, like only a hand or a face, since I'm sure clothing does not emit the same as a human body at the device's wavelength.
Also, with increased distance an "averaging" affect takes place over the FOV to include more ambient background temperatures. I hoped it would be much smaller, more like a red pointer laser beam, for better distance resolution. I'm hoping to use this in a robot to distinguish humans from other things.
I planned to study emissivity but haven't got around to it, so can't offer much insight on that subject. This could be important for detection since different things radiate infrared differently.
Another concern might be heat sources that can look human. For example a high wattage incandescent light from the right distance might have the same characteristics as a human.
The MLX90614 is purported to be very accurate but how can this be verified? I have an Omega HH12 but its accuracy is +/- 1 degree which seems sloppy.
I thought my next step would be to study emissivity, create a circular target that could be heated to a known temperature, attach a laser pointer type LED to the MLX for targeting, then vary the distance and monitor the changes. In theory if the target is of sufficient size and the temperature is stable it should produce a constant reading from the MLX. However when it begins to approach the fringe of its FOV the temperature should begin to drop.
I've been thinking about this situation and considered a sensor attached to servos to scan a subject. Multiple sensors might also be useful to speed up the data collection. According to the datasheet repetitive readings heat up the device and change temperature readings. I've noticed this affect in what I've done also. When scanning it might be possible to put together a "temperature map" of the area scanned and deduce the actual temperature at the center. But this must include a knowledge of the distance to the subject in order to determine the size of the object with the higher temperature.
So there you have it.
Is you project for room security or something to do with an autono-mouse robot;)?
I also happen to have a human, other than me, test target.
So, scanning around and pressing the button, with my test target about 2 meters away, I find that there is a little increase in temperature reading when on target. Say as much as two degrees.
Problem is that kind of variation is what I get just scanning around the room left and right up an down.
I suspect that detecting a human with these things is not so easy. Getting an accurate direction even less so.
I was wondering if it would help to put a little black tube on the front of the sensor for it to look through. Thus giving it "tunnel vision". This would increase it's directional capability at the cost of a much smaller overall signal.
What if the sensor scanned 180 deg. and every 5 deg recorded a value. Then when the PIR goes off it could scan and compare previous values to determine whiched changed. Multiple PIRs might be able to divide the area into 45 deg octants and make the final scan from the MLX quicker.
Since there's only one spot on the die that absorbs the specific wavelength it essentially forces averaging of all the IR energy it collects.
But if the inside of a long tube always emits a fixed amount at ambient then perhaps it's possible to know how much to subtract from your 2 degree variation and reconstruct the actual temperature back to 98F.