Updated firmware and added better bandwidth testing
Will Brown
11 years ago
0 | #define ARM_BUTTON_PIN 12 | |
0 | 1 | #define BAD_REQUEST "BADREQUEST" |
1 | 2 | #define HEARTBEAT_PULSE "PULSE" |
2 | 3 | #define MESSAGE_TIMEOUT_CYCLES 100 |
17 | 18 | |
18 | 19 | unsigned int led_cycles = 0; |
19 | 20 | MeetAndroid bt; |
21 | bool enable_motors = true; | |
20 | 22 | |
21 | 23 | struct motor { |
22 | 24 | unsigned char pin; |
35 | 37 | */ |
36 | 38 | void write_speeds(void) { |
37 | 39 | for (int i = 0; i < MOTOR_COUNT; i++) { |
38 | motors[i].current_speed = motors[i].next_speed; | |
39 | motors[i].ctrl.write(motors[i].current_speed); | |
40 | if (enable_motors) { | |
41 | motors[i].current_speed = motors[i].next_speed; | |
42 | motors[i].ctrl.write(motors[i].current_speed); | |
43 | } else { | |
44 | motors[i].ctrl.write(MOTOR_OFF_COMMAND); | |
45 | } | |
40 | 46 | } |
41 | 47 | } |
42 | 48 | |
45 | 51 | */ |
46 | 52 | void print_speeds(void) { |
47 | 53 | for (int i = 0; i < MOTOR_COUNT; i++) { |
48 | bt.send(motors[i].current_speed); | |
54 | Serial.print(motors[i].current_speed); | |
55 | Serial.print(" "); | |
49 | 56 | } |
57 | Serial.print("\n"); | |
50 | 58 | } |
51 | 59 | |
52 | 60 | /** |
104 | 112 | motors[i].next_speed = MOTOR_OFF_COMMAND; |
105 | 113 | } |
106 | 114 | |
107 | write_speeds(); | |
108 | print_speeds(); | |
115 | //print_speeds(); | |
116 | Serial.println("done"); | |
109 | 117 | led_cycles = 0; |
110 | 118 | } |
111 | 119 | |
113 | 121 | * Wait for serial information to come in. |
114 | 122 | */ |
115 | 123 | void loop(void) { |
124 | enable_motors = digitalRead(ARM_BUTTON_PIN) == HIGH; | |
116 | 125 | bt.receive(); |
117 | 126 | |
118 | led_cycles++; | |
119 | if (led_cycles >= STATUS_LED_CYCLES) { | |
127 | write_speeds(); | |
128 | ||
129 | if (enable_motors) { | |
130 | digitalWrite(STATUS_LED, HIGH); | |
131 | } else { | |
120 | 132 | digitalWrite(STATUS_LED, LOW); |
121 | 133 | } |
122 | 134 |
0 | #!/usr/bin/env python | |
1 | ||
2 | import random, serial, time | |
3 | ||
4 | def test(flags, msgs, port='/dev/ttyUSB0'): | |
5 | s = serial.Serial(port) | |
6 | ||
7 | def send_speeds(): | |
8 | for f in flags: | |
9 | msg = "%s%d\x13" % (f, random.randint(0,100)) | |
10 | s.write(msg) | |
11 | ||
12 | t = time.time() | |
13 | [send_speeds() for i in range(msgs)] | |
14 | t = time.time() - t | |
15 | print "%f seconds for %d messages (average: %f)" % (t, msgs, t/msgs) | |
16 |
Binary diff not shown