I've only seen hacks with the Wiimote cam where the camera is desoldered/removed from the Wiimote. However, at 40$ a pop that seemed like a waste of a perfectly good Wiimote. Instead of removing the cam, I only made 1 small modification, which was drilling a very tiny hole near the camera and soldering a connection to it's "Clock" pin (which needs to be a 24MHz sine wave to replace the internal oscillator). Once you have this done, all you need to do is plug a cord into the Wiimote peripheral port to use anything on its I2C bus.
Moving on, I attached the Wiimote on a homemade stand that was fixed onto a continuous-rotation servo motor (servo without feedback). Add a little duct tape, and that servo isn't moving for at least an hour.
Using an IR Camera library already created (thanks to Hobley – http://www.stephenhobley.com/), I used an Arduino to receive points from the camera and follow the 1st object (light source) that's noticed.
The code can be found here:
http://www.youtube.com/watch?v=Nj7UqjP-z6U
Nice job. I really like that you were able to access the camera without removing it from the wiimote. I am trying to work on a similar project right now. Could you provide some more information on how to connect the wiimote to the arduino? I have the clock signal going into the wiimote already. When I try to power on the wiimote it lights up for a second or two and then powers off. If you would rather, you can email me.
ReplyDeleteThanks,
Bryon
I don't power the wiimote up. I put 3.3 volts on the i2c bus's power line, wich is for powering the IR cam.
ReplyDeleteBrian, I have a few more questions if you don't mind. I feel like I am getting close to getting it working but am still not quite there.
ReplyDeleteI have connected my cord to the Wiimote and am able to see the data being transmitted (via an oscilloscope) when it is under its own power (not connected to the Arduino). But when I hook it up to the Arduino, I get no response, however, the LED on the Arduino lights up (which if I read your notes correctly means the camera has been initialized).
Am I correct in assuming the 24 Mhz signal is connected to pin 7 on the camera?
Can you confirm that my connections are correct?
Wiimote Arduino
Pin 1 to 3.3V
Pin 2 to A5
Pin 3 to Not Connected
Pin 4 to Not Connected
Pin 5 to A4
Pin 6 to Gnd
Do you have any suggestion as to what I might be able to check in troubleshooting?
Thanks in advance,
Bryon
If you'd like to email me, I can respond quicker.
ReplyDeletedwyer2bp@gmail.com
Bryon -
ReplyDeleteThe LED doesn't confirm the initialization of the IR Cam if it wasn't hooked up correctly unfortunatly (as it will light up if there is nothing on the I2C Bus at that address).
From what I understand, you are using the Wiimote Pin numbering that's written on the wiimote board, and sorta like this correct ?:
| 5 3 1 |
| 6 4 2 |
If you are soldering directly to those pins, all looks correct. If you are using a Wii cable, it is color coded when you separate the wires: Green - SDA, Yellow - SCL, etc...
Let me know your exact setup/code. You can email me, I'm sure that'd be easier.
It's not very clear how and why to connect "to it's "Clock" pin (which needs to be a 24MHz sine wave to replace the internal oscillator)."
ReplyDeleteI drill the wiimote, I find a pin (which one?)... then what?
Any schematic/tutorial available?
How: Pin 7 of the pixart IR camera (located inside the wiimote) is the designated clock pin.
ReplyDeleteWhy: Making this pin available outside of the wiimote allows you to externally connect a 24MHz clock signal, since you have no control over the oscillator internal to the Wiimote.
This link contains information/pictures of the wiimote board.
http://procrastineering.blogspot.com/2008/09/working-with-pixart-camera-directly.html
Also try googling:
Pixart Wiimote Arduino
or
Stephen Hobley Pixart
Would it be possible to show a better picture of the connections between the Wiimote and Arduino, also how the 25mhtz crystal hooks up.
ReplyDelete