Objective
Build a stable and robust robot around a $25 wii remote. Utilize as much as possible from the little gizmo (Bluetooth communication, IR camera, etc)
WiiBot began with WiiDAR. After realizing a micro-controller could be hooked up to the wiimote, I began thinking about how the microcontroller could communicate back and forth with the computer over bluetooth. So far, I have found 3 bit parallel communication the most stable. This is done by utilizing the 4 LEDs on the wiimote.
Parts
- Some Remote Control Toy - tanks are nice since the have differential drive
- A $25 wii remote
- An Arduino, or Arduino clone, I used a Bare Bones Board Kit from Moder Devices $16.50
- PC - Dongle compatible with the Wiimote's Bluetooth
- Soldering Iron, Multi-meter, Breadboard, LEDs, Transistors, Jumpers and other regalia associated with tearing electronics apart and putting them back together.
- A home computer
- Software - Java 1.6, MyRobotLab
Step 1
Disassemble your RC Toy. Most RC Toys have the ever present H-Bridge, which makes the motors connected to the wh
Put it in a place where it won't drive around (on blocks) and you can test the voltage levels of the
Chassis
Chassis at the moment consists of a RC toy tank I got for Christmas, in lasted almost a month before I began ripping apart. I looked at the inside wiring and found the row of transistors attached to a heat sink. This would be the H-Bridge for driving the tank. It was on a circuit board connected (some how) to a big IC. I simply used the remote control and looked at all the pin output voltages. It took very little time to find 4 lines responsible for driving the tank around. I soldered wires directly to the IC pins. Then I put a little breadboard and Bare Bones Board (Arduino Clone). The H-Bridge will now be connected to the BBB, but I wanted to put a little transistor circuit between. From personal experience I don't like smoke-H-Bridges, these are H-Bridges which allow shoot-through. If your careful with the software you won't see magic smoke. I'm not that careful.
H-Bridge Wires - Motor begins turning at ~1V max 5V
Function | Color |
Right Forward | Green |
Right Reverse | Black |
Left Forward | Orange |
Left Revers | White |
Power 9.73 V | Orange |
GND | White |
BBB Board
Function | Pin | Value | Color |
Right Forward | 13 | ? | Green |
Right Reverse | 13 | ? | Green |
Right PWM | 11 | Red | |
Left Forward | 12 | ? | Green |
Left Reverse | 12 | ? | Green |
Left PWM | 10 | Red |
Wii
Wii LED | BBB Pin | ||
1 | 8 | ||
2 | 7 | ||
3 | 4 | ||
4 | 2 Strobe |
Next
- Test Servo sweep driven from computer, if needed enable Servo Sweep as a function
Challenges/Failures
- Communication - my first attempt was to create a software serial port for the computer. The idea was the computer could communicate with the microcontroller through 1 LED of the wiimote. This worked (almost). The concept was valid and there was a little (very little) usable data. The biggest issue was the computer's timing. In order to communicate at a decent baud rate the timing on the computer has to be very fast and very accurate. This was not possible. Sleeping threads are not guaranteed to wake after a certain time either, so this mode of communication was abandoned.
-
LED voltages from the wiimote are at a maximum 3.0 volts. In TTL (Arduino) systems
this is very close to NOT being a digital 1. Occasionally, when the wiimote is getting low on power I see garbage on the data lines (not good). Hopefully an Op-Amp will take care of the problem.
- Different power supply voltages - This is what you get when you take a bunch of "fond electronic objects" and hot-glue them together. They all have different power supplies and different supply voltage needs. The RC Car has a 12-14 Volt battery pack - and some regulator which does 5 Volts for the control circuitry. The Arduino wants 6 to 25 Volts input. The wiimote wants 3 Volts. I currently have the Arduino connected to the RC Car's power supply and things are working. One time when I forgot and left the power switch on, I came back and found a dead Arduino ! I have burned a second ATmel chip already, on my third now - So the situation could be improved. Some of it may be from the RC cars power supply running out and the USB cord still being connected. I think something ugly occurs and magic smoke escapes.
- NiCAD Batteries - The original battery pack for the RC toy is overtaxed. I hate batteries, they run out, and sometimes they decide to kill your primitive electronics on their way down ! Possible solutions would be to replace them with LiPos or SLA (too heavy). I want a Mr. Fusion !
Other Ideas
- Internet based training - taking what the white-glove project did for entertainment, use the power of the internet to train robots 24/7
- Fun/challenging game where a swarm or robots have all different unique skills/sensors - yet they have to cooperate to get some task done
- Turing test with either automation vs internet remote/control