root / demos / joystick / src / joystick / simple_slave / slave.c @ 1742
History | View | Annotate | Download (1.9 KB)
1 | 687 | gtress | #include <dragonfly_lib.h> |
---|---|---|---|
2 | #include <wireless.h> |
||
3 | 1742 | emullini | #include "../../common/colonet_defs.h" |
4 | 687 | gtress | |
5 | 1354 | cmar | /* Command Types */
|
6 | #define CNTL_FORWARD 'f' |
||
7 | #define CNTL_STOP 's' |
||
8 | #define CNTL_BACK 'b' |
||
9 | #define CNTL_LEFT 'l' |
||
10 | #define CNTL_RIGHT 'r' |
||
11 | #define CNTL_BUZZ0 't' |
||
12 | #define CNTL_BUZZ1 'u' |
||
13 | |||
14 | #define WL_CNTL_GROUP 4 |
||
15 | |||
16 | 1349 | cmar | void packet_receive (char type, int source, unsigned char* packet, int length); |
17 | 687 | gtress | |
18 | 1354 | cmar | PacketGroupHandler packetHandler = {WL_CNTL_GROUP, NULL, NULL, &packet_receive, NULL}; |
19 | 687 | gtress | |
20 | int main (void) { |
||
21 | 1354 | cmar | dragonfly_init(SERIAL | USB | COMM | ORB | ANALOG | MOTORS | BUZZER); |
22 | 687 | gtress | ADCSRA = _BV(ADEN) | _BV(ADPS2) | _BV(ADPS1) | _BV(ADPS0); |
23 | 1349 | cmar | wl_init(); |
24 | wl_register_packet_group(&packetHandler); |
||
25 | 687 | gtress | orb_set_color(PURPLE); |
26 | |||
27 | 1354 | cmar | while (1) { |
28 | wl_do(); |
||
29 | delay_ms(100);
|
||
30 | } |
||
31 | 687 | gtress | } |
32 | |||
33 | 1349 | cmar | void packet_receive (char type, int source, unsigned char* packet, int length) { |
34 | switch (type) {
|
||
35 | 1354 | cmar | case CNTL_FORWARD:
|
36 | 1349 | cmar | orb_set_color(GREEN); |
37 | motor1_set(1, 250); |
||
38 | motor2_set(1, 250); |
||
39 | break;
|
||
40 | 1354 | cmar | case CNTL_STOP:
|
41 | 1349 | cmar | orb_set_color(RED); |
42 | motor1_set(0, 0); |
||
43 | motor2_set(0, 0); |
||
44 | break;
|
||
45 | 1354 | cmar | case CNTL_BACK:
|
46 | 1349 | cmar | orb_set_color(BLUE); |
47 | motor1_set(0, 250); |
||
48 | motor2_set(0, 250); |
||
49 | break;
|
||
50 | 1354 | cmar | case CNTL_LEFT:
|
51 | 1349 | cmar | orb_set_color(ORANGE); |
52 | motor1_set(0, 250); |
||
53 | motor2_set(1, 250); |
||
54 | break;
|
||
55 | 1354 | cmar | case CNTL_RIGHT:
|
56 | 1349 | cmar | orb_set_color(YELLOW); |
57 | motor1_set(1, 250); |
||
58 | motor2_set(0, 250); |
||
59 | break;
|
||
60 | 1354 | cmar | case CNTL_BUZZ0:
|
61 | 1349 | cmar | orb_set_color(PURPLE); |
62 | buzzer_chirp(1000, C5);
|
||
63 | break;
|
||
64 | 1354 | cmar | case CNTL_BUZZ1:
|
65 | 1349 | cmar | orb_set_color(YELLOW); |
66 | buzzer_chirp(1000, A4);
|
||
67 | break;
|
||
68 | default:
|
||
69 | orb_set_color(RED); |
||
70 | motor1_set(0, 0); |
||
71 | motor2_set(0, 0); |
||
72 | break;
|
||
73 | } |
||
74 | } |