Final Project files for mBed development.

Dependencies:   m3pi mbed

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