Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed
main.cpp@2:054c41590f3f, 2015-03-26 (annotated)
- Committer:
- fraserhmbed
- Date:
- Thu Mar 26 15:52:33 2015 +0000
- Revision:
- 2:054c41590f3f
- Parent:
- 1:c4af0bbe20b9
bluetooth command top level
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| fraserhmbed | 0:f54028dab58f | 1 | |
| fraserhmbed | 0:f54028dab58f | 2 | /* what target am i at? |
| fraserhmbed | 0:f54028dab58f | 3 | wait for input from phone |
| fraserhmbed | 0:f54028dab58f | 4 | if input is 1 or 2 then return number to choose target choice function which then fires at target |
| fraserhmbed | 0:f54028dab58f | 5 | did i hit the target? |
| fraserhmbed | 0:f54028dab58f | 6 | wait for input from phone |
| fraserhmbed | 0:f54028dab58f | 7 | if input is yes then go back to maze navigation function |
| fraserhmbed | 0:f54028dab58f | 8 | if input is no then try again |
| fraserhmbed | 0:f54028dab58f | 9 | ********************************************************** */ |
| fraserhmbed | 0:f54028dab58f | 10 | |
| Dbee16 | 1:c4af0bbe20b9 | 11 | #include "mbed.h" |
| Dbee16 | 1:c4af0bbe20b9 | 12 | |
| fraserhmbed | 0:f54028dab58f | 13 | Serial blue(PTC4,PTC3); |
| fraserhmbed | 0:f54028dab58f | 14 | DigitalOut led(LED1); |
| fraserhmbed | 0:f54028dab58f | 15 | |
| fraserhmbed | 2:054c41590f3f | 16 | |
| fraserhmbed | 2:054c41590f3f | 17 | void manual_mode() |
| fraserhmbed | 2:054c41590f3f | 18 | { |
| fraserhmbed | 2:054c41590f3f | 19 | while( blue.readable() ) |
| fraserhmbed | 2:054c41590f3f | 20 | int direction = 0x11; |
| fraserhmbed | 2:054c41590f3f | 21 | unsigned char rem_dir; //remote_direction |
| fraserhmbed | 2:054c41590f3f | 22 | |
| fraserhmbed | 2:054c41590f3f | 23 | blue.printf("Thanks, calculating it now, you entered %c\n",rem_dir); |
| fraserhmbed | 2:054c41590f3f | 24 | if( ( rem_dir == 'f') ) { |
| fraserhmbed | 2:054c41590f3f | 25 | direction = 0x11; |
| fraserhmbed | 2:054c41590f3f | 26 | blue.printf("You wanted to go straight\n"); |
| fraserhmbed | 2:054c41590f3f | 27 | switch (rem_dir) { |
| fraserhmbed | 2:054c41590f3f | 28 | |
| fraserhmbed | 2:054c41590f3f | 29 | case('f'): |
| fraserhmbed | 2:054c41590f3f | 30 | direction = 0x11; |
| fraserhmbed | 2:054c41590f3f | 31 | blue.printf("You wanted to go straight\n"); |
| fraserhmbed | 2:054c41590f3f | 32 | break; |
| fraserhmbed | 2:054c41590f3f | 33 | case( 'b' ) : |
| fraserhmbed | 2:054c41590f3f | 34 | direction = 0x00; |
| fraserhmbed | 2:054c41590f3f | 35 | blue.printf("You wanted to go backwards\n"); |
| fraserhmbed | 2:054c41590f3f | 36 | break; |
| fraserhmbed | 2:054c41590f3f | 37 | case( 'l' ) : |
| fraserhmbed | 2:054c41590f3f | 38 | |
| fraserhmbed | 2:054c41590f3f | 39 | direction = 0x01; |
| fraserhmbed | 2:054c41590f3f | 40 | blue.printf("You wanted to spin anti-clockwise\n"); |
| fraserhmbed | 2:054c41590f3f | 41 | |
| fraserhmbed | 2:054c41590f3f | 42 | break; |
| fraserhmbed | 2:054c41590f3f | 43 | case ('r') : |
| fraserhmbed | 2:054c41590f3f | 44 | |
| fraserhmbed | 2:054c41590f3f | 45 | direction = 0x10; |
| fraserhmbed | 2:054c41590f3f | 46 | blue.printf("You wanted to spin clockwise\n"); |
| fraserhmbed | 2:054c41590f3f | 47 | break; |
| fraserhmbed | 2:054c41590f3f | 48 | case ('s') : |
| fraserhmbed | 2:054c41590f3f | 49 | motor_r.write(0); |
| fraserhmbed | 2:054c41590f3f | 50 | motor_l.write(0); |
| fraserhmbed | 2:054c41590f3f | 51 | blue.printf("Stopping now.\n"); |
| fraserhmbed | 2:054c41590f3f | 52 | break; |
| fraserhmbed | 2:054c41590f3f | 53 | } |
| fraserhmbed | 2:054c41590f3f | 54 | if ( (rem_dir == 'b' ) ) { |
| fraserhmbed | 2:054c41590f3f | 55 | |
| fraserhmbed | 2:054c41590f3f | 56 | direction = 0x00; |
| fraserhmbed | 2:054c41590f3f | 57 | blue.printf("You wanted to go backwards\n"); |
| fraserhmbed | 2:054c41590f3f | 58 | } |
| fraserhmbed | 2:054c41590f3f | 59 | if ( (rem_dir == 'l' ) ) { |
| fraserhmbed | 2:054c41590f3f | 60 | |
| fraserhmbed | 2:054c41590f3f | 61 | direction = 0x01; |
| fraserhmbed | 2:054c41590f3f | 62 | blue.printf("You wanted to spin anti-clockwise\n"); |
| fraserhmbed | 2:054c41590f3f | 63 | |
| fraserhmbed | 2:054c41590f3f | 64 | } |
| fraserhmbed | 2:054c41590f3f | 65 | if ( (rem_dir == 'r' ) ) { |
| fraserhmbed | 2:054c41590f3f | 66 | |
| fraserhmbed | 2:054c41590f3f | 67 | direction = 0x10; |
| fraserhmbed | 2:054c41590f3f | 68 | blue.printf("You wanted to spin clockwise\n"); |
| fraserhmbed | 2:054c41590f3f | 69 | } |
| fraserhmbed | 2:054c41590f3f | 70 | if (rem_dir =='s') { |
| fraserhmbed | 2:054c41590f3f | 71 | |
| fraserhmbed | 2:054c41590f3f | 72 | motor_r.write(0); |
| fraserhmbed | 2:054c41590f3f | 73 | motor_l.write(0); |
| fraserhmbed | 2:054c41590f3f | 74 | blue.printf("STAAAAHP\n"); |
| fraserhmbed | 2:054c41590f3f | 75 | } else { |
| fraserhmbed | 2:054c41590f3f | 76 | wait(0.1); |
| fraserhmbed | 2:054c41590f3f | 77 | wait(0.1); |
| fraserhmbed | 2:054c41590f3f | 78 | blue.printf("What duty left?\n"); |
| fraserhmbed | 2:054c41590f3f | 79 | while ( blue.readable()==0 ) {} // loops until there is an input from the user |
| fraserhmbed | 2:054c41590f3f | 80 | char l_speed = blue.getc(); |
| fraserhmbed | 2:054c41590f3f | 81 | int l_result = l_speed - '0'; |
| fraserhmbed | 2:054c41590f3f | 82 | int r_result = r_speed - '0'; |
| fraserhmbed | 2:054c41590f3f | 83 | set_direction(direction, (float)l_result/10, (float)r_result/10); |
| fraserhmbed | 2:054c41590f3f | 84 | } |
| fraserhmbed | 2:054c41590f3f | 85 | |
| fraserhmbed | 2:054c41590f3f | 86 | } |
| fraserhmbed | 2:054c41590f3f | 87 | |
| fraserhmbed | 2:054c41590f3f | 88 | } |
| fraserhmbed | 2:054c41590f3f | 89 | |
| fraserhmbed | 2:054c41590f3f | 90 | } |
| fraserhmbed | 2:054c41590f3f | 91 | |
| fraserhmbed | 2:054c41590f3f | 92 | } |
| fraserhmbed | 2:054c41590f3f | 93 | |
| fraserhmbed | 2:054c41590f3f | 94 | |
| fraserhmbed | 2:054c41590f3f | 95 | |
| Dbee16 | 1:c4af0bbe20b9 | 96 | // which target are we at? |
| fraserhmbed | 2:054c41590f3f | 97 | void TargetChoice() |
| Dbee16 | 1:c4af0bbe20b9 | 98 | { |
| Dbee16 | 1:c4af0bbe20b9 | 99 | |
| fraserhmbed | 0:f54028dab58f | 100 | blue.printf("Which target am I at?"); // ask user question |
| fraserhmbed | 0:f54028dab58f | 101 | char TargetIn = blue.getc(); // assign user input to TargetIn |
| fraserhmbed | 2:054c41590f3f | 102 | int command=0; |
| Dbee16 | 1:c4af0bbe20b9 | 103 | |
| Dbee16 | 1:c4af0bbe20b9 | 104 | while(command==0) { // loop until a command has been given |
| Dbee16 | 1:c4af0bbe20b9 | 105 | switch (TargetIn) { // input is either 1 or 2 in DECIMAL |
| fraserhmbed | 0:f54028dab58f | 106 | case 0x31: // if target 1 |
| fraserhmbed | 2:054c41590f3f | 107 | closetarget(); // |
| fraserhmbed | 0:f54028dab58f | 108 | command = 1; // exit while |
| Dbee16 | 1:c4af0bbe20b9 | 109 | break; |
| fraserhmbed | 0:f54028dab58f | 110 | case 0x32: // if target 2 |
| fraserhmbed | 2:054c41590f3f | 111 | fartarget(); // return 2 to ball firing or call ball fire 2 |
| fraserhmbed | 0:f54028dab58f | 112 | command = 1; // exit while |
| Dbee16 | 1:c4af0bbe20b9 | 113 | break; |
| Dbee16 | 1:c4af0bbe20b9 | 114 | } |
| fraserhmbed | 0:f54028dab58f | 115 | } |
| fraserhmbed | 0:f54028dab58f | 116 | } |
| fraserhmbed | 0:f54028dab58f | 117 | |
| fraserhmbed | 0:f54028dab58f | 118 | // did we hit the target |
| Dbee16 | 1:c4af0bbe20b9 | 119 | int SuccessCheck() |
| Dbee16 | 1:c4af0bbe20b9 | 120 | { |
| Dbee16 | 1:c4af0bbe20b9 | 121 | |
| fraserhmbed | 0:f54028dab58f | 122 | blue.printf("Did I hit the target?"); // ask user question |
| fraserhmbed | 0:f54028dab58f | 123 | char SuccessIn = blue.getc(); // assign user input to SuccessIn |
| fraserhmbed | 0:f54028dab58f | 124 | int command=0, success=0; |
| Dbee16 | 1:c4af0bbe20b9 | 125 | |
| fraserhmbed | 0:f54028dab58f | 126 | while(command==0) { // loop until a command has been given |
| fraserhmbed | 0:f54028dab58f | 127 | switch (SuccessIn) { // input either y (0x79) or n (0x6E) |
| Dbee16 | 1:c4af0bbe20b9 | 128 | case 0x79: // if input is y |
| Dbee16 | 1:c4af0bbe20b9 | 129 | success=1; // return 1 directs to go back to the maze and locate next target |
| fraserhmbed | 0:f54028dab58f | 130 | command = 1; |
| Dbee16 | 1:c4af0bbe20b9 | 131 | break; |
| Dbee16 | 1:c4af0bbe20b9 | 132 | |
| fraserhmbed | 0:f54028dab58f | 133 | case 0x6E: // if input is n |
| Dbee16 | 1:c4af0bbe20b9 | 134 | success=0; // return 0 to go back to trying to hit the target |
| fraserhmbed | 0:f54028dab58f | 135 | command = 1; |
| Dbee16 | 1:c4af0bbe20b9 | 136 | break; |
| Dbee16 | 1:c4af0bbe20b9 | 137 | } |
| Dbee16 | 1:c4af0bbe20b9 | 138 | |
| fraserhmbed | 0:f54028dab58f | 139 | } |
| Dbee16 | 1:c4af0bbe20b9 | 140 | return success; |
| Dbee16 | 1:c4af0bbe20b9 | 141 | } |
| Dbee16 | 1:c4af0bbe20b9 | 142 | |
| fraserhmbed | 0:f54028dab58f | 143 | //main bluetooth operation function |
| Dbee16 | 1:c4af0bbe20b9 | 144 | void MazeBluetoothing() |
| Dbee16 | 1:c4af0bbe20b9 | 145 | { |
| Dbee16 | 1:c4af0bbe20b9 | 146 | |
| Dbee16 | 1:c4af0bbe20b9 | 147 | // int bluetooth=0; does this still initialise int bluetooth to 0? for the while loop? |
| Dbee16 | 1:c4af0bbe20b9 | 148 | while(int bluetooth=0) { |
| Dbee16 | 1:c4af0bbe20b9 | 149 | |
| Dbee16 | 1:c4af0bbe20b9 | 150 | int target = TargetChoice(); // call target choosing function |
| Dbee16 | 1:c4af0bbe20b9 | 151 | |
| Dbee16 | 1:c4af0bbe20b9 | 152 | // if target = 1 then call function to fire at target 1, if target = 2 then call fire function 2 |
| Dbee16 | 1:c4af0bbe20b9 | 153 | switch (target) { |
| Dbee16 | 1:c4af0bbe20b9 | 154 | case 1: |
| Dbee16 | 1:c4af0bbe20b9 | 155 | //call target 1 function |
| Dbee16 | 1:c4af0bbe20b9 | 156 | break; |
| fraserhmbed | 0:f54028dab58f | 157 | |
| Dbee16 | 1:c4af0bbe20b9 | 158 | case 2: |
| Dbee16 | 1:c4af0bbe20b9 | 159 | //call target 2 function |
| Dbee16 | 1:c4af0bbe20b9 | 160 | break; |
| Dbee16 | 1:c4af0bbe20b9 | 161 | } |
| Dbee16 | 1:c4af0bbe20b9 | 162 | int success = SuccessCheck(); |
| Dbee16 | 1:c4af0bbe20b9 | 163 | |
| Dbee16 | 1:c4af0bbe20b9 | 164 | // if success is 0, then reposition & go back to start of bluetoothing() |
| Dbee16 | 1:c4af0bbe20b9 | 165 | switch (success) { |
| Dbee16 | 1:c4af0bbe20b9 | 166 | case 0: |
| Dbee16 | 1:c4af0bbe20b9 | 167 | // call repositioning functionthen break to go back to loop of bluetoothing |
| Dbee16 | 1:c4af0bbe20b9 | 168 | break; |
| Dbee16 | 1:c4af0bbe20b9 | 169 | |
| Dbee16 | 1:c4af0bbe20b9 | 170 | case 1: |
| Dbee16 | 1:c4af0bbe20b9 | 171 | bluetooth=1; |
| Dbee16 | 1:c4af0bbe20b9 | 172 | break; |
| Dbee16 | 1:c4af0bbe20b9 | 173 | |
| Dbee16 | 1:c4af0bbe20b9 | 174 | } |
| Dbee16 | 1:c4af0bbe20b9 | 175 | } |
| fraserhmbed | 0:f54028dab58f | 176 | } |
| fraserhmbed | 0:f54028dab58f | 177 | |
| fraserhmbed | 0:f54028dab58f | 178 | |
| fraserhmbed | 0:f54028dab58f | 179 | //motor select pins |
| fraserhmbed | 0:f54028dab58f | 180 | DigitalOut motor_lf(PTE2); |
| fraserhmbed | 0:f54028dab58f | 181 | DigitalOut motor_lb(PTE3); |
| fraserhmbed | 0:f54028dab58f | 182 | DigitalOut motor_rf(PTE4); |
| fraserhmbed | 0:f54028dab58f | 183 | DigitalOut motor_rb(PTE5); |
| fraserhmbed | 0:f54028dab58f | 184 | |
| fraserhmbed | 0:f54028dab58f | 185 | //Frequency of Pulse Width Modulated signal in Hz |
| fraserhmbed | 0:f54028dab58f | 186 | #define PWM_FREQ 1000 |
| fraserhmbed | 0:f54028dab58f | 187 | |
| fraserhmbed | 0:f54028dab58f | 188 | //PWM pin (Enable 1 and 2) |
| fraserhmbed | 0:f54028dab58f | 189 | PwmOut motor_l (PTC2); |
| fraserhmbed | 0:f54028dab58f | 190 | PwmOut motor_r (PTE29); |
| fraserhmbed | 0:f54028dab58f | 191 | |
| fraserhmbed | 0:f54028dab58f | 192 | //LED to test |
| fraserhmbed | 0:f54028dab58f | 193 | DigitalOut myled(LED_BLUE); |
| fraserhmbed | 0:f54028dab58f | 194 | |
| Dbee16 | 1:c4af0bbe20b9 | 195 | void SpinFunct() |
| Dbee16 | 1:c4af0bbe20b9 | 196 | { |
| fraserhmbed | 0:f54028dab58f | 197 | //Set PWM frequency to 1000Hz |
| fraserhmbed | 0:f54028dab58f | 198 | motor_l.period( 1.0f / (float) PWM_FREQ); |
| fraserhmbed | 0:f54028dab58f | 199 | motor_r.period( 1.0f / (float) PWM_FREQ); |
| fraserhmbed | 0:f54028dab58f | 200 | //Initialise direction to nothing. |
| fraserhmbed | 0:f54028dab58f | 201 | motor_rf=0; |
| fraserhmbed | 0:f54028dab58f | 202 | motor_rb=0; |
| fraserhmbed | 0:f54028dab58f | 203 | motor_lf=0; |
| Dbee16 | 1:c4af0bbe20b9 | 204 | motor_lb=0; |
| fraserhmbed | 0:f54028dab58f | 205 | led=1; |
| fraserhmbed | 0:f54028dab58f | 206 | set_direction(0x10, 0.5, 0.3); //robot spins to the right, 80% right forward ; 20% left backward |
| Dbee16 | 1:c4af0bbe20b9 | 207 | wait(5); |
| Dbee16 | 1:c4af0bbe20b9 | 208 | led=0; |
| Dbee16 | 1:c4af0bbe20b9 | 209 | |
| fraserhmbed | 0:f54028dab58f | 210 | } |
| fraserhmbed | 0:f54028dab58f | 211 | |
| fraserhmbed | 2:054c41590f3f | 212 | // cant send 10 in ascii or in hex as they |
| Dbee16 | 1:c4af0bbe20b9 | 213 | /* |
| fraserhmbed | 0:f54028dab58f | 214 | |
| Dbee16 | 1:c4af0bbe20b9 | 215 | send 11, 0.5, 0.2 in one string |
| Dbee16 | 1:c4af0bbe20b9 | 216 | for the floats, it will send (num)(point)(num) ef 0.3 = 30, 2E, 33 |
| Dbee16 | 1:c4af0bbe20b9 | 217 | all in ASCII remember |
| Dbee16 | 1:c4af0bbe20b9 | 218 | |
| Dbee16 | 1:c4af0bbe20b9 | 219 | so for: |
| Dbee16 | 1:c4af0bbe20b9 | 220 | 11 0.5 0.2 |
| Dbee16 | 1:c4af0bbe20b9 | 221 | it will send: |
| Dbee16 | 1:c4af0bbe20b9 | 222 | 31 31 20 30 2e 35 20 30 2e 32 |
| Dbee16 | 1:c4af0bbe20b9 | 223 | |
| Dbee16 | 1:c4af0bbe20b9 | 224 | sending 313120302e3520302e32 would cause a stack overload |
| Dbee16 | 1:c4af0bbe20b9 | 225 | |
| Dbee16 | 1:c4af0bbe20b9 | 226 | going to have to split the user into 3 different lines of tx |
| Dbee16 | 1:c4af0bbe20b9 | 227 | |
| Dbee16 | 1:c4af0bbe20b9 | 228 | so it'd be simpler too but more difficult for the user to control. |
| Dbee16 | 1:c4af0bbe20b9 | 229 | might need to add in a "for how long for?" function that will only drive the motors for a short period of time |
| fraserhmbed | 0:f54028dab58f | 230 | |
| Dbee16 | 1:c4af0bbe20b9 | 231 | user would have to be knowledgeable of the set direction function aka get daniel to do the demonstration |
| Dbee16 | 1:c4af0bbe20b9 | 232 | |
| Dbee16 | 1:c4af0bbe20b9 | 233 | so then user sends: direction 11,10,01; speed 0.2,0.5,0.7; angle 0.2,0.4,0.8; time 1,2,3,4; |
| Dbee16 | 1:c4af0bbe20b9 | 234 | |
| Dbee16 | 1:c4af0bbe20b9 | 235 | yes it is slow, but it allows for exact computation of distance, speed and angle |
| Dbee16 | 1:c4af0bbe20b9 | 236 | |
| Dbee16 | 1:c4af0bbe20b9 | 237 | so 1 function with 4 different while loops |
| fraserhmbed | 0:f54028dab58f | 238 | |
| Dbee16 | 1:c4af0bbe20b9 | 239 | while user has not input a direction, loop again |
| Dbee16 | 1:c4af0bbe20b9 | 240 | |
| Dbee16 | 1:c4af0bbe20b9 | 241 | one function : remote control |
| Dbee16 | 1:c4af0bbe20b9 | 242 | */ |
| fraserhmbed | 0:f54028dab58f | 243 | |
| Dbee16 | 1:c4af0bbe20b9 | 244 | int main() |
| Dbee16 | 1:c4af0bbe20b9 | 245 | { |
| Dbee16 | 1:c4af0bbe20b9 | 246 | |
| Dbee16 | 1:c4af0bbe20b9 | 247 | int spin[4] = {0x73, 0x70, 0x69, 0x6e}; |
| fraserhmbed | 0:f54028dab58f | 248 | int ctrl[4] = {0x63, 0x74, 0x72, 0x6c}; |
| fraserhmbed | 0:f54028dab58f | 249 | int maze[4] = {0x6d, 0x61, 0x7a, 0x65}; |
| fraserhmbed | 0:f54028dab58f | 250 | unsigned char x[4]; |
| fraserhmbed | 0:f54028dab58f | 251 | |
| fraserhmbed | 2:054c41590f3f | 252 | |
| fraserhmbed | 2:054c41590f3f | 253 | //Set PWM frequency to 1000Hz |
| fraserhmbed | 2:054c41590f3f | 254 | motor_rb=0; |
| fraserhmbed | 2:054c41590f3f | 255 | motor_lf=0; |
| fraserhmbed | 2:054c41590f3f | 256 | motor_lb=0; |
| fraserhmbed | 2:054c41590f3f | 257 | |
| fraserhmbed | 0:f54028dab58f | 258 | while (1) { |
| fraserhmbed | 0:f54028dab58f | 259 | blue.printf("What will I do?\n"); // ask user question |
| fraserhmbed | 0:f54028dab58f | 260 | while (blue.readable()==0) {} // loops until there is an input from the user |
| Dbee16 | 1:c4af0bbe20b9 | 261 | |
| Dbee16 | 1:c4af0bbe20b9 | 262 | for(int i=0; i<4; i++) { |
| Dbee16 | 1:c4af0bbe20b9 | 263 | x[i] = blue.getc(); //Store incoming response into array |
| Dbee16 | 1:c4af0bbe20b9 | 264 | } |
| Dbee16 | 1:c4af0bbe20b9 | 265 | |
| fraserhmbed | 2:054c41590f3f | 266 | int FindSpin=0, FindCtrl=0, FindMaze=0; |
| fraserhmbed | 0:f54028dab58f | 267 | |
| Dbee16 | 1:c4af0bbe20b9 | 268 | for(int s=0; s<4; s++) { |
| Dbee16 | 1:c4af0bbe20b9 | 269 | if (x[s]==spin[s]) { |
| Dbee16 | 1:c4af0bbe20b9 | 270 | FindSpin++; |
| Dbee16 | 1:c4af0bbe20b9 | 271 | } |
| fraserhmbed | 2:054c41590f3f | 272 | |
| Dbee16 | 1:c4af0bbe20b9 | 273 | if (x[s]==ctrl[s]) { |
| Dbee16 | 1:c4af0bbe20b9 | 274 | FindCtrl++; |
| Dbee16 | 1:c4af0bbe20b9 | 275 | } |
| Dbee16 | 1:c4af0bbe20b9 | 276 | if (x[s]==maze[s]) { |
| Dbee16 | 1:c4af0bbe20b9 | 277 | FindMaze++; |
| Dbee16 | 1:c4af0bbe20b9 | 278 | } |
| fraserhmbed | 0:f54028dab58f | 279 | } |
| Dbee16 | 1:c4af0bbe20b9 | 280 | |
| Dbee16 | 1:c4af0bbe20b9 | 281 | if (FindSpin==4) { |
| Dbee16 | 1:c4af0bbe20b9 | 282 | SpinFunct(); |
| Dbee16 | 1:c4af0bbe20b9 | 283 | } |
| fraserhmbed | 2:054c41590f3f | 284 | |
| fraserhmbed | 2:054c41590f3f | 285 | if (FindCtrl==4) { |
| fraserhmbed | 2:054c41590f3f | 286 | manual_mode() ; |
| Dbee16 | 1:c4af0bbe20b9 | 287 | } |
| fraserhmbed | 2:054c41590f3f | 288 | |
| Dbee16 | 1:c4af0bbe20b9 | 289 | if (FindMaze==4) { |
| Dbee16 | 1:c4af0bbe20b9 | 290 | led=1; |
| Dbee16 | 1:c4af0bbe20b9 | 291 | wait(4); |
| Dbee16 | 1:c4af0bbe20b9 | 292 | led=0; |
| Dbee16 | 1:c4af0bbe20b9 | 293 | } |
| fraserhmbed | 0:f54028dab58f | 294 | } |
| fraserhmbed | 2:054c41590f3f | 295 | } |