Chief Delphi

Chief Delphi (http://www.chiefdelphi.com/forums/index.php)
-   Programming (http://www.chiefdelphi.com/forums/forumdisplay.php?f=51)
-   -   More than 1 autonomos... (http://www.chiefdelphi.com/forums/showthread.php?t=65813)

Jimmy_Team7011 13-03-2008 11:24

More than 1 autonomos...
 
It might be such a dumb question, but at the last competition here there were some teams with more than one autonomos programing , and then, they placed jumpers interrupts in the vex rc to change between these programs, is that possible to do , or were they just trying to make us fool?


If there is any way to do it, how?

whitetiger0990 13-03-2008 13:00

Re: More than 1 autonomos...
 
Yup, we did this last year for FRC and just plain old C, but the logic should be the same, and it's good to understand the logic. We had a lot of digital ports opens, we wired up some pwms to a DIP switch and put it on the digital ports.
Code:

Auto_Mode=RC_dip_8;
Auto_Mode=(Auto_Mode << 1) | RC_dip_7;
Auto_Mode=(Auto_Mode << 1) | RC_dip_6;
Auto_Mode=(Auto_Mode << 1) | RC_dip_5;
Auto_Mode=(Auto_Mode << 1) | RC_dip_4;
Auto_Mode=(Auto_Mode << 1) | RC_dip_3;
Auto_Mode=(Auto_Mode << 1) | RC_dip_2;
Auto_Mode=(Auto_Mode << 1) | RC_dip_1;

Basically with 8 switches, you could have 256 possibilities of autonomous modes. The << shifts all the bits in the number left one (basically multiplying the number by 2), and then ORing it with the next switch. In the end you have a char (a number which is 1 byte long, or 8 bits) and 8 switches, each one controlling one of the bits. So by having the switches flipped in different combinations, you have a range from 0 to 255. From that number you can switch statement or just if statements to control what the bot does.

We had no use for that many, but we had the space for it. The number of options you can have is 2 raise to the number of switches used. =)

thefro526 13-03-2008 18:08

Re: More than 1 autonomos...
 
A real easy way to do it in EasyC is to use some code like this.

If Digital Input == 1
Do stuff
Else If Digital Input == 0
Do other stuff

and so on and so forth

Jimmy_Team7011 16-03-2008 12:18

Re: More than 1 autonomos...
 
Oh...so its possible.....but i couldnt understand how to do it....could sb explain?



thanks

DonRotolo 16-03-2008 13:55

Re: More than 1 autonomos...
 
Um, I think they just did.

Let's say that in Autonomous 1 you want the robot to turn left, and Autonomous 2 you want it to turn right.

Code:

If (Digital_input_1 = 1) then
    [Code to turn left]
EndIf
If (Digital_input_2 = 1) then
    [Code to turn right]
EndIf

Now, you need to think more about this, because what happens if there are jumpers on both inputs 1 and 2? (someone forgot and put both on). And a lot of IF statements might become impractical if you have 25 different autonomous modes.

Also, make sure there's always one choice for "do nothing".

Don

SL8 16-03-2008 15:33

Re: More than 1 autonomos...
 
Quote:

Originally Posted by Don Rotolo (Post 718832)
Also, make sure there's always one choice for "do nothing".
Don

THis is especially important cause otherwise youre robot will be stuck doing what ever it was supposed to do last.


All times are GMT -5. The time now is 12:38.

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