Hack-a-Bot
I2C joystick for any robot
Wii Nunchucks are $5 at thrift stores and speak I2C — a two-wire protocol that every microcontroller supports. Plug one into an Arduino and you instantly have an analog joystick, two buttons, and a 3-axis accelerometer in a comfortable ergonomic package. It's the cheapest, fastest way to add human control to any robot project.
This is a building block, not a standalone project. Once you've got Nunchuck control working, plug it into any other build in the corral — drive your Roomba, aim the Nerf turret, steer the RC car, or dispense treats from the Chow Bot.
The kit includes the adapter and microcontroller. You supply:
The Full Send Kit includes all electronics and hardware. You supply:
Plug in the Nunchuck and drive. Comes with a demo robot to control out of the box.
Nothing. It's ready to use.
Every Zero Shot unit is hand-assembled, firmware-loaded, sensor-calibrated, and QA tested before shipping. Premium boxed packaging included.
Plug the Nunchuck into the adapter, wire it to the Arduino, read the joystick and accelerometer values, and map them to motor outputs. Total build time: about 30 minutes to first joystick-controlled movement.
Plug the Nunchuck's connector into the breakout adapter — no wire cutting or soldering. The adapter exposes four pins: VCC (3.3V), GND, SDA (data), and SCL (clock). Wire SDA to A4 and SCL to A5 on the Arduino Nano (or the designated I2C pins on your board).
The Nunchuck reports joystick X/Y (0-255, center at 128), accelerometer X/Y/Z, C button, and Z button — all over two I2C wires. The project files include a library that handles the I2C protocol and returns clean, calibrated values.
#include "NunchuckDriver.h" Nunchuck nunchuck; int joyX = nunchuck.joyX(); // 0-255 int joyY = nunchuck.joyY(); // 0-255 bool zButton = nunchuck.zButton(); // ... full implementation in project files
Convert joystick X/Y into differential drive commands: Y-axis controls forward/reverse speed, X-axis mixes in turning. The L298N motor driver takes PWM speed and direction inputs. Map joystick center (128) to stop, full forward (255) to max speed, full back (0) to max reverse.
For a more immersive experience, use the Nunchuck's accelerometer instead of the joystick. Tilt forward to drive forward, tilt left to turn left. The Z button acts as a dead-man switch — release it and the robot stops. This is the same motion control concept as the Wii remote itself.
The Nunchuck driver outputs standardized speed and direction values. Swap the motor driver for a servo controller to aim a turret. Send the values over serial to a Raspberry Pi for higher-level control. The project files include integration examples for Roomba, Nerf Sentry, and RC Gone Rogue.
Complete source code, wiring diagrams, and documentation. Enter your kit code to unlock.
Don't have a code? Get the kit — code included in every box.