ADXRS450 Gyro

Hello our team is trying to use the ADXRS450 gyro, but not for driving. We are trying to use it to detect the angle of an arm. I have been trying to use PWM cables to wire the gyro to the SPI port on the roboRIO. Do you guys think that this would work?

I think you would be happier using an encoder or a potentiometer to measure the arm angle. The gyro reported angle measurements have quite a bit of drift to them.
I don’t recall offhand but I believe the SPI port of the RoboRio uses something like eight or ten pins to connect. A single PWM cable will only connect three of them.

There are much better methods for measuring the angle of an arm. A gyro is probably going to drift too much during a match for it to be very useful. A two-axis accelerometer would work better to tell you the “down” direction. If you can mount a potentiometer or other absolute position sensor to the joint, that would be ideal.

Agreed, there are a few simple algorithms out there to measure tilt using 2 accelerometer axes. The ADXRS450 will allow you to measure rotation in one axis, but it will drift over time. I highly recommend using an encoder and limit switch!

Just as a follow up, does anyone know if the PWM method would work with the 450? My team is using this gyro for our driving in autonomous, however, due to size constrains, we had to mount the roboRio vertically. This messed up the readout from the gyro, and know we need to mount it horizontally somewhere else.

Unfortunately, we don’t have any potentiometers or encoders. We’re trying to work with what we have.

If you don’t have a potentiometer or an encoder, here are a couple of other approaches that could work, though they’re not as straightforward (they’re not the simplest thing that could possibly work, though the IR sensor approach below is pretty simple):

  • Use an Infrared Proximity Sensorto measure the distance from the base (e.g., the robot chassis) where the sensor is mounted to a point at the end of the arm opposite from the fulcrum. Then, measure the distance from the fulcrum to the point where you are measuring the distance. Using the Pythagorean theorem, use the known distance of one side, the measured distance of another side to derive the angle the arm is at. We used this approach on our shooter in the Aerial Assist Game. We added some retroreflective tape onto the shooter underside and pointed the IR sensor up at it, so we got a good reading that was accurate to 1cm. It worked except for one match in which a Frisbee went into the robot and covered the sensor. :slight_smile:

  • Use an accelerometer to measure the tilt angle of the arm. Keep in mind that accelerometers measure acceleration due to gravity (which is good in this case, because it will tell you the angle away from horizontal of the accelerometer), as well as acceleration due to linear motion (as when your robot is moving). Accelerometers typically have an error of +/- 1 or 2 degrees. I think this will be a little more complicated than the IR sensor approach described above, but it should be doable if you calibrate the accelerometer and mount it firmly to the arm you are measuring the angle of.

Hey to all of the people recommending potentiometors I have a question. How do you mount these things. We bought a vex edr one and got it mounted to a 1/2 hex shaft with a 3d printed part and it broke immediately.

Yes, you can use (multiple) PWM cables, but a more robust solution would be to use the proper ribbon cable. Copy and paste from http://www.chiefdelphi.com/forums/showthread.php?p=1533200#post1533200 :

The connector is a 10 pin 0.1" pitch IDC ribbon connector, and you need 0.05" pitch 10 conductor ribbon cable. Look at DigiKey parts ED10500-ND (female connector), MPK10K-ND (male connector), and AE10G-5-ND (5’ ribbon cable). Even easier, DigiKey also sells premade assemblies such as H3AWH-1018G-ND (1.5’) and H3AWH-1036G-ND (3.0’). You may be able to find these connectors from your local electronics shop or Fry’s store as well.

[strike]Also worth noting is the fact the sensor is a 3-axis one, so you can vertically mount it (if it’s rigidly mounted and actually vertical) and just read different axes.[/strike]

EDIT: The accelerometer is 3-axis. The gyro is only one axis, so you’ll need to use an extension cable in your situation.

We turn down the end of the shaft to 1/4", then mount the pot to a plate, use two standoffs to offset it from the end of the shaft, and then use a 1/4"-1/4" flexible shaft coupler to connect the pot and the shaft. Note this requires good mechanical capture of the shaft and the ability to turn down the end. I’ve also seen teams use elastic tubing with zip ties as a cheaper flexible shaft coupler.

Some of the things you have are Product Donation Vouchers from DigiKey and Automation Direct. Have you used them yet?

Potentiometers are standard electronic components that any Radio Shack worth the name will have in stock. You might also find them at Advance Auto.

The 2011 Kit of Parts included an AS5030 magnetic encoder that would be perfect for your application.

Thanks for the suggestions, those connectors are just what we need. Regarding the gyro however, according to FIRST choice, this model of the 450 only has 1 axes. Correct me if i’m wrong though, it’d be nice if a simple software change could solve the issue.

The ADXL362 accelerometer on the FIRST Choice PCB is a 3-axis device. The ADXRS450 gyro is Z-axis only.

Whoops! You’re quite right. Sorry for the confusion.

That’s correct, the ADXRS450 is a single-axis device. If you have some spare FIRST Choice points, you could pick up an IMU :wink: