WiiBOT - Internet Controlled Robot with WiiDAR

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