|
|
|
![]() |
|
|||||||
|
||||||||
![]() |
|
|
Thread Tools | Rate Thread | Display Modes |
|
|
|
#1
|
|||||
|
|||||
|
Re: How to measure low velocity
Since the original poster isn't on a team, I'm unsure how much help our advice is going to be anyways. The 10-bit A/D resolution might not apply to him. At any rate, now that I think about it, 150 deg/s might be a bit slow for our robots turning at full speed. Though if your tracking only matters in autonomous, then you might not have to worry about it and could expand the range further and restrict the turning speed.
Other options more complicated than an op-amp, in order of increasing difficulty would be an off-board 16-bit A/D tied to a serial driver and clocking circuitry to send acceleration readings through the TTL serial port, or an entire off-board processor with better A/Ds to keep track of the heading. |
|
#2
|
|||
|
|||
|
Re: How to measure low velocity
I'm using ADC 10bit of ATMEGA8535. The resolution is 1lsb = 1/1023 corresponding to (1/1023)*5 V = 0.0049V. ADXRS150's sensitivity is 12.5 mV/deg/s so 0.0049V means 0.0049/0.0125=0.392 deg/s =141.12 deg/hour.
That's means if gyro can measure all angular rate from -150 deg/s to +150 deg/s , my ADC can detect the rate at 141.12 deg/hour. But when I rotate the table faster than that (It takes only about 5 minutes/cycle) the value I get is constant: 480. That is the value at zero point. It shows that ADXRS150 can't detect this slow rate. How to do with this prob? |
|
#3
|
|||||
|
|||||
|
Re: How to measure low velocity
Quote:
Looking at it another way, 5 minutes per revolution is a little bit more than 1 degree per second. That's a little bit more than 12.5 millivolts, which again should be read as about 2 or 3 counts. The people responding in this discussion forum are generally concerned with time frames measured in tens of seconds. I don't think many of us will have given a lot of thought to trying to measure angular rate over more than a minute or two. |
|
#4
|
||||
|
||||
|
Re: How to measure low velocity
Id be really surprized if you can turn your robot so slowly that the rate sensor reads zero.
Turning a lazy susan by hand on a table top... ok... how does that relate to anything your robot will do? |
|
#5
|
|||
|
|||
|
Re: How to measure low velocity
Ken-
The posters lack of a team number, and location in Vietnam leads me to belive he isn't using the gyro on a robot, FIRST or otherwise. At least I don't think there are any teams out of Vietnam. Maybe with some more information on the application, we could be of more help, nobtiba? -Andy A. |
|
#6
|
|||
|
|||
|
Re: How to measure low velocity
If you need to measure a small rotational velocity then maybe the ADXRS401 is a more suitable part. Its measurement range is +-75 degrees per second.
|
|
#7
|
|||
|
|||
|
Re: How to measure low velocity
Quote:
ADXRS300 or the others only different in upper level (75, 150, 300 deg/s) but what about their bellow level? I think if the sensor can't detect low rate it will lead to my following problems (in fact now): 1. Can't measure angular exactly 2. With the same real angular but measure very different values in different times 3. The same value positive and negative but measure different values (that means if you turn it clockwise then turn to starting point it never be zero) So I wonder any body used ADXRS and measure angular exactly enough can tell me what to do? |
|
#8
|
|||
|
|||
|
Re: How to measure low velocity
In the datasheet of ADXRS, it says that we can setting bandwidth by changing the external capacitors: f(out)=1/(2*pi*R(out)*C(out)). Do you think it can effect gyro's capacity of detecting low rate? If not, what is the function of setting the bandwidth?
|
|
#9
|
||||||
|
||||||
|
Re: How to measure low velocity
Quote:
The purpose of this capacitor is to change the corner frequency of the low-pass filter on the sensor. You want to have a low enough corner frequency to avoid aliasing of your signal when you digitize the signal. Too much filtering and there will be a problem with a phase lag in the signal. If you're not sure how to select the capacitor, search the internet on "nyquist frequency". |
|
#10
|
|||||
|
|||||
|
Re: How to measure low velocity
I believe if you look through the data sheet carefully, you will find that the capacitor and bandwidth is an attempt to quiet down some noisey data. By bandwidth limiting the high frequency energy, you should get a more accurate output.
It seems that I remember someone (a thread perhaps) that discussed rapidly taking samples and averaging over 10 or fifteen ( or more) samples to look for trends. By knowing where you were before you may be able to find out where you are now. |
|
#11
|
||||||
|
||||||
|
Re: How to measure low velocity
Quote:
|
|
#12
|
|||
|
|||
|
Re: How to measure low velocity
Thank you very much for your very useful information. In this pdf file it says that: "if your're integrating, you don't need to filter-the effect of improved resolution will be taken care of by the integration". Now I need integrate to change angular rate to angular, so I needn't average the samples?
In Kevin's code (gyro.h, gyro.c) the time lapse between samples decided by programmer with a timer. If this interval (time) shorter, is the angular get more exactly? |
|
#13
|
||||||
|
||||||
|
Re: How to measure low velocity
Quote:
If the sample period (interval between samples) is shorter, the integral will be more exact. However, the sample period must be consistent from one sample to another. |
|
#14
|
|||
|
|||
|
Re: How to measure low velocity
The first thing you need to do is establish wether the sensor will actually give a valid reading at these low levels - the specs do not give any values for 'hysteresis' which might be an issue.
So, set up an op amp with some gain (eg x 20) and look at the amplified readings - don't worry about the reduced range at this point. This should show you if the sensor actually registers the motion. [Watch out for noise and drift - alternate readings for stationary, clockwise and counterclock] You could do all this with a quality voltage meter instead, of course. If the sensor actually works at these levels, then you could implement a dual channel readback - in parallel with your normal +- 150 deg channel, add a channel with some gain centered about the null position. In operation this channel will saturate at high turn rates, but you have the readings from the other channel. Of course you will need a strategy to select which reading to use, as well as thinking about compensating for zero offset and drift. good luck ! |
|
#15
|
|||
|
|||
|
Re: How to measure low velocity
Some body tell me to change the ADC with higher resolution e.g 12 bits or 14 bits...This may help me to know if having a small change in input voltage from zero point voltage which means having a very slow rotation.
But I wonder if anybody use 10 bit ADC and still measure angular exactly.My purpose is that if the system (with ADXRS on it) rotate, I have to control it to turn back to the starting point exactly. Is changing ADC is a good idea, because it's expensive to have high resolution ADC and waste time to re write program for another one. |
![]() |
| Thread Tools | |
| Display Modes | Rate This Thread |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Do defensive, low scoring tactics work? | haverfordfords | Rules/Strategy | 37 | 18-02-2005 12:25 |
| Rotating the motor cage to lock in LOW | sanddrag | Motors | 3 | 10-03-2004 07:23 |
| How to measure execution time? And code size? | gnormhurst | Programming | 17 | 17-02-2004 08:06 |
| Bug: Login Problems - Session timeout value too low? | DanL | CD Forum Support | 4 | 09-01-2004 16:33 |
| Tape measure proboscus | tito | General Forum | 24 | 29-04-2002 15:56 |