Hi GroG,
Cheers for your comment, I will try to reply to as many of your points as possible, in order.
Yes, the camera is RS232, and I have hooked the Arduino's 1+2 pins up to the CMUcam's TTL RS232 pins (removing the MAX232 chip), and I am using the Arduino's serial library to talk to the camera. From the manual, I am using these commands to track the shoe.
PM 1<- this sets the camera into pulsed mode, only returning a single item of data per request
SW 1 1 80 70<- this sets the working area of the camera to the top half of the view
GM <- this returns the average R,G,B and the Standard Deviations of the R,G,B (6 values in total), for the top half
SW 1 70 80 143<- this sets the working area of the camera to the bottom half of the view
GM<- again, for the bottom half
I then compare the two averages, and if more that three (between the two sets) are different by 20 (of a range 0-240), the robot stops.
So, it is not overly difficult to obtain cool results quickly. I have done more since then, but I have not taken any vids yet. I would recommend the basic CMUcam to anyone on a budget (like myself) who wants to play with video on their robots.
I have not played with the other CMUcams, but I believe they add higher levels of processing to that of the basic version. I never really looked at them, when I purchased the camera I was wondering about $$$ not functionality :)
The Java interface is a demo program parcelled with the camera, allowing for the testing of commands, and for displaying an image – useful for setting focus etc. It would run on a PC usually.
As for the Java library, with the CMUcam most of the processing is done on-board, and based on my experience with Java and the CMUcam (when testing on my main PC), Java’s IO can be incredibly difficult to get working. To be honest, I am not sure how I would proceed in that development.
I hope this helps a little bit, and I will put up some code examples as soon as they are fit for public consumption! :D