By reading my twitter feeds I became aware of this neat contest held by Jeri Ellsworth and Chris Gammell. The rules (rule?) are simple; make something neat out of the legendary 555 timer IC, and if it’s neat enough you’ll win a prize! It took me a while to decide what to make. My first idea was some sort of ping-pong ball shooter with a monostable 555 charging a big capacitor to fire a ping-pong ball from an linear actuator with a release switch. The distance would be determined by the charge of the capacitor, which was determined by a potentiometer on the bottom of a joystick. This didn’t happen, though.
The design I am now entering is a line follower robot. The design is pretty simple, it uses only three 555 timers where two of them is in a 556 IC (dual 555). One timer is configured as an astable square wave generator with a short, inverted, trigger pulse with a frequency of about 1 kHz. The trigger pulse from the 555 output is then triggering both the 556 “trigger” pins. The 556 is configured as monostable, which means they make a pulse on the “out” pin whenever they are triggered, where the width of the pulse is determined by the RC constant of R1 and C1 in the schematic. If you make sure the pulse width does not exceed the period of the trigger pulse, you have made a PWM signal where the duty cycle is determined by the RC constant on the individual two parts of the 556.
My robot needs eyes, of course, so it can tell the difference between light and dark areas. For this I used LDRs, light dependent resistors. Their resistance increase from about 1kOhm (light) to a maximum of 10kOhm (dark). The LDRs in series with a trimming potentiometer represents the R1 of both parts of the 556, the capacitor C1 is fixed. The potentiometer is there to regulate the base duty cycle before the LDR steps in. The maximum variation in duty cycle I achieved was 34%, but I am sure this could easily be optimized.
The PWM signal in turn switches two NPN transistors to turn the motors with varying speed. The PWM duty cycle increases with darker light, so when the left eye sees a dark spot, obviously the right motor must rotate faster.
A short video of the robot in operation
The reason I am holding the battery up is because of the RPM ratings on the motors, which should have been geared down by a big ratio. If I put the battery on the robot I must turn up the idle RPM of the motors much higher because of the added weight. When the robot then comes up to speed it just runs of the course.