To LUGNET HomepageTo LUGNET News HomepageTo LUGNET Guide Homepage
 Help on Searching
 
Post new message to lugnet.robotics.rcx.legosOpen lugnet.robotics.rcx.legos in your NNTP NewsreaderTo LUGNET News Traffic PageSign In (Members)
 Robotics / RCX / legOS / 1280
1279  |  1281
Subject: 
Re: Rotation Sensor Values
Newsgroups: 
lugnet.robotics.rcx.legos
Date: 
Tue, 25 Jul 2000 00:39:27 GMT
Viewed: 
1644 times
  
Ack! You are still having problems with 0.2.4? I thought your problem was
with the compiler, and not legOS?

<flips through old Andy Gombos posts on lugnet>

Is this still the merge-map problem? I figured out the situation, and
fixed it in CVS. Sorry I forgot to tell the list. If you get the newest
tarball (http://legOS.sourceforge.net/files/common/legOS-0.2.4.tar.gz) it
should build cleanly for you. Please test it and let us know.

Luis

On Tue, 25 Jul 2000, Andy Gombos wrote:

Date: Tue, 25 Jul 2000 00:12:27 GMT
From: Andy Gombos <gombos@ne.infi.net>
To: lugnet.robotics.rcx.legos@lugnet.com
Subject: Re: Rotation Sensor Values

I figured you would be glad that I was not running 0.2.4. I cannot get it to
compile correctly, so I use 0.2.3 instead. The two full programs are below, in
case you wanted to see them in full.

Andy

----This one does not work----

#include <dsensor.h>
#include <unistd.h>
#include <conio.h>
#include <rom/lcd.h>

#include <dlcd.h>

int main(int argc,char **argv) {
ds_active(&SENSOR_2);
ds_rotation_on(&SENSOR_2);
ds_rotation_set(&SENSOR_2,0);
lcd_number(SENSOR_2,sign,e0); //show the starting number
lcd_refresh();
while(1){
lcd_number(SENSOR_2,sign,e0);
lcd_refresh();
delay(50);
return 0;
            }
}
----This one does----

#include <dsensor.h>
#include <rom/lcd.h>

int main(int argc,char **argv) {
ds_active(&SENSOR_2);
ds_rotation_on(&SENSOR_2);
ds_rotation_set(&SENSOR_2,0);
while(1){
    lcd_number(ROTATION_2,sign,e0);
    msleep(50);
}
return 0;
}


In lugnet.robotics.rcx.legos, Luis Villa writes:
On Mon, 24 Jul 2000, Andy Gombos wrote:
Hee, Hee. It was 0.2.3, not 0.2.4.

phew :) Had me scared there for a while. I'll probably still take a look
at it later- I just didn't want to have caused a bug so soon after
starting to apply patches.

Luis

Here is the code snippet that setup and read
the values. The current(working) code takes out the refresh, and changes the
delay to msleep.

        ds_active(&SENSOR_2);
ds_rotation_on(&SENSOR_2);
ds_rotation_set(&SENSOR_2,0);
while(1){
    lcd_number(ROTATION_2,sign,e0);
            lcd_refresh();
            delay(50);
}
return 0;

Andy
In lugnet.robotics.rcx.legos, Luis Villa writes:
On Mon, 24 Jul 2000, Andy Gombos wrote:
I added back in the display code, and left out the lcd_refreshes. Then I • got
a
proper counter. I wonder why the refresh was throwing the reading off.

That's a good question. Is this the latest tarball? If so, there have been
some modifications to the refresh loop, and this may indicate a bug in
them. In other words, it could be the double sets of lcd_refresh()
and not the actual reading that was bad. Could you post both sets of code,
so that we can take a look at them?
Luis


In lugnet.robotics.rcx.legos, Andy Gombos writes:
Well, I do not know if I have to have code to display the values. I do • not
get
anything on
screen when I run this code. If I put a loop, and with every loop, the • sensor
value is being displayed, then I get the values mentioned before. I run • the
initialization steps also, and still get the bogus values.

Andy
In lugnet.robotics.rcx.legos, Luis Villa writes:
On Mon, 24 Jul 2000, Andy Gombos wrote:

I was reading about rotation sensors for legOS for a new robot, and
thought I'd try it out. So, I made a simple program that would show
rotation sensor values on the display. What I got was not what I
expected. I have never used the rotation sensors in legOS before, so • I
do not know if this behavior was expected. Anyway, I got values of
9999, -9999, 64, and -64 (more that once). I think that these values
correspond to the RAW values that I got from switchinf quadrants in
the sensor. Are these the expected values, or are you supposed to get
0,1,2, -5,2, like in the regular lego firmware?

Andy-
Have you set up the rotation sensors correctly? You need to do a few
things before you get reasonable values for the rotation sensor.

1) use ds_active(&SENSOR_1) to turn on the sensor.
2) use ds_rotation_on(&SENSOR_1) to turn on the rotation processing in • the
kernel.
3) use ds_rotation_set(&SENSOR_1, int X) to set the sensor to X. I • believe
that the default for this is undefined, so unless you use rotation set • at
least once, you could easily get an undefined value > 9999 or < -9999.

Once you've done all that, what you should see is just a counter, • noting
the number of sixteenths of rotations that have occurred. (i.e., when • the
counter reads 16, one rotation will have occurred.)

Hope that helps- please let us know if you still have problems-
Luis

-----------------------------------------------------------------------

    "Summertime... and the living is easy...
    fish are jumping and the cotton is high...
    So hush, little baby, baby don't you cry."
-Ella

-----------------------------------------------------------------------



-----------------------------------------------------------------------

    "Summertime... and the living is easy...
    fish are jumping and the cotton is high...
    So hush, little baby, baby don't you cry."
-Ella

-----------------------------------------------------------------------



-----------------------------------------------------------------------

    "Summertime... and the living is easy...
    fish are jumping and the cotton is high...
    So hush, little baby, baby don't you cry."
-Ella

-----------------------------------------------------------------------



-----------------------------------------------------------------------

    "Summertime... and the living is easy...
    fish are jumping and the cotton is high...
    So hush, little baby, baby don't you cry."
-Ella

-----------------------------------------------------------------------



Message has 1 Reply:
  Re: Rotation Sensor Values
 
I downloaded the tarball, and tried to compile it. when I an in /boot, it tries to do a genlds, and exits with an error. When I try to run genlds, it says Segmentation Error(or fault, I can't remember). I think the only reason that I can use 0.2.3 (...) (24 years ago, 25-Jul-00, to lugnet.robotics.rcx.legos)

Message is in Reply To:
  Re: Rotation Sensor Values
 
I figured you would be glad that I was not running 0.2.4. I cannot get it to compile correctly, so I use 0.2.3 instead. The two full programs are below, in case you wanted to see them in full. Andy ----This one does not work---- #include <dsensor.h> (...) (24 years ago, 25-Jul-00, to lugnet.robotics.rcx.legos)

16 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