Sille Van Landschoot
/
racing_robots
Racing Robots Session
Fork of racing_robots by
robot_logic.h@0:c0ae66a0ec7a, 2015-02-23 (annotated)
- Committer:
- dwini
- Date:
- Mon Feb 23 12:24:31 2015 +0000
- Revision:
- 0:c0ae66a0ec7a
- Child:
- 2:356bb8d99326
Define interface of pololu for racing robots.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
dwini | 0:c0ae66a0ec7a | 1 | #include "mbed.h" |
dwini | 0:c0ae66a0ec7a | 2 | #include "m3pi.h" |
dwini | 0:c0ae66a0ec7a | 3 | |
dwini | 0:c0ae66a0ec7a | 4 | #ifndef H_ROBOT_LOGIC |
dwini | 0:c0ae66a0ec7a | 5 | #define H_ROBOT_LOGIC |
dwini | 0:c0ae66a0ec7a | 6 | |
dwini | 0:c0ae66a0ec7a | 7 | //typedef enum { |
dwini | 0:c0ae66a0ec7a | 8 | // LED_1 = 0, |
dwini | 0:c0ae66a0ec7a | 9 | // LED_2 = 1, |
dwini | 0:c0ae66a0ec7a | 10 | // LED_3 = 2, |
dwini | 0:c0ae66a0ec7a | 11 | // LED_4 = 3 |
dwini | 0:c0ae66a0ec7a | 12 | // //..... |
dwini | 0:c0ae66a0ec7a | 13 | //} LedIndex; |
dwini | 0:c0ae66a0ec7a | 14 | |
dwini | 0:c0ae66a0ec7a | 15 | typedef enum { |
dwini | 0:c0ae66a0ec7a | 16 | LED_ON = 0, |
dwini | 0:c0ae66a0ec7a | 17 | LED_OFF = 1, |
dwini | 0:c0ae66a0ec7a | 18 | LED_TOGGLE = 2 |
dwini | 0:c0ae66a0ec7a | 19 | } LedState; |
dwini | 0:c0ae66a0ec7a | 20 | |
dwini | 0:c0ae66a0ec7a | 21 | |
dwini | 0:c0ae66a0ec7a | 22 | /* |
dwini | 0:c0ae66a0ec7a | 23 | * Drive the robot forward or backward. |
dwini | 0:c0ae66a0ec7a | 24 | * |
dwini | 0:c0ae66a0ec7a | 25 | * @speed The speed percentage with which to drive forward or backward [-100, +100]. |
dwini | 0:c0ae66a0ec7a | 26 | */ |
dwini | 0:c0ae66a0ec7a | 27 | void drive(int speed); |
dwini | 0:c0ae66a0ec7a | 28 | |
dwini | 0:c0ae66a0ec7a | 29 | // speed between -100% en +100% |
dwini | 0:c0ae66a0ec7a | 30 | void turn(int turnspeed); |
dwini | 0:c0ae66a0ec7a | 31 | |
dwini | 0:c0ae66a0ec7a | 32 | // Stop the robot |
dwini | 0:c0ae66a0ec7a | 33 | void stop(); |
dwini | 0:c0ae66a0ec7a | 34 | |
dwini | 0:c0ae66a0ec7a | 35 | void sensor_calibrate(); |
dwini | 0:c0ae66a0ec7a | 36 | |
dwini | 0:c0ae66a0ec7a | 37 | // Read the value from the line sensor |
dwini | 0:c0ae66a0ec7a | 38 | int line_sensor(); |
dwini | 0:c0ae66a0ec7a | 39 | |
dwini | 0:c0ae66a0ec7a | 40 | // PID drive control |
dwini | 0:c0ae66a0ec7a | 41 | void pid_init(int p, int i, int d); |
dwini | 0:c0ae66a0ec7a | 42 | |
dwini | 0:c0ae66a0ec7a | 43 | |
dwini | 0:c0ae66a0ec7a | 44 | // returns turnspeed |
dwini | 0:c0ae66a0ec7a | 45 | int pid_turn(int line_position); |
dwini | 0:c0ae66a0ec7a | 46 | |
dwini | 0:c0ae66a0ec7a | 47 | // Show drive speed and sensor data |
dwini | 0:c0ae66a0ec7a | 48 | void showStats(); |
dwini | 0:c0ae66a0ec7a | 49 | |
dwini | 0:c0ae66a0ec7a | 50 | // Show text on display |
dwini | 0:c0ae66a0ec7a | 51 | void display(char* fmt, ...); |
dwini | 0:c0ae66a0ec7a | 52 | |
dwini | 0:c0ae66a0ec7a | 53 | // Turn a led on or off |
dwini | 0:c0ae66a0ec7a | 54 | //void led(LedIndex i, LedState state); |
dwini | 0:c0ae66a0ec7a | 55 | |
dwini | 0:c0ae66a0ec7a | 56 | // Wait for a number of milliseconds |
dwini | 0:c0ae66a0ec7a | 57 | void await(int milliseconds); |
dwini | 0:c0ae66a0ec7a | 58 | |
dwini | 0:c0ae66a0ec7a | 59 | #endif |