When I started this project, speed was all that was in mind. My first robot was small but it didn't have any speed control (servos). I wanted to build a fast robot with full speed control. I found an old tyco scorcher on ebay for 10 bucks. the radio didn't work so it was perfect for my project. I use the OOPIC ( www.oopic.com ) controller because of its simplicity. I programmed it in Visual Basic, again, simplicity.
I gutted the scorcher of all electronics including the motor drivers. I found some great pliable plastic that I mounted on the car in place of its original body. this is the platform for all the robots electronics. I mounted the oopic on first along with a lynxmotion motor driver. the only problem with this configuration was that the motor driver required 4 PWM signals and the OOPIC provided only two. I could either live with forward speed control with no reverse control or figure out another way. I finally decided to use 4 NOR gates as an interface. The PWM signals from the oopic were connected to 2 NOR inputs each with the remaining inputs used as control lines. the outputs of the 4 NOR gates were connected to the 4 PWM inputs on the motor driver. now, depending on which of the control lines is high, I could send the PWM signal to the output of any of the 4 NOR gates. I now had complete speed and direction control.
I mounted an unmodified servo on the front of the robot as a panning mechanism. originally I had used just one sensor. I had a Sharp GP2D12 detector on the servo for object avoidance. this didn't work very well, but it allowed me to write my motor code. The Sharp GP2D12 detector wasn't fast enough, nor did it have the range needed to react in time to avoid an object. I needed something capable of detecting and calculating the distance of an object. Sonar was the obvious choice.
The sonar was the trickiest for me to implement on the robot. I Have never used a sensor like this one before. After reading ALL the info about sonar I could, I felt comfortable enough to try it. The Sonar transducer and driver board were purchased from www.acroname.com I put the transducer on the panning servo and added another IR detector so I had one on each side of the robot. At first, I couldn't get the sonar to "ping". I had to troubleshoot this for about a week. I finally found the problem. The sonar driver wasn't grounded properly (as I roll my eyes) to the oopic. stupid mistake, but I learned the lesson. once I got the sonar to "ping" I started rolling. Scorch uses the sonar like this: First it pans a room to find out what a good speed is for that room, then uses the sonar for object detection and avoidance. So in my living room, scorch doesn't move all that quickly, but put it in a gymnasium, and top speed is fun to watch. The sonar is perfect for speed like this. With a range of 35 feet, scorch knows whats coming up ahead and has plenty of time to decide what to do.
The IR provides wall hugging behaviors. When one of the IR sensors sees a wall, it will try to keep that wall in a specified "zone". It starts by getting as parallel to the wall as possible. It does this by watching the analog output of the IR detector. If the wall gets too close to the robot, it will redirect itself to head away from the wall until it is in the "zone" again. the sonar watches out for objects in its path while hugging a wall.
Some of the problems with scorch so far, is its incapability of complete motion control. I will definitely put some wheel encoders on it as soon as I figure out a way to do it. this should allow me to make more precision controlled movements and also get some dead reakoning behaviors put in the code. Other that that, it seems to work very well. As my second robotic project, I am very pleased with the results and info I learned by building this robot.
please email any comments or questions to: Robotics80@hotmail.com