Clare Coleman / Mbed 2 deprecated UTCSBootcamp

Dependencies:   MMA8451Q mbed

Committer:
ccoleman
Date:
Fri Aug 23 00:38:23 2013 +0000
Revision:
4:4233d072b5af
Parent:
2:0a64af7ab7c6
Added more backend stuff.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ccoleman 1:8408853a700c 1 /**
ccoleman 1:8408853a700c 2 * @defgroup FRDM-UTCS-CAR_API FRDM-UTCS-CAR_API
ccoleman 1:8408853a700c 3 *
ccoleman 1:8408853a700c 4 * @{
ccoleman 1:8408853a700c 5 */
ccoleman 1:8408853a700c 6
ccoleman 1:8408853a700c 7
ccoleman 1:8408853a700c 8 /**
ccoleman 1:8408853a700c 9
ccoleman 1:8408853a700c 10 @addtogroup FRDM-UTCS-CAR_API
ccoleman 1:8408853a700c 11
ccoleman 1:8408853a700c 12 @{
ccoleman 1:8408853a700c 13 */
ccoleman 1:8408853a700c 14
ccoleman 0:2010bcffbae0 15 #ifndef CAR_API_0yx22l34755
ccoleman 0:2010bcffbae0 16 #define CAR_API_0yx22l34755
ccoleman 0:2010bcffbae0 17
ccoleman 0:2010bcffbae0 18 /******************************** Init and Finish ********************************/
ccoleman 0:2010bcffbae0 19 void init();
ccoleman 0:2010bcffbae0 20
ccoleman 0:2010bcffbae0 21 void finish();
ccoleman 0:2010bcffbae0 22
ccoleman 0:2010bcffbae0 23 /******************************** Wheels and Motor ********************************/
ccoleman 0:2010bcffbae0 24
ccoleman 2:0a64af7ab7c6 25 /** Turn the car.
ccoleman 2:0a64af7ab7c6 26 * @param turnAngle value between [-1,1]. Negative indicates turning left, and
ccoleman 2:0a64af7ab7c6 27 * positive indicates turning right.
ccoleman 2:0a64af7ab7c6 28 */
ccoleman 0:2010bcffbae0 29 void turn(float turnAngle);
ccoleman 0:2010bcffbae0 30
ccoleman 2:0a64af7ab7c6 31 /** Move forward with the given power for a specified time.
ccoleman 2:0a64af7ab7c6 32 * @param power Value between [-1, 1]. Negative indicates reverse, positive indicates forward motion.
ccoleman 2:0a64af7ab7c6 33 * @param seconds Amount of time in seconds which the wheels will rotate at the given power.
ccoleman 2:0a64af7ab7c6 34 */
ccoleman 0:2010bcffbae0 35 void move(float power, float seconds);
ccoleman 0:2010bcffbae0 36
ccoleman 2:0a64af7ab7c6 37 /** Move forward with the given powers for each wheel for a specified time.
ccoleman 2:0a64af7ab7c6 38 * @param leftWheelPower Value between [-1, 1]. Negative values indicate left wheel will rotate backward,
ccoleman 2:0a64af7ab7c6 39 * positive values indicate left wheel will rotate forward. More positive and more negative indicate
ccoleman 2:0a64af7ab7c6 40 * more power in the indicated directions.
ccoleman 2:0a64af7ab7c6 41 * @param rightWheelPower Value between [-1, 1]. Negative values indicate right wheel will rotate backward,
ccoleman 2:0a64af7ab7c6 42 * positive values indicate right wheel will rotate forward. More positive and more negative indicate
ccoleman 2:0a64af7ab7c6 43 * more power in the indicated directions.
ccoleman 2:0a64af7ab7c6 44 * @param seconds Amount of time in seconds the wheels will rotate at the given powers.
ccoleman 2:0a64af7ab7c6 45 */
ccoleman 0:2010bcffbae0 46 void move(float leftWheelPower, float rightWheelPower, float seconds);
ccoleman 0:2010bcffbae0 47
ccoleman 2:0a64af7ab7c6 48 /** Lock the wheels. */
ccoleman 0:2010bcffbae0 49 void parkingBrake();
ccoleman 0:2010bcffbae0 50
ccoleman 4:4233d072b5af 51 /** Do nothing for the specified time.
ccoleman 4:4233d072b5af 52 * @param seconds Number of seconds to do nothing.
ccoleman 4:4233d072b5af 53 */
ccoleman 4:4233d072b5af 54 void sleep(float seconds);
ccoleman 4:4233d072b5af 55
ccoleman 0:2010bcffbae0 56 /******************************** INPUTS AND OUTPUTS ********************************/
ccoleman 2:0a64af7ab7c6 57
ccoleman 2:0a64af7ab7c6 58 /** Check to see if the car is crashing into something.
ccoleman 2:0a64af7ab7c6 59 * @return True if car is coming to an abrupt halt, else false.
ccoleman 2:0a64af7ab7c6 60 */
ccoleman 0:2010bcffbae0 61 bool checkIsCrashing();
ccoleman 0:2010bcffbae0 62
ccoleman 2:0a64af7ab7c6 63 /** Get the line direction with respect to the car.
ccoleman 2:0a64af7ab7c6 64 * @return Floating point number. [-1,0) if line is to the left of center,
ccoleman 2:0a64af7ab7c6 65 * (0,1] if the line is to the right of center,
ccoleman 2:0a64af7ab7c6 66 * or zero (0) if line is in the center.
ccoleman 1:8408853a700c 67 */
ccoleman 0:2010bcffbae0 68 float lineDirection();
ccoleman 0:2010bcffbae0 69
ccoleman 2:0a64af7ab7c6 70 /* Toggle LED 0. */
ccoleman 0:2010bcffbae0 71 void toggleLED0();
ccoleman 0:2010bcffbae0 72
ccoleman 2:0a64af7ab7c6 73 /* Toggle LED 1. */
ccoleman 0:2010bcffbae0 74 void toggleLED1();
ccoleman 0:2010bcffbae0 75
ccoleman 2:0a64af7ab7c6 76 /* Toggle LED 2. */
ccoleman 0:2010bcffbae0 77 void toggleLED2();
ccoleman 0:2010bcffbae0 78
ccoleman 2:0a64af7ab7c6 79 /* Toggle LED 3. */
ccoleman 0:2010bcffbae0 80 void toggleLED3();
ccoleman 0:2010bcffbae0 81
ccoleman 2:0a64af7ab7c6 82 /** Check if Button B was pressed. */
ccoleman 0:2010bcffbae0 83 bool isButtonBPressed();
ccoleman 0:2010bcffbae0 84
ccoleman 2:0a64af7ab7c6 85 /** Read Potentiometer 0.
ccoleman 2:0a64af7ab7c6 86 * @return Value between [-1,1]. */
ccoleman 0:2010bcffbae0 87 float getPot0();
ccoleman 0:2010bcffbae0 88
ccoleman 2:0a64af7ab7c6 89 /** Read Potentiometer 1.
ccoleman 2:0a64af7ab7c6 90 * @return Value between [-1,1]. */
ccoleman 0:2010bcffbae0 91 float getPot1();
ccoleman 0:2010bcffbae0 92
ccoleman 2:0a64af7ab7c6 93 /** Get remaining battery charge.
ccoleman 2:0a64af7ab7c6 94 * @return Value between [0,1]. */
ccoleman 0:2010bcffbae0 95 float batteryLife();
ccoleman 0:2010bcffbae0 96
ccoleman 0:2010bcffbae0 97 /******************************** Changing Variables ********************************/
ccoleman 2:0a64af7ab7c6 98 /** Set the base turn offset to compensate for imperfect hardware configuration.
ccoleman 2:0a64af7ab7c6 99 * @param _turnOffset New value for servo turn offset. Accepted values between [-0.7, 0.7].
ccoleman 2:0a64af7ab7c6 100 */
ccoleman 0:2010bcffbae0 101 void setOffset(float _turnOffset);
ccoleman 0:2010bcffbae0 102
ccoleman 2:0a64af7ab7c6 103 /** Get the current value of the servo turn offset.
ccoleman 2:0a64af7ab7c6 104 * @return Value of the current servo turn offset, between [-0.7, 0.7].
ccoleman 2:0a64af7ab7c6 105 */
ccoleman 0:2010bcffbae0 106 float getOffset();
ccoleman 0:2010bcffbae0 107
ccoleman 2:0a64af7ab7c6 108 /** Set the base crash sensitivity.
ccoleman 2:0a64af7ab7c6 109 * @param _sensitivity Value to be set as the new crash sensitivity. Accepted values between
ccoleman 2:0a64af7ab7c6 110 * [0, 1]. A higher value indicates lower sensitivity, and a lower value indicates higher
ccoleman 2:0a64af7ab7c6 111 * sensitivity.
ccoleman 2:0a64af7ab7c6 112 */
ccoleman 0:2010bcffbae0 113 void setCrashSensitivity(float _sensitivity);
ccoleman 0:2010bcffbae0 114
ccoleman 2:0a64af7ab7c6 115 /** Return the crash sensitivity.
ccoleman 2:0a64af7ab7c6 116 * @return Value of the current crash sensitivity, between [-1, 1]. A higher value indicates
ccoleman 2:0a64af7ab7c6 117 * lower sensitivity, and a lower value indicates higher sensitivity.
ccoleman 2:0a64af7ab7c6 118 */
ccoleman 0:2010bcffbae0 119 float getCrashSensitivity();
ccoleman 0:2010bcffbae0 120
ccoleman 2:0a64af7ab7c6 121 /** Turn on debugging. Prints each method call to the serial port.
ccoleman 2:0a64af7ab7c6 122 * @param _debug True to turn on debugging, false to turn it off.
ccoleman 2:0a64af7ab7c6 123 */
ccoleman 0:2010bcffbae0 124 void setDebug(bool _debug);
ccoleman 0:2010bcffbae0 125
ccoleman 0:2010bcffbae0 126
ccoleman 0:2010bcffbae0 127 #endif