external image IMG_0115.PNG


FlappyCat allows cats to play simple computer games with familiar toys. The toys are designed to prompt cat-computer interaction with engaging visual stimuli. The visual prompts are triggered when machine learning algorithms determine that an action should be performed in the computer game. We used the hugely popular game Flappy Bird as a case study for this project.

Flappy Cat on Github


Laser Toy

Our first idea was to shine a laser at a photocell whenever flappy bird needs to flap. Ideally, this would prompt the cat to bat at the laser, which would block light to the photocell. When the light measured by the photocell drops below a preset threshold, the game receives a command to make flappy bird jump once.

String Toy

Our second idea was to attach a toy a string that lights up at important moments in the game. We hoped that when the cats see the toy light up, they will be more likely to bat at it, causing a vibration sensor that is also attached to the end of the string to measure higher vibration readings than normal. When the Arduino detects high vibration, it sends a command to the game to make flappy bird jump.


In general, cats did not care about these toys

As it turns out, light itself is not incredibly interesting to cats. We found that the motion of a laser light is much more enticing to cats than the light itself. Our cats were not terribly interesting in lasers blinking at a fixed point, or a blinking ping pong ball on a wire. We did not have time to implement the following ideas, but there are certainly interesting directions to go from here. Since motion is clearly a stronger motivator for cats, it would likely be more effective to attach a motor to the string toy to make it vibrate (note: this does introduce new problems: (1) powering the motor, (2) what do you sense now that the toy will be vibrating regardless of wether the cat is pawing at it?). Second, to be more interesting to cats, the laser should be mounted on servo motors so that it can move around the floor (note: this also introduces problems: (1) What do you sense now that the laser is no longer pointed at a photocell? We think that using a Kinect would be useful here).

Packaging the string toy

Making a version of the string toy that cats could safely play with posed a few challenges: (1) cleanly giving the Arduino enough wires to interact with distant and somewhat mobile components, and (2) enclosing the electrical components so that cats could interact without harming themselves or damaging the toy. It turns out that the HCIL hacker space had most of the parts we needed to solve this. We used a long ribbon cable with 4 jumper wires (power, vibration sensor out, ground, led power), soldered the negative leg of the led to the ground pin of the vibration sensor, and enclosed the components in a ping pong ball.

Fragile (?) vibration sensor

Two of our vibration sensors broke. We thought the first one was a fluke because our classmates and HCIL hacker space veterans double checked our circuit, but it is harder to buy this explanation the second time around. We were unable to determine if this problem was cause by our design or by the fragility of the sensor.


external image parts11.jpgSpecifics

Arduino Leonardo

22k Ohm resistor

100 Ohm resistor


Jumper wires

Ping pong balls

Arduino laser diode module
Arduino vibration sensor


Thoughts on the Project

We thought it was great that the first project was manageable in scope, but gave us enough freedom and flexibility to work on ambitious or "silly" things.


We used Sarvagya Vaish's self-playing Flappy Bird game (FlappyBirdRL), which is based on MrSpeaker's Flappy Bird Typing Tutor.