Where is the ball on a Lego seesaw? Know a sensor that can tell me that?

Hi,
I've made a Lego seesaw controlled by a servo. I'm trying to make it balance a tennis ball. I want to do it well, so I need to know where
exactly the ball is on my seesaw (it's about a foot and a half long). Accuracy (+/- 0.5 inch) and high refresh rate (30Hz+) is desired.
Any ideas?
Here's what I've tried:
- Ultrasonic ranger - I mounted it at one end of the seesaw. I've experienced a lot of noise due to the movement of the seesaw and to the undisired echos from the seesaw itself.
- Sharp IR reflective sensor - No good when mounted on the seesaw. The movement changes the ambient light too much.
Thanks, -Roger.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Arnan Roger Sipitakiat wrote:

How about putting the CCD array from an old scanner into the bed of the see-saw? or build your own with a string of reflective IR sensors. An off the wall idea - make the linkage from servo to see-saw slightly flexible and monitor the loading on it with a strain gauge or similar. The further the ball from the fulcrum, the greater it's loading upon the linkage. And you would know which side of the fulcrum it was on if it was reading positive or negative loading. The lag between the ball position measurement and any response could be too slow to make it work though.
Alternatively use a spirit level to set the see-saw level and place the ball in the centre. Bonus is that it won't use any power and no programming - but where's the fun in that? I guess you want to do it dynamically ;-)
Jon.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

Roger,
I don't know your resource budget (time, $) but one approach would be to use multiple "point sensors" spread along the seesaw. For an 18" seesaw at +/-0.5" (I read this as "to the nearest inch") you'd need at least 18 sensors (more for added precision).
- Optical(1). Drill holes in the seesaw and mount CdS photocells or photodiodes under it. Illuminate from above and scan as desired.
- Optical(2). Drill holes and mount photoreflective sensors instead (e.g. Hamamatsu or something similar). No overhead illumination required.
- Optical(3). Make multiple cheap wide photointerruptors and array them along the length of the seesaw. You might be able to do this by slicing the usual "narrow" photointerruptors in half, but I've never tried this myself.
- Mechanical. Wrap loops of wire around the seesaw every (e.g.) inch and separate the loops from each other with some very compressible material. Then apply a strip of copper or silver conductive tape onto a wider strip of rubber or some elastic material and lay it over the loops. Ideally (after several tries <grin>) the tennis ball weight will deform the elastic, pressing the copper strip down onto one or more of the loops. Scan the loops for interconnections, or scan the loops for contact with the conductive tape.
Word Of Warning: children and siblings may not take kindly to finding holes in their Lego blocks! <grin>
Hope this helps...
Frank McKenney, McKenney Associates Richmond, Virginia / (804) 320-4887 Munged E-mail: frank uscore mckenney ayut minds pring dawt cahm (y'all)
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

How about a POT attached to the pivot point.
--TE
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Thread Ender wrote:

If the balance is being actuated by a servo, then there's already one included. Not that that would tell you anything about where the ball is on the balance. Personally, I like McKenney's ideas, but an initial thought I had was to measure the current (I) usage of the servo. As the ball gets further away from the pivot, it'll exert a greater force on the servo, thus forming a direct measurable relationship between the amount of current being consumed by the servo and the ball's position on the balance.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Arnan Roger Sipitakiat wrote:

That ought to work. You just need a narrow beam sensor. Try putting a focusing tube in front of the sensor. Try 2" of rubber hose and see what happens. Also try reducing the sensor sensitivity, in case it's seeing other objects nearby, like the edges of Lego pins.
                John Nagle                 Team Overbot
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Also consider slowing the ranging down. The first return should be the ball, but it will also return from the wall 10 feet away! That takes 20 msec round trip. If your next ping is sent this could confuse you. Unless you have another way of differentiating, a hard surface within several feet of your experiment will produce false echos. The other thing is that single transducer ultrasound generally can't see things within 4 to 6 inches because the tone burst is that long (0.5 to 1.0 msec). This would give you false readings as well. Two transducer (pitch/catch) ultrasound doesn't have this problem.
Can you control the burst length and frequecy of the transducer? You may be able to get a good reading with 10 to 20 cycles. You may also be able to differentiate between broadcasts by frequency. (e.g. send pings at 50 kHz, 100 kHz, and 150 kHz) you can ignore any 50 kHz echos after you send the 100 kHz ping.
Unless you can do one of these, I think your 30 Hz (33 msec) refresh rate is pushing it!

Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

Well I thought about it, and here are some thoughts on it. The Laser Rulers do not appear to be all that sensitive down to 1/2" or less than about 2 feet. But some of them have a serial interface that would let you read the measurements obtained. The other thought is to use a CMU Cam ( http://www-2.cs.cmu.edu/~cmucam/ ) mounted above the whoe setup looking down. A bright contrasting ball would show up Ok. You could infer the ball position from the camera imaging and thus use the info. Another thought is to Drill a series of holes spaced 1/2" apart along the length of the balance bar. Then put in optical phototransistors into the holes, facing up. Then use a separate MCU to watch the holes and give you a measurement on ball position via a serial interface of some sort. The phototransistors would simply look for the light to be blocked or not blocked, It should work under a wide variety of lighting conditions.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

Polytechforum.com is a website by engineers for engineers. It is not affiliated with any of manufacturers or vendors discussed here. All logos and trade names are the property of their respective owners.