After my last robot I decided to give them all temporary, work-in-progress names. Kinda like code names, while I await inspiration for a "proper" name. Stealing rik's idea again (I'm not giving it back either!) my third bot comes in as 812-R3. Naturally it never did tell me its real name, so I'm just going to stick with that.
R3 has a base made of 1.5 standard CD-Rs. The whole one has two modified servos glued to it, then half of another CD glued to the backs of those in an upright position for rigidity. Glued to the bottom of the base are two plastic soda bottle caps for casters. Each wheel is made of another 2 CDs screwed to a servo horn. The perimeter of each wheel is wrapped with a medical fabric tape for traction. Sitting between the servos is a 4xAA battery pack providing 6V to a low-dropout 5V regulator. A small breadboard is attached to the other side of the half CD and holds an ATMega168 running the Arduino bootloader at 8MHz (using the internal oscillator to cut down on parts). The breadboard also holds the power supply,
a small piezo speaker for sounds, and a 1x6 pin header for attaching the programming cable.
Input and Drive Method (no longer accurate)
Two buttons scavenged out of a dead mouse are mounted "front" and "rear". The buttons are triggered by feelers made of a couple old Lego parts. R3 only drives one wheel at a time, and both wheels only are rotated in one direction. This makes the robot move in kind of a slow spinning motion, inspired by Dizzy. This spinning method of driving is why "front" and "rear" are in quotes when referring to the feelers. When a feeler touches something R3 will make a "sad" sound and change drive wheels to move away from the object. If R3 knocks a feeler again within 10 seconds an "angry" sound is emitted.
As mentioned in the related blog post, R3 now has an LDR eye. This is used to scan for the brightest location out of 8 directions, and then attempt to drive toward said bright spot. R3 will perform this scan at startup, and then every five minutes or so. After some dingling about with the code it actually seems to work too. Amazing. Unfortunately I never did manage to get any decent video of this process.
Software (no longer accurate)
R3 has sort of a mood going on as well. At startup it's "anxiety" level is set at 500. Not too happy, not too sad, just okay. This number is used as a delay between driving cycles, as well as determining what speed to drive the wheels at. Every time a feeler is bumped R3's anxiety level goes up ten points (to a maximum of 1000). Every fourth drive cycle, and every minute passed without a feeler bump, R3's anxiety goes down 10 points (to a minimum of 250). The less anxious it feels the faster it drives, and the more likely it is to randomly perform a trick or play a happy sound.
The last version of the Arduino code can be perused at my SVN server for those who have any interest.
Or present, depending on when you're reading this.
After getting the eye working I rather lost interest in this project (surprise). As such, I'm marking this project Complete, and this will be the final update to this page. The R3 platform is now being used for other things since it seems to be a reasonable little base for playing with ideas and programming. It is likely that I will not create new Project pages for future R3 projects. Instead I'll just be making blog entries which reference this Project page, if I post them at all. Obviously the paragraphs above that describe software and/or input devices will not necessarily apply to those projects.
Photos (no longer wholly accurate)
Now for a few pictures. Truly sorry about the fugly bundle o wire. I justify that with "better than being too short".
Note the bottle cap skid (one on other side too). Without them the bot sticks its back feeler into the ground...
The breadboard is fairly sparse still, plenty of room for adding stuff. Still 15 pins available, six of which are analog.
Closer shot of the lego and dead mouse feeler.
Battery pack loosely attached for balancing purposes.
More photos available at my flickr page.