Robot auto-docking system using InfraRed

Hey guys,

I have a robot and I want him to go to his docking station automatically. If I can achieve this within a radius of about 5-6m from the docking station I'll be really happy.

So far I've tried two different methods:

Attempt 1: Transmitter: IR LED always on. Receiver: Used various kinds of photodiodes in a common-emitter amplifier, the same as the image below. I made serveral of these photodiode circuits and placed them all around my robot. The relative signal strengh between each of the sensors directed the robot towards the beacon(docking station). Result: It worked really well. I was surprised at the result. It even chased a TV remote control if you held a button down and pointed it at the robot. I tried a cigarette lighter and that worked too. The only issue is, it only works within a radius of about 1 metre. Argh!! Once the robot is outside that range, the IR signal strength from the IR LED is about the same strength as other sources of ambient IR light. (Just like this but I used analog input on my arduino.)

Attempt 2: Used Arduino to pulse an IR LED at 38kHz and used a 38kHz IR receiver to receive the information. I used this arduino library from Ken Shirriff to decode the information being sent. I tried Sony protocol and NEC protocol. Result: I could receive information right across my office, but the issue is that the received signal is always the same amplitude. I think this is owing to the AGC (automatic gain control) unit inside the IR receiver. I either receive a signal or I don't. This gives me no information about the signal strength, and hence, I can't use this data to direct my robot.

So I'm wondering... How could I increase the range of the IR signal? What would be brilliant is if I could find a 36kHz/38kHz/40kHz IR receiver which locked on to a certain carrier frequency but didn't have Automatic Gain Control so I could receiver the signal, but also have some information about how strong the signal is. Perhaps I could have my transmitter pulsing at 40kHz and the receiver has a band-pass filter? My filter theory is absolutely TERRIBLE though. I'm totally lost in the world of analog filters.

Thanks for your help and suggestions!!! Andrew

The only way out I can see, is build your receiver from parts.

Thanks a lot!!

Newbie question: It seems like that schematic doesn't include Automatic Gain Control, am I right?

Right, no AGC.

Another quick question: Why is there an 0.1F capacitor in parallel with a 100uF capacitor (C3 and C4)? Doesn't the massive 0.1F capacitor totally overwhelm the other one and make it insignificant?

C3 is 0.1 uF (10^-6 F) ceramic type. Two capacitors in parallel C3 and C4 to filter out power line noise in high and low frequencies.

Not sure how you were determing the direction of the IR remote beacon, but you might try putting "blinders" on the IR receiving module such that the module output will only peak when it is pointed directly a the IR beacon.

Magician: The only way out I can see, is build your receiver from parts.

Going back for a moment, this is not correct. You can buy IR receivers that provide an analog output. For example, Vishay TSOP4P38 or TSOP58P38 which stocks for about $1 each.

^ The datasheet for the Vishay TSOP4P.. says that there's automatic gain control in that too. If one sensor on the robot has its gain turned up high, and another sensor has it turned low, then I'm going to get distorted readings about where the beacon is.

I tried to build the circuit that was posted in the PDF using PSPICE, but my simulation results are quite strange. Especially the frequency response. I wonder what I did wrong?

Here are some images:

The spike is occurring at about 40Hz... I think it should be at about 40kHz, right?

I don't know SPICE, and I suspicious about 2H inductive. Schematic should provide increasing amplification in high frequency area till photo-diode is capable to operate. It was news for me, that PWM IR by Vishay on a market. AGC wouldn't be a problem, look on a Fig. 9, width of pulse is linear to power. Just measure it with PulseIn and you are good.

Hey guys,

Thanks for your advice so far.

I made one more attempt. This time I tried to make my own bandpass filter using the document called "filter design in 30 seconds" which is published by Texas Instruments (

I designed a 40kHz narrow bandpass filter and simulated it in PSPICE again, and here is the result:

It looks okay when I simulate it. It seems to have a big spike around the 40kHz mark. But when I actually made this thing using an LM324N op-amp and a breadboard, despite fiddling with it all day, I could not get it to work.

I'm looking at the datasheets for Vishay TSOP4P38 and Vishay TSOP58P38 suggested by Chagrin and I'm a little worried about them having AGC. The reason why is because of the way the robot detects the beacon's location:

This is how my algorithm works right now, for photodiode circuits. It works well but only up to a 1 meter radius. If I used the Vishay TSOP4P38 or Vishay TSOP58P38 or any chip with analog gain control was used as receiver 1-3, the weaker sensors might increase their gain. For example, receiver 2 might read '120' and receiver 3 might read '120' even though the received signal is stronger at 3.

Seems like the easiest way would be a brighter IR beacon.

I assume the beacon is at floor level or close to it, so a blinder over the top and bottom of the IR receivers would get rid of false positives from above and below beacon height.

I tried shielding the IR sensors with some pieces of cardboard, but it didn't really do much. I will try cutting an aluminum can tomorrow and see if I can make a better shield.

In the mean time I have ordered these sensors from polulu: They seem to me to be analog output, but it's hard to tell from the datasheet. I noticed they were used in this infrared beacon transceiver from polulu.

The product description says this:

Interfacing to the beacon is simple — it has four digital outputs that indicate which of its four sides detects the other beacon the strongest.

So it seems like the IR sensors are analog output. What do you guys think?

I wanted to order the TSOP4P38 or TSOP58P38 mentioned earlier in this topic but from Newark the minimum shipping cost is 20 bucks :(.!!

Hi, I have the same problem.
Did you solve this problem??

Kevin Kuei