Revision 1424
Includes working naive version of Target Practice
main.c | ||
---|---|---|
1 | 1 |
#include <dragonfly_lib.h> |
2 |
#include <encoders.h> |
|
2 | 3 |
|
3 | 4 |
int main(void) |
4 | 5 |
{ |
5 | 6 |
|
7 |
int maxBOM, rangeVal; |
|
8 |
|
|
6 | 9 |
dragonfly_init(ALL_ON); |
10 |
encoders_init(); |
|
7 | 11 |
|
8 |
int i, j, max = -1; |
|
9 |
int vals[16]; |
|
10 |
|
|
11 |
orbs_set_color(RED, RED); |
|
12 |
delay_ms(2000); |
|
12 |
orbs_set_color(GREEN, RED); |
|
13 |
delay_ms(500); |
|
14 |
orbs_set_color(RED, GREEN); |
|
15 |
delay_ms(500); |
|
13 | 16 |
orbs_set_color(GREEN, GREEN); |
14 | 17 |
|
15 | 18 |
while (1) { |
16 |
|
|
17 |
/* Refresh and make sure the table is updated */ |
|
19 |
|
|
18 | 20 |
bom_refresh(BOM_ALL); |
19 | 21 |
delay_ms(100); |
22 |
maxBOM = bom_get_max(); |
|
23 |
usb_puti(maxBOM); |
|
24 |
usb_putc('\n'); |
|
25 |
if (maxBOM == 4) { |
|
26 |
motors_off(); |
|
27 |
break; |
|
28 |
} |
|
20 | 29 |
|
21 |
/* Record values into an array */ |
|
22 |
for (i = 0; i < 16; i++) { |
|
23 |
vals[i] = bom_get(i); |
|
24 |
if (max < vals[i]) |
|
25 |
max = vals[i]; |
|
30 |
motor_l_set(BACKWARD, 175); |
|
31 |
motor_r_set(FORWARD, 175); |
|
32 |
|
|
33 |
} |
|
34 |
|
|
35 |
while (1) { |
|
36 |
|
|
37 |
rangeVal = range_read_distance(IR2); |
|
38 |
usb_puti(rangeVal); |
|
39 |
usb_putc('\n'); |
|
40 |
if (rangeVal < 500 && rangeVal > 20) { |
|
41 |
motors_off(); |
|
42 |
orbs_set_color(RED, RED); |
|
43 |
break; |
|
26 | 44 |
} |
27 | 45 |
|
28 |
/* Display results */ |
|
29 |
for (i = 0; i < 16; i++) { |
|
30 |
|
|
31 |
usb_puti(vals[i]); |
|
32 |
usb_putc('\t'); |
|
46 |
motor_l_set(FORWARD, 175); |
|
47 |
motor_r_set(FORWARD, 175); |
|
33 | 48 |
|
34 |
for (j = 0; j < (int)((max - vals[i]) / 5); j++) { |
|
35 |
usb_putc('#'); |
|
36 |
} |
|
49 |
} |
|
37 | 50 |
|
38 |
usb_putc('\n');
|
|
51 |
button2_wait();
|
|
39 | 52 |
|
53 |
motor_l_set(FORWARD, 175); |
|
54 |
motor_r_set(FORWARD, 175); |
|
55 |
|
|
56 |
while (1) { |
|
57 |
if (encoder_get_x(LEFT) > 500) { |
|
58 |
motors_off(); |
|
59 |
break; |
|
40 | 60 |
} |
61 |
} |
|
41 | 62 |
|
42 |
usb_puts("Max: "); |
|
43 |
usb_puti(bom_get_max()); |
|
44 |
usb_putc('\n'); |
|
45 |
usb_putc('\n'); |
|
63 |
while (1) { |
|
46 | 64 |
|
47 |
delay_ms(400); |
|
65 |
orbs_set_color(BLUE, GREEN); |
|
66 |
delay_ms(500); |
|
67 |
orbs_set_color(GREEN, BLUE); |
|
68 |
delay_ms(500); |
|
48 | 69 |
|
49 | 70 |
} |
50 | 71 |
|
72 |
while (1); /* END HERE */ |
|
73 |
|
|
51 | 74 |
return 0; |
52 | 75 |
} |
53 | 76 |
|
Also available in: Unified diff