Let's Make Robots!

Cheap home made IR compound eye

Allows your robot to see and track nearby objects
Mr._General.bas5.15 KB
Compund_eye_instructions.jpg1.24 MB
Mr__General.zip3.24 KB

The purpose of this cheap, easy to make eye is to allow your robot to track movement of nearby objects (within 200mm). After much experimentation and various degrees of success I have finally got a good working design for my IR tracking system which is really a simple 4 element compound eye. Compound eyes are found in Arthropods such as insects. They are of relatively low resolution compared to the human eye but more responsive to movement. Unlike Insect eyes, my design includes it's own light source and is blinded by excess ambiant IR making them better suited to indoor and nocturnal activities.

In my earlier designs I used a transistor to amplify the signal from the phototransistors but this caused some problems with calibration and did not increase the range as much as I had hoped. When I did increase sensitivity to about 500mm I ran into other problems such as a white wall in the background reflecting light better than an object such as my hand causing my robot to look away from my hand instead of towards it.

The eye consist of 4 IR LEDs and 4 pairs of photo transistors. The phototransistor pairs are connected in parallel to increase their sensitivity. The phototransistor pairs are then connected to your analog inputs the same way you would connect an LDR. This circuit is really 4 FritsLDRs but using phototransistors instead of LDRs. The main reason for this is that the lens on the phototransistors makes them more sensitive to light directly in front of them and because LDRs are very slow to respond to changes in light.

The demonstration video is of a new robot being produced by DAGU called Mr. General. He is basically a "Start Here" robot based on my Bot 08M. Click on the schematic for a larger picture.

 As you can see, the eye is very simple to make. Using it to guide two servos in a pan/tilt mechanism is a little more complicated. I have included the sample program used in the demonstration video to try and help. Mr. General is designed to work with any processor but unfortunately I can only provide a sample in picaxe basic at this time.

The program basically compares left and right inputs for pan, up and down inputs for tilt. The bigger the difference, the faster the servo needs to move to follow the object. Another thing the program does is look at the average value of the inputs to gauge distance. The closer the object, the higher the readings. This is used to scale the results and prevent the servo from over correcting.

Having said that, I haven't perfected the scaling yet. at the moment, the program divides the readings to get a scale factor but since the light returning to the sensors is inversly proportional to the distance² I should really use a square root funtion in calculations. As a result of my crude scaling technique the robot seems to have developed a bit of personality. It likes one of our technicians and behaves well for him in the first video but does not like Claudia and shakes it's head at her (due to servo overcorrection) in the second video.

For those who would rather buy than make one, DAGU will soon have these available as a robot accessory.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

never used picaxe, check all the connections, usually when something impossible to figure out happens, its something simple that we forgot!


could you post a diagram? some connections arent easy to tel for sure. 

here is one my friend drew up before i made it. i hope it helps by the way i got it to read but i dont think its working i feel to give up at the moment. Image.jpg
i usually connect the resistor to GND, and the detector to +5v, not sure if it makes much of a diference, sure the detector is actually the detector, and not the emitter? its easy to mix them up :)
nah they where definatly correct as i checked on my digital cammera so i could see the beam from the TX and there wasnt a beam from the RX.

Unfortunately your picture is not very clear but it looks to me as though you have connected the ir to the wrong terminals.

Look in the manual that fritzl has provided http://letsmakerobots.com/files/lmr-Start.pdf at page 19 and you will see that the anologue input 1 is behind the dc socket. This is on the diagonal opposite side of the board to where you have plugged it. 

i was using a 1k resistor instead of a 10k so i whent an d baught some today alnog with a pentometer lets see what i can achive with my new bits


This is genial! I might use this instead of the one i'm going to buy :D

I want to make one of these.

What is so cool is the Lock-On effect - once it has its target then it Locks-On.

I assume that the Heat of a hand would influence the reading - giving different response to different people.

IR given off by hot objects is a different frequency to IR used by TV remotes. The persons body temperature should have little if any effect. I found the reason it shook it's head was due to the way you held your hand. Claudia held her hand vertically making it small enough for the robot to have trouble locking on.
That and the fact that Claudia's hands are way much smaller than yours... ^^