CatBot
(That's the Cue Cat bar code scanner attached to the robot. Up close, it does indeed look like a cat. Trust me.)
Description
Educational toy for pre-schoolers/kindergarteners for teaching basic robotic movement and simple programming.
Started: October 2010.
Idea
Child builds a short sequences of commands by laying down cards. The cards have arrows (forward, right, left, back) for movement. The card sequence is read into a turtle-style robot that then executes the movement.
This is inspired by ideas in the board games RoboRally and RAMBots.
Components
- CueCat barcode scanner (for reading in card values) [Arduino-to-PS/2-barcode-scanner code here]
- card stock with printed arrows and bar codes (barcode generator here) -- SAMPLE ATTACHED TO THIS PAGE
- Arduino Uno or equivalent
- Robot platform: 2WD Arduino robotics platform
- Adafruit Motor Shield
- 5x AA NiMH batteries
- 9V battery and clip
- Maze materials (2x4's, cinder blocks, blue tape, etc.)
Commands
- F: Forward
- B: Backward
- R: Move Right
- L: Move Left
Activities
A number after a letter tells the number of times to do that letter, e.g., B2 means "move back 2".
- "Maze" -- very simple obstacle courses requiring 1 to 4 moves to navigate. Have the children individually create a solution and then test each one in turn. Possible setups:
- F: [use a single card and show how it affects the robot]
- F2 (F3): [show how using more cards makes the robot do more]
- FB [demonstrate using different cards]
- RF [more of the same]
- RFR [gettin' fancy!]
- "Puzzle"
- Dance (FBLR)
- Box (FRBL)
- Guard Dog (LRLRLR...)
- These are sounding a bit complex...
Build
Build notes for the basic 2WD Arduino Compatible Mobile Platform are here.
The CueCat has been installed. It had both female and male jacks on its cord; presumably the female is there so both the CueCat and a keyboard can share the same PS/2 port on a computer. I cut the female off and wired it to the Arduino (via the Motor Shield's pass-through pins) as follows (note I'm using analog pins [A0 and A1] because that's all the motor shield leaves for me, but I'm using them as digital pins):
- red wire (DATA): A1
- brown wire (VCC): Vin
- black wire (CLK): A0
- bare wire (GND): GND
It works, sort of. There are two unforeseen problems that make this not well-suited for what I wanted to do:
- While the bar code scanner works, it's very sensitive to how fast you move it across the bar code. Sometimes it does not pick up the bar code at all.
- The wheel motors (or the controller) aren't precise enough to make good 90-degree turns without external "vision" of some sort -- a line-following sensor, video camera, etc.
Still, a fun project, and now I have a ready-made robot I can use for other things.