root / demos / joystick / src / joystick / simple_slave / slave.c @ 1742
History | View | Annotate | Download (1.9 KB)
| 1 | #include <dragonfly_lib.h> |
|---|---|
| 2 | #include <wireless.h> |
| 3 | #include "../../common/colonet_defs.h" |
| 4 | |
| 5 | /* 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 | void packet_receive (char type, int source, unsigned char* packet, int length); |
| 17 | |
| 18 | PacketGroupHandler packetHandler = {WL_CNTL_GROUP, NULL, NULL, &packet_receive, NULL};
|
| 19 | |
| 20 | int main (void) { |
| 21 | dragonfly_init(SERIAL | USB | COMM | ORB | ANALOG | MOTORS | BUZZER); |
| 22 | ADCSRA = _BV(ADEN) | _BV(ADPS2) | _BV(ADPS1) | _BV(ADPS0); |
| 23 | wl_init(); |
| 24 | wl_register_packet_group(&packetHandler); |
| 25 | orb_set_color(PURPLE); |
| 26 | |
| 27 | while (1) { |
| 28 | wl_do(); |
| 29 | delay_ms(100);
|
| 30 | } |
| 31 | } |
| 32 | |
| 33 | void packet_receive (char type, int source, unsigned char* packet, int length) { |
| 34 | switch (type) {
|
| 35 | case CNTL_FORWARD: |
| 36 | orb_set_color(GREEN); |
| 37 | motor1_set(1, 250); |
| 38 | motor2_set(1, 250); |
| 39 | break;
|
| 40 | case CNTL_STOP: |
| 41 | orb_set_color(RED); |
| 42 | motor1_set(0, 0); |
| 43 | motor2_set(0, 0); |
| 44 | break;
|
| 45 | case CNTL_BACK: |
| 46 | orb_set_color(BLUE); |
| 47 | motor1_set(0, 250); |
| 48 | motor2_set(0, 250); |
| 49 | break;
|
| 50 | case CNTL_LEFT: |
| 51 | orb_set_color(ORANGE); |
| 52 | motor1_set(0, 250); |
| 53 | motor2_set(1, 250); |
| 54 | break;
|
| 55 | case CNTL_RIGHT: |
| 56 | orb_set_color(YELLOW); |
| 57 | motor1_set(1, 250); |
| 58 | motor2_set(0, 250); |
| 59 | break;
|
| 60 | case CNTL_BUZZ0: |
| 61 | orb_set_color(PURPLE); |
| 62 | buzzer_chirp(1000, C5);
|
| 63 | break;
|
| 64 | case CNTL_BUZZ1: |
| 65 | 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 | } |
| 75 |