||This site is proud to be Canadian
We built Suzie last year as rather a rushed project, she was made almost entirely out of Lego Mindstorms
and was thus very limited. We programed it in a language called Not Quite C (NQC) which, as the name suggests
is based on C syntax and was thus very familiar to us. Oh and as for the name, the story goes like this: Kier
said: "We should, like, call it Suzie" and that was pretty much it. She even went to for-fun science fair with
our local homeschool group (we are/were all homeschooled), for that fair I prepared this document:
Suzie the Extinguisher
Top of page
Andrew Cobb, Jonathon Cobb, Keir Egger, John McDonald
Who is Suzie?
Built to compete at the annual Western Canadian Robot Games (WCRG), the extinguisher robot Suzie is made entirely
out of Lego! (Except for little bit of cereal box cardboard).
What does an extinguisher do?
The extinguisher contest is designed to simulate a real-world scenario where robots could be used to fight fires
in warehouses etc. and possibly even homes. In the contest a robot has to find it's way around a "Warehouse"
(a simple, predefined, maze) and extinguish a "Fire" (candle), the speediest robot is the winner. Consisting
of four different rooms the WCRG maze is a little more complex than our modest maze, but it still demonstrates
our 'bots wall hugging abilities nicely.
How is Suzie programmed?
A special programmable Lego block called an RCX provides the brain for Suzie. The RCX has three outputs - we use two
for drive motors and one for a fan - and three inputs, which we use for: a sensor on the front, to detect walls; a
sensor on the side for wall hugging and a light sensor to detect the candle. While the RCX does come with its own
programming language; it's intended for beginners and we chose to use Not Quite C (NQC), which is a lot more
powerful and flexible.
When the program is run it branches off into three different tasks which all run simultaneously . The first task is
for navigating the maze, there are two main techniques used: wall hugging and dead reckoning. Wall hugging
(technically "Contour Tracing") is simply following the wall around the maze. Most mazes can be solved by wall
hugging. The problem with wall hugging is that it's a particularly slow way of solving a maze. Dead reckoning is
achieved by keeping track of how much you've moved and computing your position from that data. The problem with
dead reckoning is that since the Lego motors don't provide any feedback, it's impossible to tell exactly how much
you've moved, however you can still make reasonably accurate guesses. For this demonstration were just wall hugging but for the games we're thinking of using a combination.
The next task is for detecting a candle. We first take a light reading; if the value is near to the average light
value then we just compute a new average based on our new data. If, however, we get an unusually high light value
(20% over the average) then it looks like we've found the candle! Just to be sure it is the candle and not some
brief flash like a camera etc. we take 10 more light readings before were convinced. If we have, in fact, found
the candle then we start blowing that fan!
The final task is for playing the tune while it's driving. The only complication is that the tune must be entered
in "Play 370hz for 250ms" rather than the simpler "Play F# for one quarter beat".
Suzie Strikes Back
Top of page
This robot is still virtual, Were planning on using:
|Microprosser ||AVR Atmel|
Tamya Motor Gearboxes|
Solarbotics geared motors
Winshield Washer Pump (water, not antifreeze :)|
|Fire Detection ||
Top of page
|Windshield Washer ||???|
|Drive Wheels ||$12.00|
|IR Rangefnders ||$77.00|
|SPLIT 4 WAYS ||$78.11
|SPLIT 4 WAYS ||$100.00
Top of page