Go to Post you should see my scout sheet its the bomb diggity - Mirza95vx [more]
Home
Go Back   Chief Delphi > Technical > Programming > C/C++
CD-Media   CD-Spy  
portal register members calendar search Today's Posts Mark Forums Read FAQ rules

 
Reply
Thread Tools Rate Thread Display Modes
  #1   Spotlight this post!  
Unread 30-04-2015, 09:41
Cinnamon Toast's Avatar
Cinnamon Toast Cinnamon Toast is offline
Registered User
FRC #3641 (The Flying Toasters)
Team Role: Programmer
 
Join Date: Jan 2015
Rookie Year: 2013
Location: Michigan
Posts: 32
Cinnamon Toast is an unknown quantity at this point
Using an SPI Gyro

Hey guys,

In past years we haven't used many sensors to dictate any kind of drive control on the robot. For the most part we have always done tank drive on traction wheels or some combination of traction and omni wheels. This year we decided to have at it with an omni h drive. Moving to a little more maneuverability in our drive train made auton interesting. Using the h drive in auton often led to rotation of the whole chassis (due o the H drive not being centered perfectly combined with un equal weight distribution). The obvious way to fix this would be to use some type of gyro. I've played around with the KOP gyro and I'm not impressed. After a lot of calibration work and debugging, it still drifts way to much for my liking. After reading some of the other posts like this one,

http://www.chiefdelphi.com/forums/sh...d.php?t=130538

I think it would be a good idea to check out a gyro like the ADXRS450.

http://www.analog.com/en/products/me...-evaluationkit

I've run into a couple of problems though, most having to do with my knowledge base. First of all, I haven't worked with SPI before. From what I can tell, the gyro class that is normally used in C++ won't be applicable because initialization arguments require an analog in pin number. How would I go about wiring and programming such a gyro? Sorry in advance for my lack of knowledge in this subject, so if you guys could provide detailed help I would be grateful. I looked into using the SPI class but the notation says that it probably shouldn't be used directly, and it's just used by other devices. Thank you all in advance!

-Cinnamon Toast
Reply With Quote
  #2   Spotlight this post!  
Unread 30-04-2015, 14:23
juchong's Avatar
juchong juchong is offline
Electrical Engineer
AKA: Juan Chong
FRC #2655 (Flying Platypi)
Team Role: Engineer
 
Join Date: Aug 2008
Rookie Year: 2008
Location: Greensboro, NC
Posts: 105
juchong is a jewel in the roughjuchong is a jewel in the roughjuchong is a jewel in the rough
Re: Using an SPI Gyro

As a collaborative effort with a few other teams, we've been working behind the scenes to put together a library for that specific sensor. Unfortunately it's only available in LabVIEW, but work is being done to port it over to C++/Java!
__________________
Teams I've worked with:My Website: http://www.juanjchong.com/
What I do: Analog Devices iSensor Product Engineer
Reply With Quote
  #3   Spotlight this post!  
Unread 01-05-2015, 13:06
slibert slibert is offline
Software Mentor
AKA: Scott Libert
FRC #2465 (Kauaibots)
Team Role: Mentor
 
Join Date: Oct 2011
Rookie Year: 2005
Location: Kauai, Hawaii
Posts: 350
slibert has much to be proud ofslibert has much to be proud ofslibert has much to be proud ofslibert has much to be proud ofslibert has much to be proud ofslibert has much to be proud ofslibert has much to be proud ofslibert has much to be proud ofslibert has much to be proud of
Re: Using an SPI Gyro

Quote:
Originally Posted by Cinnamon Toast View Post
Hey guys,

In past years we haven't used many sensors to dictate any kind of drive control on the robot. For the most part we have always done tank drive on traction wheels or some combination of traction and omni wheels. This year we decided to have at it with an omni h drive. Moving to a little more maneuverability in our drive train made auton interesting. Using the h drive in auton often led to rotation of the whole chassis (due o the H drive not being centered perfectly combined with un equal weight distribution). The obvious way to fix this would be to use some type of gyro. I've played around with the KOP gyro and I'm not impressed. After a lot of calibration work and debugging, it still drifts way to much for my liking. After reading some of the other posts like this one,

http://www.chiefdelphi.com/forums/sh...d.php?t=130538

I think it would be a good idea to check out a gyro like the ADXRS450.

http://www.analog.com/en/products/me...-evaluationkit

I've run into a couple of problems though, most having to do with my knowledge base. First of all, I haven't worked with SPI before. From what I can tell, the gyro class that is normally used in C++ won't be applicable because initialization arguments require an analog in pin number. How would I go about wiring and programming such a gyro? Sorry in advance for my lack of knowledge in this subject, so if you guys could provide detailed help I would be grateful. I looked into using the SPI class but the notation says that it probably shouldn't be used directly, and it's just used by other devices. Thank you all in advance!

