Hi Duane -- what you didn't mention was that we first started bouncing the idea of this sensor board around one Friday afternoon -- when I talked to you the next day (Saturday afternoon) you'd already designed the board and sent a panel off to be fabricated -- you completely blew me away with this. Did you say you use Eagle PCB for these projects?
Max - I did use Eagle. I currently use the free version. It's limited to two layers and approximately 3" x 4" in board space. It's also limited to non-commercial use. It's a great low-cost way to start designing PCBs. If I ever start to sell any of my creations, I'll need to upgrade to a commercial licence.
@Duane: It's just for measuring ambient light. One of the I2C calls returns the value.
My knee-jerk reaction was that someone just happened to throw one on because they had it lying around ... after which it became part of the design.
But then I thought that they may have thought of using the sensor to detect someone coming into a room and activating the room's lights -- in which case they could use the ambient light level to decide whether or not to activate the main lights.
Max - I'm not sure what the purpose was. The original documentation just says: "The SRF08 can be used as a light sensor." That type of sensor really isn't senstive enough to detect someone coming into a room,
@Duane: I've been told that the accuracy of untrasonic distance measurement readings is a function of temperature, humidity, and atmospheric pressure.
This is probably overkill, but since I'm intending on making my robot a veritable cornucopia of sensors, I'm planning on (a) adding these and (b) seeing how the untrasonic readings varies under different conditions.
a) Are you doing this for your robot?
b) Do you have any advice with regard to these sensors?
Max, regarding the ultrasonics make sure you test out the environment that you want to run them in. In robotic competitions we "saw" problems with utrasonics and diamond plate. It seems that with diamond plate the ranging varied greaty due to weird reflections. Be save and test out the environment.. also could be a nice article to write up for others to learn from your experiences.
I did very much enjoy the pun :bouncing back and forth"!! Keep up the puns..
Max, the other thing I would remind you of is the sequencing of the ultra sonics (say left, back, front, right) to prevent echos from interfering. This is more of an issue with multiple robots in a common environment but the side effect is to reduce the processing overhead to 1 or 2 sensors at a time. The other programming feature that would be nice is to increase the polling on the sensors that are closing in on an object to keep from hitting it. All that said, it would be most helpful if you had touch bumpers all around to protect your furnature.
@Robotics Developer: ...sequencing of the ultra sonics (say left, back, front, right) to prevent echos from interfering...
Agreed -- in fact we are thinking of givng the sensor boards the ability to automatically keep on performing a "round-robin" ping one after the other and to kep on doing it -- whenever the main processor is ready (or interested) it can simply request of any senso "what was your last reading?"
You are most welcome! Any help that I can provide please contact me! Robotics encompasses a diverse mix of disciplines and as such it provides an endless opportunity to learn and grow. As a EE by degree the areas of software, vision, mechanical and systems for robot designs keep me occupied learning and exploring new areas, a wonderful thing for an engineer at heart!
@Robotics Developer: ...the areas of software, vision, mechanical and systems for robot designs keep me occupied learning and exploring new areas, a wonderful thing for an engineer at heart!
I agree -- one of the reasons for having hobby projects is that it's a great way to learn "stuff" -- for example, working on my my Inamorata Prognostication Engine is affording me the opertunity to learn all sorts of things, like how to calculate the dates of Full Moons and Blue Moons :-)
Max, consider (if you have the bandwidth and processing power) adding a Kinect to the robot. It has nice sensor features (depth being one of the really nice ones) as well as vision. Adding that to the platfrom could provide you with years of experimentation and exploration (pun intended).
Max, I would love to understand how you are going to implement depth perception with the two Pixy Machines! That should be a cool programming project, I am wondering what vision libraries were you planning on using? The attraction to the Kinect is the built in horsepower/processing for the depth reporting. Sounds like a fun project for sure.
@Max & Duane:
Thank you for sharing your project ideas. I was looking for a cheap but fairly accurate ultrasound sensor for a different application (water level measurement of the overhead water tank of my house). I am going to check this out.
Btw...why did you chose urtrasound over Infrared? What is the min-max distance directed?
@Sanjib.A: Btw...why did you chose urtrasound over Infrared? What is the min-max distance directed?
No particular reason -- I was planning on using infraed sensors under the robot to detect edges (like if you put it on a table) -- I've never played with ultrasonics before, so I decided to go that way -- as I recall, they are upposed to be accurate from 2cm to about 450 cm.
Very nice work Duane. I was curious about the modules and managed to find a data sheet on the SR-04 here. They do have some electronics on-board - from the photos they look like they might be just the US devices only on the board.
I have a couple of boxes of US TXs and Rxs - just the bare transducers. I'd thought of making something like this with them but for $3 it's just not worth it....
@Max..."I think the on-board electronics on the '04 are just for pulse-shaping/controlling the out-going "ping" and detecting/registering/noise-filtering the incoming response..."
From the timing diagram in the datasheet, when you give it an initiate pulse the module will send out 8 40KHz pulses from the transmitter. Immediately on completion of that it starts the Echo pulse - which it would appear carries on until it detects the end of the echo - that's the pulse you time with your MCU.
The pulse (by my calculations) is 6.4 CM long....yet the unit can measure down to 2 cm. I guess working off the trailing edges of the pluses lets it do this. Quite clever.