Hi! i just have a question since i am very new programmer. Okay i know how to create an autonomous mode but how can you use gyro’s in autonomous mode. please show me a code so i can have a look at it and learn. thanks by the way my e-mail address is jigarjuhi@yahoo.ca. thanks guys for your time and co-operation.
I shouldn’t even be writing this, but i felt like i needed to. The second topic in this forum asks the exact same thing (found here:http://www.chiefdelphi.com/forums/showthread.php?t=23268) and i gave them the following response:
I cannot say it enough, search, search, search!
As i just realized though, that doesn’t give autonomous code. All a gyro can really do is tell you which way you’re pointing, nothing more. So there really is no way to give sample code except for the following which just integrates the gyro output to give you one number which shows how far you’ve turned.
int theta=0; //in global variables
// from here on in autonomous section or what have you
signed char gyro = (GYRO-127)*G_ADJUST; //GYRO being the macro for wherever your gyro is attached
//and G_ADJUST is a constant to adjust to degrees
if (theta+gyro>=360) //rolling from 359 to 0 and around again
theta+=gyro-360;
else if (theta+gryo<0) //rolling from 0 to 359 and around again
theta+=gyro+360;
else
theta+=gyro;
I cannot say enough that posting “I need code to use the gyro” or “I need autonomous code” is akin to saying “I need a design for an arm for my robot” in the mechanical forum. In order to get a useful answer you need to make your question more specific. What should the code do? Should the code simply read the value of the gyro and discard it while driving forward for 5 seconds? Should the code make sure the robot drives straight? Should the code drive straight ahead, turn 90 degrees, then drive straight ahead again? In engineering requirements are key. We cannot help you if we don’t know what you need help with.
Mike
I know what the best bennifit of a gyro is (in my mind)… I consider it a backup device… using it with your counter you can make a very sound auton. program. I am searching through my programs last year to find an example of what I am talking about but my programs are on my old computer so when I backed them up on CD’s they got thrown all over the place.
Basically it would work like this…
you could use a go-sub like this
Gyrocounter:
if sensor1 > 130 then Gyro1: 'Gyro Sensor Clockwise
if sensor1 < 128 then Gyro2: 'Gyro Sensor Counterclockwise
Goto Gyro3:
Gyro1:
cont = cont + sensor1 - 129
Goto Gyro3:
Gyro2:
cont = cont + sensor1 - 129
Gyro3:
Pass:
Return
Then incorperate your code like this…
Right_Gyro:
gosub gyrocounter
if cont < 32000 then
relay1_fwd = 1 'Two Wheel Drive On
relay1_rev = 0 'Four Wheel Drive Off
endif
On indc goto RGyro, RGyro1, RGyro2, RGyro3, RGyro4
RGyro: 'Half Circle
p1_y = 175 'Right Front Wheel Forward
p2_x = 175 'Right Rear Wheel Forward
p2_y = 250 'Left Front Wheel Forward
p3_x = 250 'Left Rear Wheel Forward
If cont > 37800 then RGyro1
Goto Main:
RGyro1: 'Half Circle
indc = 1
relay1_fwd = 0 'Two Wheel Drive Off
relay1_rev = 1 'Four Wheel Drive On
p1_y = 175 'Right Front Wheel Forward
p2_x = 175 'Right Rear Wheel Forward
p2_y = 250 'Left Front Wheel Forward
p3_x = 250 'Left Rear Wheel Forward
If cont > 38200 then cycle = 0
If cont > 38200 then goto RGyro2
Goto Main:
RGyro2: 'Straight Forward
indc = 2
p1_y = 253 'Right Front Wheel Forward
p2_x = 253 'Right Rear Wheel Forward
p2_y = 253 'Left Front Wheel Forward
p3_x = 253 'Left Rear Wheel Forward
If cycle >= 130 then RGyro3
Goto Main:
RGyro3:
indc = 3
p1_y = 127 'Right Front Wheel Stop
p2_x = 127 'Right Rear Wheel Stop
p2_y = 127 'Left Front Wheel Stop
p3_x = 127 'Left Rear Wheel Stop
If cycle >= 140 then RGyro4
You can get the basic idea on how to program a gyro (id the variabales)
REMEMBER
This is pbasic coding you will need to convert it into C for this years controller… on Innovation they have the “pamphlet” they created to show you how to do many of these functions… I will work on making some C programming for a gyro but I have many other things to work on for my team so I do not know how productive I will be…
If you need help with the coding give me something to work with… a general idea is hard to show you what you want but if you give me a very spacific idea I would be more than happy to help you out ne way I can.
If you need the help contact me…
AOL IM- GregTheGreat04 (no spaces)
E-mail- g.ullstam@comcast.net
Good Luck,
-Greg The Great