Introduction: Wall Following Robot Using 555 Timer

EDIT: 
 This robot is also in the Robot Contest for the age 12-18 category.

Foreward:
In this instructable I will write out the basic ideas which I used to make a wall following robot without any microcontroller. The robot in these instructions was originally used in the Trinity Firefighting contest , and was supposed to be the first robot (that I know of) to compete without a microcontroller. However it did not successfully blow out the candle.

Recently, my friend informed me of the 555 contest and encouraged me to enter the robot. However, I do not have time to remake the robot frame and whatnot, so I will give this instructable using the original frame with the firefighting parts removed. Also, I used some specific parts in this build like Vex motors, and I haven't tested if one can substitute in other continuous rotation servos and have the same effect. As a result of all this, I will not tell you how to replicate my robot, but instead give the ideas (and circuit) that its based on and leave it to you to determine the frame and parts to use in your build.

 Also, this is my first instructable. I will update it or redo it with proper instructions if I have time later maybe.

Step 1: Materials

The robot uses only a single IR distance sensor, two continuous rotation servo motors and a 556 (or 2x555) circuit for its main operation. However, you also need a frame, wheels, batteries and all kinds of miscellaneous stuff to make it work. All that is up to you. The parts I used are what I had on hand at the time and are not necessarily optimal for this project. I will tell you the parts I used, but you can use what you like as long the principles remain the same.

Parts I used:

- Frame:
-- 8" Aluminum circles
-- 3x Random erector set L channel
-- 3x Vex shafts 
-- 6x Vex collars
-- some washers.
-- Vex screws of various sizes
-- 4x Vex motor mount spacer things
-- 6x Vex standoffs
-- 2x random bars with 5 holes
-- 2x Vex wheels
-- Vex omniwheel
-- 2x Vex motors

(you could just make it out of acrylic and regular continous rotation servos with some wheels and a caster)

- Electronics:
-- Sharp IR GP2Y0D02YK (feel free to use any other Sharp IR sensor you feel appropriate)
-- LM556
-- LM 7805 Voltage regulator
-- 2x 330K resistors
-- 2x 104 (.1uf) capacitors
-- 1uF capacitor
-- 2.2uF capacitor
-- 741 Op amp
-- Diodes (I believe most kinds will work)
-- 2x 20k pot
-- 1000 uF capacitor (across power supply)

-- Vex Battery
-- alligator clips to connect battery with
-- Breadboard
-- Switch (to turn it on and off)

Step 2: Frame Overview

Once again, I won't go into detail on how I made this frame. The only thing you really need to know is that I made it circular so it won't get stuck in corners. After that, any 2 wheel differential drive configuration with casters will do the job. Also make sure to mount the IR distance sensor at a 45 degree angle from the center. The distance from the sensor from the center depends on the size of your frame and the dead zone of the IR sensor.

You do not need to make the elevated part like I did, because that was used to hold the fire extinguishing equipment. 

Step 3: Electronics

This is where the magic happens. The circuit is mainly a modification of the servo controlling PWM circuit shown in this video . (thanks Roboanalogtom!!)  However, instead of the photo resistive voltage divider, you hook up the IR distance sensor running through an op-amp buffer (though I'm not sure if the buffer is really necessary.) You need two PWM circuits, one for each servo motor, hence the use of the 556. The schematic uses different capacitor values for each wheel, you can experiment with various values as well.

Any analog Sharp IR distance sensor will do, but I used the long range one because it was more convenient for the firefighting competition. If your robot is smaller, you can use one with shorter range. However, you should consider the dead zone of the distance sensors when picking and mounting them. Try to keep about half the dead zone inside the robot frame, since it will allow you more range. However, if it runs into a wall, it might not recover. Once again, feel free to experiment.

In the picture there are a few resistors which I did not include in the parts list or schematic, because they do not add functionality.

Also, in the schematic, it doesn't show how to wire the IR sensor sensor. There are 3 wires on it. The red wire (power) goes to the 5V after the regulator., the yellow (signal) wire goes to the input of the Op amp buffer, and the black wire (ground) goes to ground.

There is also a 1000uF cap across the 5V supply.

Finally, the servo motors are powered by the unregulated voltage straight from the battery. If you are using different servos and a different battery, you may have to power them from the 5V supply if they are not rated for the voltage your battery provides. Regular servo wires have different colors then Vex servo wires, so it is up to you to wire them.

Step 4: Principles of Operation

The basic idea of the robot is in the pictures below. Because the servos are on opposite sides, when you send the same signal to them, you get opposite results. This means that the robots natural inclination is to turn. So, to make it wall follow, you have to adjust the variable resistors which calibrate the PWM circuit for each servo motor. When it gets too close to the wall make one of the wheels reverse its direction, when it gets too far make the other wheel reverse its direction and when its at the correct distance make them both go in the same direction. Because the sensor is at an approximately 45 degree angle, it can see in front of the robot and make its way around corners in either direction (though you might have to play with the angle of the sensor and the tuning more.)

For the video, I tuned it so that at when the IR distance sensor sees its max range it does a slow turn. This is done by tuning the circuit so that both wheels turn in the same direction at the max range, but one turns slower than the other. 

Video: (does it work? If not: Link )


National Robotics Week Robot Contest

Second Prize in the
National Robotics Week Robot Contest

3rd Epilog Challenge

Participated in the
3rd Epilog Challenge