-Cinnamon Toast
If you haven't already purchased the eval kit for the ADXRS450, please consider also the navX MXP. This was released since the original article you mention above, and is a plug-n-play sensor designed specifically for use w/the RoboRIO. It's a 9-axis sensor (3 gyros, 3 accelerometers, 3 magnetometers) with a motion processor, and it provides accurate, low-drift readings for use in driving straight, as well as field-centric drive. Hundreds of these boards are in use by FIRST FRC teams, and it includes libraries for LabView, Java and C++ as well as examples and other documentation.
Reply With Quote
  #4   Spotlight this post!  
Unread 01-05-2015, 18:05
Cinnamon Toast's Avatar
Cinnamon Toast Cinnamon Toast is offline
Registered User
FRC #3641 (The Flying Toasters)
Team Role: Programmer
 
Join Date: Jan 2015
Rookie Year: 2013
Location: Michigan
Posts: 32
Cinnamon Toast is an unknown quantity at this point
Re: Using an SPI Gyro

Quote:
Originally Posted by slibert View Post
If you haven't already purchased the eval kit for the ADXRS450, please consider also the navX MXP. This was released since the original article you mention above, and is a plug-n-play sensor designed specifically for use w/the RoboRIO. It's a 9-axis sensor (3 gyros, 3 accelerometers, 3 magnetometers) with a motion processor, and it provides accurate, low-drift readings for use in driving straight, as well as field-centric drive. Hundreds of these boards are in use by FIRST FRC teams, and it includes libraries for LabView, Java and C++ as well as examples and other documentation.
I have not gone ahead and bought the ADXRS450 so I'll go ahead and take a look at that! Reading on the website though, it mentioned that the device plugs straight into the MXP port on the roborio. Is it possible to get an extension cord out of the MXP port so I can mount this device somewhere else in the robot? The roborio is at quite the awkward angle right now, and I believe it's actually butted against the battery when in operation. Thank you for the recommendation though!

-Cinnamon Toast
Reply With Quote
  #5   Spotlight this post!  
Unread 01-05-2015, 18:10
Joe Ross's Avatar Unsung FIRST Hero
Joe Ross Joe Ross is offline
Registered User
FRC #0330 (Beachbots)
Team Role: Engineer
 
Join Date: Jun 2001
Rookie Year: 1997
Location: Los Angeles, CA
Posts: 8,572
Joe Ross has a reputation beyond reputeJoe Ross has a reputation beyond reputeJoe Ross has a reputation beyond reputeJoe Ross has a reputation beyond reputeJoe Ross has a reputation beyond reputeJoe Ross has a reputation beyond reputeJoe Ross has a reputation beyond reputeJoe Ross has a reputation beyond reputeJoe Ross has a reputation beyond reputeJoe Ross has a reputation beyond reputeJoe Ross has a reputation beyond repute
Re: Using an SPI Gyro

Quote:
Originally Posted by Cinnamon Toast View Post
Reading on the website though, it mentioned that the device plugs straight into the MXP port on the roborio. Is it possible to get an extension cord out of the MXP port so I can mount this device somewhere else in the robot? The roborio is at quite the awkward angle right now, and I believe it's actually butted against the battery when in operation.
See https://code.google.com/p/navxmxp/wi...InstallOptions
Reply With Quote
  #6   Spotlight this post!  
Unread 01-05-2015, 18:34
Alan Anderson's Avatar
Alan Anderson Alan Anderson is offline
Software Architect
FRC #0045 (TechnoKats)
Team Role: Mentor
 
Join Date: Feb 2004
Rookie Year: 2004
Location: Kokomo, Indiana
Posts: 9,113
Alan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond repute
Re: Using an SPI Gyro

Quote:
Originally Posted by Cinnamon Toast View Post
Is it possible to get an extension cord out of the MXP port so I can mount this device somewhere else in the robot?
http://www.andymark.com/product-p/am-2997.htm
Reply With Quote
  #7   Spotlight this post!  
Unread 01-05-2015, 22:18
otherguy's Avatar
otherguy otherguy is offline
sparkE
AKA: James
FRC #2168 (The Aluminum Falcons)
Team Role: Mentor
 
Join Date: Feb 2010
Rookie Year: 2009
Location: CT
Posts: 431
otherguy is a splendid one to beholdotherguy is a splendid one to beholdotherguy is a splendid one to beholdotherguy is a splendid one to beholdotherguy is a splendid one to beholdotherguy is a splendid one to beholdotherguy is a splendid one to behold
Re: Using an SPI Gyro

We used the ADXRS453 this year and wrote a class in Java to interface with it.

I've described how to use the class in another thread on CD
See the post here: http://www.chiefdelphi.com/forums/sh...94&postcount=4

The port over to C++ should be pretty straight forward.

Feel free to contact me if you have any questions. james [at] team2168.org
__________________
http://team2168.org
Reply With Quote
Reply


Thread Tools
Display Modes Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump


All times are GMT -5. The time now is 15:25.

The Chief Delphi Forums are sponsored by Innovation First International, Inc.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi