Class blog for CMU’s Making Things Interactive, Fall, 2008

Post navigation

Teach Me Kitty

The Teach Me Kitty is a toy designed to teach kids how to interact with cats without an actual cat. Young children can be rough on pets before they learn the correct way to act with them. This toy would hopefully spare the live animal that learning process.

Teach Me Kitty has 3 inputs and 2 outputs. There is a button behind the left ear so that the user can “scratch” behind the ear. There is a pressure sensor in the tail to sense when the user is “pulling” the tail. And last, there is a tilt sensor in the body to sense when the user is “playing” with the toy. The outputs are leg movements, run by a servo, and a noise ouput via a buzzer.

The servo has 4 rods, each of which goes down a leg. When the leg movement begins, the servo rotates 90 degrees, waits, and rotates back. This continues until the movement is over which creates a kind of twitching motion of the legs. There are 2 different noises made by the buzzer, an angry noise and a purr.

Creating the toy’s personality was done by implementing a finite state machine. The toy has 4 moods (or states): playful, tired, angry, and asleep. Each of these moods has some output. When its playful, it wiggles its legs. When it’s angry, it makes an angry noise. When it’s tired it purrs and when it’s asleep it doesn’t do anything.

A tail pull is always negative input so pulling its tail puts the toy in the angry state. Any tilt feedback while it’s angry is also negative, making it continue being angry. Ear scratch feedback while angry is also usually negative (cats don’t like to be played with when they’re angry) but sometimes it will randomly become happy again.

An ear scratch is generally positive input. Sometimes the toy will randomly get angry with the user after an ear scratch. The toy can also get tired after being playful for a while. After being tired for a while, the toy goes to sleep.