Twisty's Construction and Programming
Last Updated November 30, 2003
Twisty solves line mazes. She'll follow a black line and detect junctions, remembering the layout of the maze so that she can recognize loops and avoid dead ends when navigating the maze on subsequent trials.
Her "brain" is an Atmel ATMega16 on a board designed by Larry Barello. I got the board and components in his ARC 1.1 kit. The green board on Twisty is from the kit I assembled. I added the brown board to provide buttons and additional sensor inputs. She is powered by six AAA batteries, which are located under the boards.
Twisty's motors and wheels came from Solarbotics. She uses GM2 gear motors which are controlled via PWM using an H-bridge. Her "nose" is a really nifty Tamiya caster that I found at Pololu from a recommendation at a SRS meeting.
For detecting the lines, she uses five IR LED (infrared light-emitting diode) and phototransistor pairs; each pair is packaged together in the Fairchild QRB1134. I found these at the Junun/PARTS (Portland Area Robotics Society) Mark III store. The "shield" around the sensors is cardboard, with some black suede pieces glued to the inside and nearly touching the floor.
The optical mouse sensor that she was using to measure distance is from a BTC M870 3D Optical Mouse we found at Fry's. It's great on most surfaces, but didn't work on the actual maze due to its glossy surface.
I programmed Twisty using C++ and the AVR GCC compiler, which I downloaded as part of WinAVR. The program I used at Robothon is available as a ZIP archive. It includes the code, makefile, and a readme.txt file with some very basic info. The code is provided for those interested; it comes with no warranty or support. It is distributed under the GNU General Public License.
|©2000-2024 Idle Loop Software Design, LLC. You may not copy or reproduce any content from this site without our consent.