Sunday, 18 December 2011

Hacking the WowWee TriBot

The Tribot is an autonomous robot from WowWee with a nice feature set, including omnidirectionnal wheels, voice synthesis and several sensors. It cost 65 euros, much less on the second hand market (I got mine for 30 euros)



Once I got fed up with its excessively talkative nature (which took less than ten minutes), I started thinking about hacking the beast.



The most interesting part of the robot is its lower part: 3 wheels + 3 reasonnably powerfull motors (with wheel encoders) + the main board (including motor drivers) + the 12V battery case. Building such omni-directionnal robot base with brand new components from a robot hobbyist shop would cost much more than the price of this robot.

What about controlling this robot base with an arduino?

The parts we are interested in in the main board are:
- The 3 H-Bridges
- The Wheel encoder output to get feedback from the wheel rotation
- The 12V output to power the arduino

The wheel encoder outputs are in 12V so they cannot be directly connected to the Arduino (this will be adressed in a future post).

The  H-Bridges input for motor control can be directly connected to the arduino. To do that, I disconnected them from the main chip (using a Dremel on the chip pins) and soldered wires connected to the arduino instead.



Pinout is:
1: Motor 3 direction
2: Motor 2 direction
3: Motor 1 direction
4: Motor 1 enable
5: Motor 2 enable
6: Motor 3 enable
7-9: Wheel encoder feedback (not working properly, more info in a future post)


EDIT: It seems that the wheel encoder feedback does not work properly in this setup (it does not seem to be properly powered). Additional info in a future post.

10 comments:

  1. Now that you have created this project, what are you planning to make it do?

    ReplyDelete
    Replies
    1. Hello! The plan is to make a toy robot, remote controllable and autonomous... just like the tribot, but better!

      Delete
  2. Can you elaborate on how you powered the Arduino from the 12V battery pack? Also, did you ever work out the wheel encoders? Thank you

    ReplyDelete
    Replies
    1. You should not worry to much about Arduino power supply: just connect the 12V that the TriBot board outputs to its upper part (you can see it on the video, in brown and red) to the Vin and Ground of your Arduino. The Arduino will take care of the voltage conversion (officially it can handle up to 16V).

      However, it is true that there is a risk of Arduino reboot due to noise problems. To prevent that, you should add a decoupling capacitor (typically a 1000 uF capacitor) between Vin and Ground, as close as possible to the Arduino.

      About the Wheel encoders, yes, I managed to make them work, or at least to test them. I'll make a short blog entry about it soon.

      Delete
  3. which part of the actual main board is the motor controller the top part or the bottom i to am planning this same project

    ReplyDelete
  4. Great project! Would you mind sharing your code?

    ReplyDelete
  5. hi! please can you give me the name of the 12v input connector on this card? i had only the 12v output thanks and great work! i'm fan of it! :)

    ReplyDelete
  6. Nice project! I got mine last week (but without any remote) I'm looking for the different Pronto IR codes to control it with my computer, any ideas?

    ReplyDelete
  7. I saw this blog and I have benefited a lot. From this site I hope you can stomach the price of good quality and dighasthayi batteries. With the Li ion 12 Volt battery, 12v LED Products, cctv Camera and Baby Monitor, DC Connector and 12V Charger is lso available in all types of batteries.
    For more information about their services, feel free to visit their site http://www.amazon.com/dp/B00E8CDOFY/.

    ReplyDelete
  8. has anyone precise IR message format sent from tribot remote controller. I'm trying to make remote controller to tribot. There is here https://neuromorphs.net/ws2008/wiki/roboQuadTribot, but something is wrong with description, I tried this but Tribot wont react.

    ReplyDelete