EE149
/
FinalProject
Final Project files for mBed development.
Diff: main.h
- Revision:
- 39:cc8691700d2a
- Parent:
- 37:1d51cf101b03
- Child:
- 40:0199bad6c979
--- a/main.h Sat Dec 13 03:34:04 2014 +0000 +++ b/main.h Sat Dec 13 07:35:57 2014 +0000 @@ -23,6 +23,19 @@ #define CAL_SPEED .25 /**< Drive speed during calibration */ #define CLOSE_ENOUGH .0008 /**< Threshold for calibration line centering */ #define WIGGLE_MAX 30 /**< Max 'wiggles' during calibration */ +#define CORNER_THRESHOLD 0.3 /**< Threshold for checking if line position denotes a corner */ +#define INST_BUF_SIZE 250 /**< Size of input buffer for instructions */ +#define CORRECTION_SPEED 0.2*DRIVE_SPEED /**< Amount to change speed of one wheel when following line */ +#define CORRECTION_THRESHOLD 0.05 /**< Maximum tolerable deviation from line when following line */ +#define RAD_TO_DEG 57.29 /**< Factor to convert radians to degrees */ +#define FULL_TURN 360 /**< Degrees for a full turn */ +#define HALF_TURN 180 /**< Degrees for a half turn */ +#define QUARTER_TURN 90 /**< Degrees for a quarter (right angle) turn */ +#define CAL_FACTOR 1.1 /**< Scaling factor for time to drive */ +#define DEGREE_CORRECTION 0 /**< Amount (in degrees) added to the angle for each turn */ +#define SEC_TO_MSEC 1000 /**< Scaling factor to convert seconds to milliseconds */ +#define SEC_TO_USEC 1000000 /**< Scaling factor to convert seconds to microseconds */ +#define MSEC_TO_USEC 1000 /**< Scaling factor to convert milliseconds to microseconds */ /** @brief Move the robot from its current position to (x,y) */ void move(int x, int y, int draw); @@ -80,4 +93,14 @@ * @param[in] amt Time to wait, in seconds. */ void timerWait(float amt); + +int find_corner(int left); + +void find_line(); + +float distance(int x1, int y1, int x2, int y2); + +void robot_printf(int line, const char *format, ...); + +float compute_turn_angle(int last_x, int last_y, int x, int y, float angle); #endif \ No newline at end of file