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@4:4233d072b5af, 2013-08-23 (annotated)
- 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?
| 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 | 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 |
