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.

teach-me-kitty-code

Vented Shirt

For this project I decided to use muscle wire to create a shirt with vents that open and close.  The vents can be opened via a button embedded in the shirt.  The original plan was to have thermistors embedded in the shirt, so that the vents open when the wearer gets hot and close when the wearer has cooled down.  However, due to the time needed to construct the shirt, these did not get sewn in.

There are two pieces of muscle wire, cut to about 2 inches long each.  The completed vent is in the right sleeve.  The vent itself is a slit cut in the sleeve with pieces of elastic sewn along the edge.  This was done so that the elastic would pull back on the muscle wire when power was removed, closing the vent.  One piece of muscle wire is attached to each side of the slit.  The other side of the wire is connected to an elastic band sewn into the arm.  This was sewn in so that the muscle wire would have something with resistance to pull against when opening the vent.

The muscle wire was shaped into springs by wrapping it around a thin copper pipe and heating with a cigarette lighter.  The springs were then stretched out flat when sewn into the shirt so that they will contract when power is applied.  The ends of the wires were crimped with copper tube so that connections could be soldered on.  These connections were made using copper tape run along the inside of the shirt.

The muscle wire gets very hot, so insulating cotton had to be sewn into the shirt.  A layer was sewn between the wire and the shirt and then another layer was put between the wire and the person’s skin.  Cotton worked pretty well to insulate, although it did burn a bit when the wire got too hot.  Any fabric thicker than cotton affected the contraction of the muscle wire.

temperature-shirt-code

Handshake Gloves

I created a pair of gloves to help people keep their handshakes at a low enough pressure not to hurt people.  there is a small pressure sensor in the right glove between the thumb and forefinger.  The left glove has a dual color LED and a small motor which vibrates.  As the pressure increases on the right hand, the motor vibration increases on the left hand proportionally.  Once the pressure goes over the amount which is considered too high, the motor vibration hits the max.

The LED is used to show the state over time of the person’s handshakes.  It will be green if more than half of the last 6 handshakes have been “good” (not too strong).  It will be red if half or more of the last handshakes have been “bad” (too strong).

In making the pressure sensor, I ended up having to use a timer to delay measuring the pressure when the person started and stopped squeezing.  This was because the pressure sensor was noisy and would jump back and forth across the threshold I had setup, resulting in multiple “handshakes” being recorded even though only one had actually occurred.

code

Exercise 1 – rear bike light shirt

I built a rear bike light and attached it to the back of a bike shirt.  It has 4 modes: off, on, blinking, and scrolling.  The modes are controlled by 4 switches, placed in separate locations around the shirt.  This was done instead of toggling on a single switch because if you’re wearing the shirt you can’t actually see the light, so you wouldn’t have any feedback as to which mode you are in.  The light is made up of 36 red LEDs set into 6 rows.  Each row is controlled by a separate digital output pin.  Each switch is read by a separate digital input pin.  The whole thing is run off of a 9V battery.  I’ve attached two schematics, one for the inputs and one for the outputs.  I’ve also attached the code.

Outputs 

Inputs

Code bike-light-flasher