Arduino "eye"

A few years ago, several people were hacking the "mini web cam" in the Wiimote. (You had to tear your Wiimote apart, extract the sensor, mount it on a carrier. Why the mfg won't sell the part "new" is beyond me... anyone able to tell me I'm wrong, tell me wereh to buy it??)

The best of the bunch seemed to be Stephen Hobley, for various reasons, not least as he was interfacing it to the Arduino, and has recently updated his older work.

What was cool about the Wiimote sensor based "answer" to Arduino "vision" was that the sensor was highly intelligent. Instead of passing an array of pixels to the Arduino, it passed 5 coordinate pairs, and they "told" the Arduino where the sensor "saw" the brightest 5 points of IR light. (If you don't see how cool that is, how many things could be done with it, don't think about it... you will only grow frustrated with MORE things to consider "playing" with!)

So... several questions... (some of these might warrant off-list answers... don't inflict stuff that only I will be interested in upon the whole forum readership? Just click the "IM" bubble under my name, over at the left, to open a "send off-list answer" dialog)

Does anyone already have a working hacked Wiimote they want to sell on?
Does anyone have parts they gathered in, but now feel they don't need, and would see?
Have you worked with the Wiimote sensor and found it good or bad?

Are there other "answers" which give services similar to what the Wiimote sensor delivers? I want "vision" for my Arduino... but I don't want the Arduino doing too much of the work. Slow scan won't do for my wants. I don't need hi-res. "Where is the brightest source of light (IR or other) in the field of view" is what I need, not "what does the scene look like?"

Stephen's page....

http://stephenhobley.com/blog/2009/02/22/pixart-sensor-and-arduino/

tkbyd:
A few years ago, several people were hacking the "mini web cam" in the Wiimote. (You had to tear your Wiimote apart, extract the sensor, mount it on a carrier. Why the mfg won't sell the part "new" is beyond me... anyone able to tell me I'm wrong, tell me wereh to buy it??)

Likely because Nintendo designed it, then as part of the manufacturing contract/NDA, the company is bound to only making them for Nintendo, and no one else (lest Sony or Microsoft gets ahold of it and does something better with it?)...

tkbyd:
Are there other "answers" which give services similar to what the Wiimote sensor delivers? I want "vision" for my Arduino... but I don't want the Arduino doing too much of the work. Slow scan won't do for my wants. I don't need hi-res. "Where is the brightest source of light (IR or other) in the field of view" is what I need, not "what does the scene look like?"

Have you looked into this: Video Experimenter: Arduino shield that lets you do all kinds of experiments with video

Probably the cheapest and easiest way to get into doing what you want - you'll need a small b/w or color video camera module with composite output (and no IR filter fitted, so that an IR led will show up as a bright blob). I'm not sure how fast it will be, though (maybe the designer can tell us - he hangs around the forums).

Even that requires the "smarts" of the Arduino behind it (just like that sensor likely has some kind of embedded microcontroller). Have you thought about recreating the AVRCam or CMUCam using an Arduino (then using that device with another Arduino):

http://www.jrobot.net/Projects/AVRcam.html
http://www.cs.cmu.edu/~cmucam/

That is what the microcontroller is for in the Arduino - a way to give your hardware "smarts", so use it. Develop the vision module, then use that (to become famous? rich?) to make your other projects.

Ultimately, you're not going to find a simple off-the-shelf sensor (beyond the Wiimote one) to do this - and if you do, it isn't going to be cheap. Instead, you are going to need to find and use what -does- exist (ie, off the shelf cameras, linear/grid CMOS sensors, etc) and build the intelligence around them to get the device you need. I know this isn't the answer you want, but it is the answer.

Or - pony up the money and hack the wiimote...?

:slight_smile:

I 'm thinking about such video tracking system as my next arduino project. Two - five target, highlighted by laser marker, than arduino reports XY coordinate and "ready to fire" prompt. :slight_smile:

Slow scan won't do for my wants. I don't need hi-res.

How is slow, and hi-res?

a) Res: A 64x64 pixel "world" would suffice.

b) Refresh: I only need to see one "brightest point". Assume it could move "instantaneously". 10 "here is it now?" samples of "the world" per second would probably do.

Google has a car which will drive itself. (This isn't the car which takes the StreetView pictures... something else.) It uses an adapted "slow scan" sensor to "see" what is around it, so I suppose saying I'm not interested in slow scan I probably wrong... but I suspect my budget (small!) will have to find an electronic answer with multiple parallel sensors rather than something that scans the scene with one sensor fast (enough) and accurately. (A design based on 64x64 discrete phototransistors is probably out on costs, too.)

Home made photo-transistor array solution is unlikely to bit a price of CMOS sensor 10$ on SFE.
30$ (non surface mounting version), the only problem I can see, this device outputs composite color video signal. So to track brightest spot on image (640x480, 30 fps), I will have to separate V/H sync, and decode PAL/NTSC to RGB level. Probably, there are devices on a market that outputs RGB and sync signals individually.
http://www.davidchatting.com/arduinoeyeshield

tkbyd:
a) Res: A 64x64 pixel "world" would suffice.

The Nootropic Design Video Experimenter would work for this - it uses the TVOut library as part of its "base" code, and you can define a 64x64 sample resolution, I think. The only possibly limiting factor would be the scan speed...

tkbyd:
b) Refresh: I only need to see one "brightest point". Assume it could move "instantaneously". 10 "here is it now?" samples of "the world" per second would probably do.

Take a look at the project pages:

http://nootropicdesign.com/ve/projects.html

Specifically, the one on "Computer Vision":

http://nootropicdesign.com/projectlab/2011/03/20/arduino-computer-vision/

If you look at the videos, you'll see they are getting a fairly high-frame rate, at a higher resolution (128 x 96) than you are wanting (64 x 64); I'm sure at the lower resolution, the frame rate will be fine.

tkbyd:
Google has a car which will drive itself. (This isn't the car which takes the StreetView pictures... something else.) It uses an adapted "slow scan" sensor to "see" what is around it, so I suppose saying I'm not interested in slow scan I probably wrong...

First off, that car is actually using a special 360 degree 64 beam volumetric LIDAR (http://velodynelidar.com/lidar/hdlproducts/hdl64e.aspx) that scans at 5-15 Hz (user-configurable; 5-15 360 degree scans per second), generating a ton of data (that is then fed through various learning algorithms and such - once you have the data, things get complex quickly - I'm currently taking the Stanford Machine Learning class, and was taking the AI class, and Professor Thrun of the AI class is one of the principle members behind this Google project).

I suppose you could call that "slow scan", but it seems to work well enough for a car moving at highway speeds.

tkbyd:
but I suspect my budget (small!) will have to find an electronic answer with multiple parallel sensors rather than something that scans the scene with one sensor fast (enough) and accurately. (A design based on 64x64 discrete phototransistors is probably out on costs, too.)

Yeah - your budget (and just about everybody else's here) is nowhere near large enough for a commercial LIDAR unit; a discrete 64x64 phototransistor design is also out of the question as well (it would be the same or greater complexity as an LED matrix of that size would).

Perhaps, though, you could use an 8x8 matrix?

Or - perhaps you could hack an optical mouse sensor, and change the focus from "up close" to something further away? Although you may or may not get the frame rate desired...? A hackish way might be to put the mouse on an LCD fed with the video signal and somehow "enlarged"...?

Maybe you should expand upon your explanation of what you are trying or wanting to do in more detail...? Are you trying to replicate the Wiimote functionality exactly (or closely), or is there a specific need you want to address?

:smiley: