My Arduino + CMUcam indoor rover.
| Attachment | Size |
|---|---|
| Test code for running a dual H-Bridge from an Arduino | 1.31 KB |
| The current code as of 20/09/2008 - basic turn-left obstacle avoidance | 4.41 KB |
Update 20/09/2008: A major milestone has been reached! The robot can navigate around a otterman, two shoes, my leg and a kitten using just the CMUcam's averaging function and some Arduino clevers. The latest video is the top one. The code for the robot is attached as well.
Update 18/09/2008: I have installed a pair of Solarbotics "Secret" L293D Motor Drivers in the Rogue Blue's servo casings and have added a video showing a test of them in action. I have also uploaded the Arduino code used for the demo video. The motor drivers replaced the pair of TIP122 power transistors that were providing the original stop/go functionality.
Brief Overview
This is my first real robot. It is an "never-ending" project, started a year ago, that is intended to be a test bed for any ideas/projects I think of over the next couple of years. Currently it is handling the interfacing between an RS232 CMUcam1 and an Arduino (Stickduino).
This LMR entry is a little basic at the moment as I created it on impulse, to accompany my main blog at (http://thisismyrobot.blogspot.com). I will replace the following with more detail shortly, and in the meantime there is a stack of info on my blog.
To summarise, the platform is based on a Rogue Blue chassis from Trossen Robotics (http://www.trossenrobotics.com/store/p/3166-Rogue-Blue-ERS.aspx), which I have expanded vertically using very thin hollow aluminium tubing and some large diameter bolts that (just) thread into it. The base seems to be able to handle a couple of battery-packs and a microcontroller or two thanks to the servo gearing.




@ Wed, 2011-11-23 13:49
CMUcam+Arduino interface
Hi Robert,
Need some advice. Appreciate your inputs. I have a small project going where I need to capture an image, perform some postprocessing to retrieve some data from the image and then upload it on a webpage.
I have cmucam3 to capture the images and arduino to transfer the data to the webpage. Do you reckon I should run the postprocessing algorithms on the images on cmucam3 or arduino? I am not sure if arduino has the capability to perform any image processing and if the images can be tranferred over the serial port?
Regards
@ Wed, 2011-09-07 05:56
Hi, i am from singapore. may
Hi, i am from singapore. may i know how do u get the CMUCAM to communicate to the Arduino?? Say i want to print the output in the serial monitor. The output of the CMUCAM i suppose is in this format "Tn cx cy x0 y0 x1 y1 a q xL xR hA ". how do i read in the output? Thank you so much.. i deeply appreciate it. please reply..
@ Mon, 2011-05-30 08:14
Arduino and CMUcam interface
Hi Robert,
Could I get some information on Arduino and CMUcam interfacing? Which Arduino did you use for this project? Do you see any limitations if Arduino Uno is used.
Cheers
Shital
@ Thu, 2011-06-02 09:10
Hi
Hi Shital,
The CMUcam was interfaced to the Arduino via TTL-level RS232. This involved 3 wires for RX, TX and GND.
The Arduino I used was a StickDuino (http://spiffie.org/kits/stickduino/) - but you should be able to use any Arduino that has RS232 (which they all do I think).
Cheers,
Robert
@ Thu, 2011-06-02 14:38
Hi RobertThanks for your
Hi Robert
Thanks for your post. Could you be able to share the schematics for the interface?
Regards
@ Wed, 2011-06-29 10:52
unfortunately no :(
Unfortunately I have since disassembled the arduino + camera interface, but there should be plenty of examples - a simple google brought up this one on LMR http://letsmakerobots.com/node/13354
@ Fri, 2008-10-17 14:33
I am trying to use the
@ Wed, 2008-09-10 11:48
Very interesting - I found a
Very interesting - I found a link and video regarding the CMUCam here http://www.cs.cmu.edu/~cmucam/ with some amusing videos.
I briefly went over the manual - it appears they have a rs-232 connectionwhich feeds the RGB data to your Arduino Decimila. Do they have a variety of uProcessor code which will do all the Tracking and Blob centering functions?
What does your code do - stop on black centered blob?
What do you think of it?
I noticed they had 2 other versions CMUCam2 & 3 - do you know what was improved?
What are it's Pros & Cons?
I also notices a Java interface - What would run the Java, not a uProcessor?
I am interested because I am working on a cheap webcam java/robotic library for stereopsis ranging, color tracking, object identification and other functions. I was wondering what other items exists, would be applicable, or coud be interfaced with ...
Keep up the great work,
Regards,
GroG
@ Wed, 2008-09-10 14:38
Hi GroG, Cheers for your
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
@ Mon, 2011-06-20 11:35
Arduino1+2 pins
What are these Arduino 1+2 pins that is being referred to in the above comment? Can we use RS232 shield ?