Natalie Be'er

WebCatting

WebCatting is an interactive cat toy thats allows users to remotely control a laser pointer by using a webcam and an Arduino microprocessor through a web interface.

http://itp.nyu.edu/~nbe206/webcatting/

Classes
Introduction to Physical Computing


Our pets go hours without stimulation, yet people spend hours online watching animal webcams. WebCatting combines the two, giving people the opportunity to play a game with an animal over a web interface. WebCatting allows the person on the computer to remotely play with their lonely and bored cat sitting at home.

In the home with the pet, there's a webcam connected to the internet. Along side it sits an Arduino hooked up to a laser pointer atop pan/tilt servo motors. When the person logs into the website, they see the webcam view and have the option to "start" playing with the cat. They are then in control of the movement of the laser pen across the room, interacting with the pet.

Background
Tom Igoe has a long history of making interactive devices for his animals, and I'm using his projects as a jumping point. There's the "FroliCat", an automated laser toy for cats that can be set on a timer or turned on manually. While great and exciting for cats, this leaves out the human interaction. I wanted to hack the FroliCat and use it along with the webcam and web interface, but realized I could just as easily build my own with a pan and tilt servo kit.

Audience
The target audience is anyone who has or loves animals and is away from home for hours at a time, as well as friends and family who might have some free time on their hands.

User Scenario
I get ready to leave my apartment for class and turn on my Arduino and webcam, saying goodbye to Bill the cat. My mom, who has my class schedule, logs onto the website and sees that the webcam is on and the "Play" switch is available. She then presses "Play", and starts moving around the laser with the web interface. Bill, who at this point knows that the sounds of the servo motors moving means 'play time', looks for the laser and starts running after it. Meanwhile, a counter on the screen lets my mom know exactly how much time she has to play; the counter runs in 15 minute increments and then turns off the laser so Bill won't get too tired. Once the counter runs down or Bill gets tired (whichever comes first), my mom closes the browser window and continues on with her day. After a certain amount of time, the "Play" button will return to the screen and someone else can log on to play with Bill. When I come home after class and work, Bill is calm and happy after a day of playing catch the laser with friends and family.

Implementation
There are six main components to WebCatting: an Arduino, a pan/tilt servo setup, a laser pointer, a webcam, a web interface, and a cat. The Arduino is connected with the web interface as input and the pan/tilt servos as output. The web interface has a live stream of the webcam and an interface with a timer, a "Play" button, and directions on how to move the laser. This uses PHP and Arduino code, as well as Processing used as a mediator between the web and the Arduino.

Conclusion
I learned that sharing ideas is the best way to make them better. By sharing my idea with peers and friends, the project grew in wonderful ways. I now have ideas for future iterations, as well as how to make the web interface as powerful and simple as possible. I discovered that I work best on something when I'm passionate about it. Even if a project doesn't create world peace, it's worth it if it makes you smile. So far, I haven't broken anything in the process. Fingers crossed.