Introduction: Simple Kitchen Computing Interface: Wiimote + Laptop
This Instructable shows you how to set up your laptop and Wii remote to let you control Firefox and VLC without having to touch the computer.
I love cooking, but I am still at the stage where I need constantly to refer to the recipe. Since I don't own any cookbooks (and know plenty of sites with great free recipes), this means my laptop is an essential kitchen tool.
I also like to watch cartoons or movies while I'm cooking, which makes it difficult to simply keep a recipe onscreen. To avoid having to touch my computer when navigating the web or playing media, I made a simple patch to connect my wiimote to my laptop.
This instructable's functionality could be achieved through a number of means: Processing, Java, and so forth. For maximum convenience, I used the excellent Osculator software written by Camille T. along with the ever-popular Processing.
There is also a video introductionhere.
Step 1: Assemble Your Materials
You will need:
One Wii remote
One sacrificial/reusable/sanitary pouch for your wiimote (I use a sandwich bag and then wash it with the rest of the dishes—make sure it is completely dry before you reuse it!)
One bluetooth-capable laptop, netbook, or equivalent with a recent install of Processing
Wiimote-interpreting software. I use Osculator, which is free for awhile and then ~$30 to keep. It comes in handy for many things, so I consider the purchase to be well worth it. If you don't want to spend any money, you can try doing ti all in Processing, Flash, or Java; they all have pretty good wiimote libraries.
Step 2: Prepare Wii Remote
Just put the wiimote in the bag, press the air out, and seal it. Use two bags if you're paranoid.
Step 3: Set Up Your Wiimote-to-laptop Routings
Download the attached Osculator patch and save it somewhere convenient.
Download the attached Processing sketch and save it in the same place.
Guess What: You have to be an Instructables member to be able to download attachments! And, Instructables does not preserve file names or extensions! So, no files included here. Instead, head to http://github.com/AKAMEDIASYSTEM/KitchenWiimoteInterface and get everything you need over there.
Open the Osculator patch and connect your Wiimote - make sure the Wiimote you use is set as "Wii 1" in the Wiimote Drawer of Osculator.
Start the Processing sketch.
Using the keyboard, make VLC is the foreground application and Firefox is behind it (ie, so that in VLC pressing Command-Tab gets you to Firefox, and vice versa).
Please see the attached diagrams for a summary of button-to-function mappings for VLC and Firefox.
Step 4: Cook!
You're done - now you can watch movies and consult recipes while you have your hands deep inside a turkey! The Wiimote will work from inside a turkey too!
Step 5: Do More / Next Steps
- The system assumes that VLC is in the foreground when you start. It assumes from then on that you are just switching between Firefox and VLC. You can re-write the scripts to include an arbitrary number of applications and behaviors, though...have at it!
- The system works best with a quick click of the B button rather than a long press. You might have to practice once or twice to get the timing right.
- I've attached a blank wiimote template in .ai format if you'd like to alter the patches and make your own mappings.
- I've done my best to comment the (very straightforward) Processing sketch in a helpful way. The code is also available on github
Browse through some other Instructables to get ideas about where this could go; this one was only the beginning! Think about what it means to have an inexpensive, expressive, handsfree input device that can take the place of a keyboard and mouse for many tasks.
If you own a small projector, lucky you! Now you can mount it over your countertop and turn your food prep surface into a display! Or even better:
If you own a webcam or some IR light pens, you could make this a display AND a multitouch input, even if your hands are covered in dough!
We have a be nice policy.
Please be positive and constructive.