Projects‎ > ‎

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.
Ċ
Lewis Baumstark,
Oct 12, 2010, 11:09 AM
Comments