Clare Coleman / Mbed 2 deprecated UTCSBootcamp

Dependencies:   MMA8451Q mbed

Committer:
ccoleman
Date:
Thu Aug 22 21:48:25 2013 +0000
Revision:
2:0a64af7ab7c6
Parent:
1:8408853a700c
Child:
4:4233d072b5af
Updated documentation of CarAPI.

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 0:2010bcffbae0 51 /******************************** INPUTS AND OUTPUTS ********************************/
ccoleman 2:0a64af7ab7c6 52
ccoleman 2:0a64af7ab7c6 53 /** Check to see if the car is crashing into something.
ccoleman 2:0a64af7ab7c6 54 * @return True if car is coming to an abrupt halt, else false.
ccoleman 2:0a64af7ab7c6 55 */
ccoleman 0:2010bcffbae0 56 bool checkIsCrashing();
ccoleman 0:2010bcffbae0 57
ccoleman 2:0a64af7ab7c6 58 /** Get the line direction with respect to the car.
ccoleman 2:0a64af7ab7c6 59 * @return Floating point number. [-1,0) if line is to the left of center,
ccoleman 2:0a64af7ab7c6 60 * (0,1] if the line is to the right of center,
ccoleman 2:0a64af7ab7c6 61 * or zero (0) if line is in the center.
ccoleman 1:8408853a700c 62 */
ccoleman 0:2010bcffbae0 63 float lineDirection();
ccoleman 0:2010bcffbae0 64
ccoleman 2:0a64af7ab7c6 65 /* Toggle LED 0. */
ccoleman 0:2010bcffbae0 66 void toggleLED0();
ccoleman 0:2010bcffbae0 67
ccoleman 2:0a64af7ab7c6 68 /* Toggle LED 1. */
ccoleman 0:2010bcffbae0 69 void toggleLED1();
ccoleman 0:2010bcffbae0 70
ccoleman 2:0a64af7ab7c6 71 /* Toggle LED 2. */
ccoleman 0:2010bcffbae0 72 void toggleLED2();
ccoleman 0:2010bcffbae0 73
ccoleman 2:0a64af7ab7c6 74 /* Toggle LED 3. */
ccoleman 0:2010bcffbae0 75 void toggleLED3();
ccoleman 0:2010bcffbae0 76
ccoleman 2:0a64af7ab7c6 77 /** Check if Button B was pressed. */
ccoleman 0:2010bcffbae0 78 bool isButtonBPressed();
ccoleman 0:2010bcffbae0 79
ccoleman 2:0a64af7ab7c6 80 /** Read Potentiometer 0.
ccoleman 2:0a64af7ab7c6 81 * @return Value between [-1,1]. */
ccoleman 0:2010bcffbae0 82 float getPot0();
ccoleman 0:2010bcffbae0 83
ccoleman 2:0a64af7ab7c6 84 /** Read Potentiometer 1.
ccoleman 2:0a64af7ab7c6 85 * @return Value between [-1,1]. */
ccoleman 0:2010bcffbae0 86 float getPot1();
ccoleman 0:2010bcffbae0 87
ccoleman 2:0a64af7ab7c6 88 /** Get remaining battery charge.
ccoleman 2:0a64af7ab7c6 89 * @return Value between [0,1]. */
ccoleman 0:2010bcffbae0 90 float batteryLife();
ccoleman 0:2010bcffbae0 91
ccoleman 0:2010bcffbae0 92 /******************************** Changing Variables ********************************/
ccoleman 2:0a64af7ab7c6 93 /** Set the base turn offset to compensate for imperfect hardware configuration.
ccoleman 2:0a64af7ab7c6 94 * @param _turnOffset New value for servo turn offset. Accepted values between [-0.7, 0.7].
ccoleman 2:0a64af7ab7c6 95 */
ccoleman 0:2010bcffbae0 96 void setOffset(float _turnOffset);
ccoleman 0:2010bcffbae0 97
ccoleman 2:0a64af7ab7c6 98 /** Get the current value of the servo turn offset.
ccoleman 2:0a64af7ab7c6 99 * @return Value of the current servo turn offset, between [-0.7, 0.7].
ccoleman 2:0a64af7ab7c6 100 */
ccoleman 0:2010bcffbae0 101 float getOffset();
ccoleman 0:2010bcffbae0 102
ccoleman 2:0a64af7ab7c6 103 /** Set the base crash sensitivity.
ccoleman 2:0a64af7ab7c6 104 * @param _sensitivity Value to be set as the new crash sensitivity. Accepted values between
ccoleman 2:0a64af7ab7c6 105 * [0, 1]. A higher value indicates lower sensitivity, and a lower value indicates higher
ccoleman 2:0a64af7ab7c6 106 * sensitivity.
ccoleman 2:0a64af7ab7c6 107 */
ccoleman 0:2010bcffbae0 108 void setCrashSensitivity(float _sensitivity);
ccoleman 0:2010bcffbae0 109
ccoleman 2:0a64af7ab7c6 110 /** Return the crash sensitivity.
ccoleman 2:0a64af7ab7c6 111 * @return Value of the current crash sensitivity, between [-1, 1]. A higher value indicates
ccoleman 2:0a64af7ab7c6 112 * lower sensitivity, and a lower value indicates higher sensitivity.
ccoleman 2:0a64af7ab7c6 113 */
ccoleman 0:2010bcffbae0 114 float getCrashSensitivity();
ccoleman 0:2010bcffbae0 115
ccoleman 2:0a64af7ab7c6 116 /** Turn on debugging. Prints each method call to the serial port.
ccoleman 2:0a64af7ab7c6 117 * @param _debug True to turn on debugging, false to turn it off.
ccoleman 2:0a64af7ab7c6 118 */
ccoleman 0:2010bcffbae0 119 void setDebug(bool _debug);
ccoleman 0:2010bcffbae0 120
ccoleman 0:2010bcffbae0 121
ccoleman 0:2010bcffbae0 122 #endif