PDA

View Full Version : Basic questions about the GYRO ADXRS300


roboticsBCN
09-02-2009, 12:40 AM
Hi!

One pair of questions about the gyro ADXRS300...

- In the specs I can read "300/s Single Chip Yaw Rate". This means that if I have one robot that turn 360 in one second, the gyro don't work?

- At what frequency I can read the gyro? I have the ADXRD300EB (evaluation board) configured for one bandwidth of 40Hz.

Thanks!

roboticsBCN

Al Skierkiewicz
09-02-2009, 06:41 AM
You are interpreting the +/-300 degree/sec correctly. However, turning a robot 360 degrees in one second is very fast even for moderately sized robots. Stability and control become issues at that turn rate.

Remember that the output of the chip is a DC voltage proportional to the rate of turn. The 40 Hz filter is a low pass filter designed to take out the high frequency noise generated by the chip when in use. You can sample at whatever frequency you need for accuracy and feedback in your application. The optimum sample rate is determined by your application, software and rate of turn for the robot you are working on.

roboticsBCN
09-03-2009, 07:44 AM
Thanks for you reply Al Skierkiewicz.

One more question... the sensibility of 5mV//s means that if I see 500mV in the oscilloscope during one second, the angle is 100 degrees ?

Thanks!

Russ Beavis
09-03-2009, 08:04 AM
If your oscilloscope probe is DC-coupled and the gyro isn't spinning, you should read an output that is about 1/2 of the power supply voltage. That's the "zero rate offset" for the gyro and it will be somewhat dependent on time and temperature.

After you subtract off the above offset, the observed output will be proportional to the rotation rate of the gyro about its sensitive axis and is a real-time measure of the rotation rate. For example, if the reading is 500mV above the offset and the gyro's sensitivity is 5mV per arc deg/sec, then the gyro is indeed spinning at 100 arc deg/sec at that specific time about its sensitive axis (it could also be spinning about a perpendicular axis and you wouldn't be able to tell). If that 100 arc deg/sec rate is maintained consistently for 1 second, then the gyro will have rotated by 100 arc degs.

You just need to apply an integrator to (reading - offset) to determine the position of the gyro in degrees. BE CAREFUL WITH THE INTEGRATOR - a small amount of error in your estimate of "offset" will result in an integrator output that grows over time. There are ways to minimize that error but that's worthy of a separate chapter.

Russ

Alan Anderson
09-03-2009, 08:34 AM
One more question... the sensibility of 5mV//s means that if I see 500mV in the oscilloscope during one second, the angle is 100 degrees ?

If you see a 500 mV offset from the "zero rate" voltage of the sensor, it means the rotation rate is 100 degrees per second. If that 500 mV remains present for a full second, you can infer that the sensor has indeed rotated 100 degrees during that second.

Nathan
09-09-2009, 09:25 PM
To build on what Russ said in his last paragraph, gyroscopic drift can be a real problem if you're trying to keep track of how far you've turned. I don't think it's possible to eleminate it completely. Some people has coupled a gyro with a compass for navigation, but if you're using the gyro for closed loop drive control then that isn't necessary.

In the specs I can read "300/s Single Chip Yaw Rate". This means that if I have one robot that turn 360 in one second, the gyro don't work?

My understanding of this issue is that the gyro will still work just fine, just maybe not how you're expecting it to work. What I mean is, the gyro will still output the voltage corresponding to it's max turn rate (300 deg/s), but you have no way of knowing if it's turning faster then that because it can't output a higher voltage.

I don't know what kind of application you are using this in, but be advised that these gyros have a really high impedance, which could affect the value your device is reading it's voltage at. To use one of these with my PIC I had to use a buffer amplifier in-between.

Nathan