The Wii Nunchuck communicates with the Wiimote over I2C, constantly sending little 6-byte packets that describe the anolog stick, accelerometer, and button values.
You might remember that Brian posted about how you can hook the Nunchuck up to an Arduino board and read accelerometer data from it. Chad from Windmeadow Labs, who was responsible for this hack, also put together a howto describing how you can use an Adruino to mimic a Nunchuck, interfacing directly with the Wiimote.
So, you can connect an Arduino to a Nunchuck to read data from it. You can connect an Adruino to the Wiimote to send data to it. If only you could make those two Arduinos talk to eachother… Hold the phone! I posted about a $14 RF serial module from SparkFun that will let you do just that!
It’d be a little clunky because of the size of two chubby Arduinos, but if you can’t wait for Nintendo to release a wireless Nunchuck to help you with your WiiSports Boxing habit, all the bits and pieces are here for you. You can get Freeduino bare bones kits pre-assembled from Modern Device for $22 each, so the total would come to just under $60.
$60 of purely awesome wireless Mii punching fury.
There is one caveat: the RF link would not be fast enough to communicate sample data from the nunchuck as fast as it is read by the Wiimote. There’s a possible solution, though, for those of you who’d like to give it a try. The Nunchuck board can sample the button and accelerometer data and send it over the air at 2400 baud. The Wiimote-connected Arduino can store the last-received state and just keep sending that same data to the Wiimote at fast I2C speed until the next update is received from the RF connection. I’m not sure how noticeable the sensitivity loss would be, but you should still be able to have a resolution of about 40 sensor updates a second.
Anyone with a couple spare Arduinos want to give this a shot and share the details?