To LUGNET HomepageTo LUGNET News HomepageTo LUGNET Guide Homepage
 Help on Searching
 
Post new message to lugnet.robotics.rcxOpen lugnet.robotics.rcx in your NNTP NewsreaderTo LUGNET News Traffic PageSign In (Members)
 Robotics / RCX / 2763
2762  |  2764
Subject: 
Re: different light readings...
Newsgroups: 
lugnet.robotics.rcx.robolab, lugnet.robotics.rcx
Date: 
Tue, 15 Nov 2005 02:33:35 GMT
Viewed: 
3271 times
  
In lugnet.robotics.rcx.robolab, Elizabeth Mabrey wrote:
Hi,

I have these 2 different light sensors. One reads "41" vs another reads "34"
on the same area.  I have troubleshoot it by switching ports, different RCX
brick.  The reading different stays the same.   Is this reasonable because
they might have a different resistors???  At the back of those two light
sensors, one reads G4, another reads H4.   If it is, I guess there is no
trick that I can do to minimize the difference, isn't it?

Suggestion is always appreciated!

----------------------------------------------------------------------------
--------
Best Regards,
Elizabeth Mabrey

Different light sensors will produce different readings. The range of readings
you get will also vary between different light sensors (for example, between the
same white surface, and the same black surface, one light sensor might have a
difference of 25, while another only has a difference of 12). In fact, the same
light sensor will even return different readings depending on many variables,
including the ambient light, battery levels, and even how long the RCX has been
turned on. They aren't very exact.

So what can you do? The solution is to calibrate each light sensor. Depending on
what you are trying to do, there are different ways of doing this. Here's a
couple. I'll assume you're trying to distinguish between something that is light
and something that is dark. The easiest way then is to find a 'mid-point' value.
If your reading is greater than this value, you can assume the object being
examined is light, if less, then its dark.

First, you could hard code the mid value. This is the easiest solution, and it
will work if your robot doesn't change, the ambient light doesn't change, and
you don't mind downloading the program again if anything should change.

Second, you could get a pair of readings at the beginning of your program, and
compute the average of the two. This requires that you know how to start up your
robot, because every time you run it, you will have to show it a light object,
and a dark object, and somehow let it know when it is seeing which one. You
could make your code slightly more robust by spending the first five or ten
seconds looking for the lightest object and the darkest object it sees. Then
take the average of those two. But it still means you have to manually
manipulate your robot (or write even more code to have the robot do it itself)
to see these two.

The third solution is to have a separate calibration program. The standard
firmware shares variables between programs. If you are using NQC, then you could
write one program that declares its first global variable as "mid", say. The
main task would set the value of mid depending on the light and dark values that
it sees. The your second program would declare its first variable as well (it
doesn't need to be the same name, but it does need to be the first global
variable you define), and *without* assigning a value to the variable, just use
it. Then, as long as you run the calibration program first, your robot should
work fine. The nice thing about this method is that if you forget to run your
calibration program a few week later, your robot should still mostly behave.
Also, if the lighting conditions change, or you put a new sensor on, or
whatever, it's very simple to just run the calibration program again. I don't
know if this is possible to do with the RCX Code environment (or Robolab, for
that matter), so if you are using these, you'll probably have to settle for one
of the other solutions.

Note that if your robot has multiple light sensors, you'll have to calibrate
each one individually. IE: store a 'midLeft' value for the left light sensor, a
'midRight' for the right light sensor, etc., and then use the appropriate value
to compare each light sensor with.

Hope that helps.

--
  David Schilling



Message has 1 Reply:
  RE: different light readings...
 
Hi David, I am sorry that I did not clarify my question. Thank you very much for taking the time out to help though! I fully understand that variations that light sensor produces, and I do make calibration the first thing to do before I run my bots. (...) (19 years ago, 15-Nov-05, to lugnet.robotics.rcx.robolab, lugnet.robotics.rcx)

Message is in Reply To:
  different light readings...
 
Hi, I have these 2 different light sensors. One reads "41" vs another reads "34" on the same area. I have troubleshoot it by switching ports, different RCX brick. The reading different stays the same. Is this reasonable because they might have a (...) (19 years ago, 14-Nov-05, to lugnet.robotics.rcx.robolab, lugnet.robotics.rcx)

3 Messages in This Thread:

Entire Thread on One Page:
Nested:  All | Brief | Compact | Dots
Linear:  All | Brief | Compact

This Message and its Replies on One Page:
Nested:  All | Brief | Compact | Dots
Linear:  All | Brief | Compact
    

Custom Search

©2005 LUGNET. All rights reserved. - hosted by steinbruch.info GbR