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".

  1. "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:
    1. F: [use a single card and show how it affects the robot]
    2. F2 (F3): [show how using more cards makes the robot do more]
    3. FB [demonstrate using different cards]
    4. RF [more of the same]
    5. RFR [gettin' fancy!]
  2. "Puzzle"
    1. Dance (FBLR)
    2. Box (FRBL)
    3. Guard Dog (LRLRLR...)
    4. 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.