Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
CarAPI.h@2:0a64af7ab7c6, 2013-08-22 (annotated)
- 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?
| User | Revision | Line number | New 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 | 
