Clare Coleman / Mbed 2 deprecated UTCSBootcamp

Dependencies:   MMA8451Q mbed

Committer:
ccoleman
Date:
Fri Aug 23 00:40:51 2013 +0000
Revision:
5:8dde418f0d1e
Parent:
4:4233d072b5af
Child:
6:4b101f051a1f
Minor documentation edits.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ccoleman 0:2010bcffbae0 1 #include "CarAPI.h"
ccoleman 0:2010bcffbae0 2 #include "CarBaseAPI.h"
ccoleman 0:2010bcffbae0 3
ccoleman 0:2010bcffbae0 4 /******************************** Init and Finish ********************************/
ccoleman 0:2010bcffbae0 5
ccoleman 0:2010bcffbae0 6 void init(){
ccoleman 0:2010bcffbae0 7 _initialize();
ccoleman 0:2010bcffbae0 8 }
ccoleman 0:2010bcffbae0 9
ccoleman 0:2010bcffbae0 10 void finish(){
ccoleman 0:2010bcffbae0 11 _finish();
ccoleman 0:2010bcffbae0 12 }
ccoleman 0:2010bcffbae0 13
ccoleman 0:2010bcffbae0 14 /******************************** Wheels and Motor ********************************/
ccoleman 0:2010bcffbae0 15
ccoleman 0:2010bcffbae0 16 void turn(float turnAngle){
ccoleman 0:2010bcffbae0 17 turn(0,turnAngle);
ccoleman 0:2010bcffbae0 18 }
ccoleman 0:2010bcffbae0 19
ccoleman 0:2010bcffbae0 20 void move(float power, float seconds){
ccoleman 0:2010bcffbae0 21 move (power,power,seconds);
ccoleman 0:2010bcffbae0 22 }
ccoleman 0:2010bcffbae0 23
ccoleman 0:2010bcffbae0 24 void move(float leftWheelPower,float rightWheelPower, float seconds){
ccoleman 4:4233d072b5af 25 if(debug) utrace("move(%f,%f,%f)\r\n",leftWheelPower,rightWheelPower,seconds);
ccoleman 0:2010bcffbae0 26 TFC_SetMotorPWM(leftWheelPower,rightWheelPower); // power for n seconds with both wheels the same power
ccoleman 0:2010bcffbae0 27 wait(seconds);
ccoleman 0:2010bcffbae0 28 TFC_SetMotorPWM(0,0); // turn off power to both wheels
ccoleman 0:2010bcffbae0 29 wait(0.05); //need a wait to register or sebsequent calls to this method won't spin the wheel; hardware can't detect instaneous input?
ccoleman 0:2010bcffbae0 30 }
ccoleman 0:2010bcffbae0 31
ccoleman 0:2010bcffbae0 32 void parkingBrake(){
ccoleman 4:4233d072b5af 33 if(debug) utrace("parkingBrake()\r\n");
ccoleman 0:2010bcffbae0 34 TFC_SetMotorPWM(0.1,0.1); //slight spinning of wheel
ccoleman 0:2010bcffbae0 35 wait(0.1);
ccoleman 0:2010bcffbae0 36 }
ccoleman 0:2010bcffbae0 37
ccoleman 4:4233d072b5af 38 void sleep(float seconds){
ccoleman 4:4233d072b5af 39 if(debug) utrace("sleep(%f)\r\n",seconds);
ccoleman 4:4233d072b5af 40 }
ccoleman 3:1afe0cfab2d1 41
ccoleman 4:4233d072b5af 42
ccoleman 4:4233d072b5af 43 /******************************** INPUTS AND OUTPUTS ********************************/
ccoleman 5:8dde418f0d1e 44
ccoleman 0:2010bcffbae0 45 bool checkIsCrashing(){
ccoleman 4:4233d072b5af 46 if(debug) utrace("checkIsCrashing()\r\n");
ccoleman 0:2010bcffbae0 47 return abs(accelerometer.getAccX()) >= crashSensitivity;
ccoleman 0:2010bcffbae0 48 }
ccoleman 0:2010bcffbae0 49
ccoleman 4:4233d072b5af 50 bool isStopped()
ccoleman 4:4233d072b5af 51 {
ccoleman 4:4233d072b5af 52 double x = accelerometer.getAccX();
ccoleman 4:4233d072b5af 53 double y = accelerometer.getAccY();
ccoleman 4:4233d072b5af 54 double z = accelerometer.getAccZ();
ccoleman 4:4233d072b5af 55 double calAcc = sqrt(x*x + y*y + z*z);
ccoleman 4:4233d072b5af 56 if (calAcc < stopSensitivity)
ccoleman 4:4233d072b5af 57 return 1;
ccoleman 4:4233d072b5af 58 return 0;
ccoleman 4:4233d072b5af 59 }
ccoleman 4:4233d072b5af 60
ccoleman 0:2010bcffbae0 61 float lineDirection(){
ccoleman 0:2010bcffbae0 62 return 0;
ccoleman 0:2010bcffbae0 63 }
ccoleman 0:2010bcffbae0 64
ccoleman 0:2010bcffbae0 65 void toggleLED0(){
ccoleman 4:4233d072b5af 66 if(debug) utrace("toggleLED0()\r\n");
ccoleman 0:2010bcffbae0 67 TFC_BAT_LED0_TOGGLE;
ccoleman 0:2010bcffbae0 68 }
ccoleman 0:2010bcffbae0 69
ccoleman 0:2010bcffbae0 70 void toggleLED1(){
ccoleman 4:4233d072b5af 71 if(debug) utrace("toggleLED1()\r\n");
ccoleman 0:2010bcffbae0 72 TFC_BAT_LED1_TOGGLE;
ccoleman 0:2010bcffbae0 73 }
ccoleman 0:2010bcffbae0 74
ccoleman 0:2010bcffbae0 75 void toggleLED2(){
ccoleman 4:4233d072b5af 76 if(debug) utrace("toggleLED2()\r\n");
ccoleman 0:2010bcffbae0 77 TFC_BAT_LED2_TOGGLE;
ccoleman 0:2010bcffbae0 78 }
ccoleman 0:2010bcffbae0 79
ccoleman 0:2010bcffbae0 80 void toggleLED3(){
ccoleman 4:4233d072b5af 81 if(debug) utrace("toggleLED3()\r\n");
ccoleman 0:2010bcffbae0 82 TFC_BAT_LED3_TOGGLE;
ccoleman 0:2010bcffbae0 83 }
ccoleman 0:2010bcffbae0 84
ccoleman 0:2010bcffbae0 85 bool isButtonBPressed(){
ccoleman 4:4233d072b5af 86 if(debug) utrace("isButtonBPressed()=%d\r\n",TFC_PUSH_BUTTON_1_PRESSED);
ccoleman 0:2010bcffbae0 87 return TFC_PUSH_BUTTON_1_PRESSED;
ccoleman 0:2010bcffbae0 88 }
ccoleman 0:2010bcffbae0 89
ccoleman 0:2010bcffbae0 90 float getPot0(){
ccoleman 4:4233d072b5af 91 if(debug) utrace("getPot0()= %f\r\n", TFC_ReadPot(0));
ccoleman 0:2010bcffbae0 92 return TFC_ReadPot(0);
ccoleman 0:2010bcffbae0 93 }
ccoleman 0:2010bcffbae0 94
ccoleman 0:2010bcffbae0 95 float getPot1(){
ccoleman 4:4233d072b5af 96 if(debug) utrace("getPot1()= %f\r\n", TFC_ReadPot(1));
ccoleman 0:2010bcffbae0 97 return TFC_ReadPot(1);
ccoleman 0:2010bcffbae0 98 }
ccoleman 0:2010bcffbae0 99
ccoleman 0:2010bcffbae0 100 float batteryLife(){
ccoleman 4:4233d072b5af 101 if(debug) utrace("batteryLife()= %f\r\n", TFC_ReadBatteryVoltage());
ccoleman 0:2010bcffbae0 102 return TFC_ReadBatteryVoltage();
ccoleman 0:2010bcffbae0 103 }
ccoleman 0:2010bcffbae0 104
ccoleman 0:2010bcffbae0 105 /******************************** Changing Variables ********************************/
ccoleman 0:2010bcffbae0 106
ccoleman 0:2010bcffbae0 107 void setOffset(float _turnOffset){
ccoleman 4:4233d072b5af 108 if(debug) utrace("setOffset(%f)\r\n", _turnOffset);
ccoleman 0:2010bcffbae0 109 turnOffset = _turnOffset;
ccoleman 0:2010bcffbae0 110 }
ccoleman 0:2010bcffbae0 111
ccoleman 0:2010bcffbae0 112 float getOffset(){
ccoleman 4:4233d072b5af 113 if(debug) utrace("getOffset()= %f\r\n", turnOffset);
ccoleman 0:2010bcffbae0 114 return turnOffset;
ccoleman 0:2010bcffbae0 115 }
ccoleman 0:2010bcffbae0 116
ccoleman 0:2010bcffbae0 117 void setCrashSensitivity(float _sensitivity){
ccoleman 4:4233d072b5af 118 if(debug) utrace("setCrashSensitivity(%f)\r\n", _sensitivity);
ccoleman 0:2010bcffbae0 119 crashSensitivity = _sensitivity;
ccoleman 0:2010bcffbae0 120 }
ccoleman 0:2010bcffbae0 121
ccoleman 0:2010bcffbae0 122 float getCrashSensitivity(){
ccoleman 4:4233d072b5af 123 if(debug) utrace("getCrashSensitivity()= %f\r\n", crashSensitivity);
ccoleman 0:2010bcffbae0 124 return crashSensitivity;
ccoleman 0:2010bcffbae0 125 }
ccoleman 0:2010bcffbae0 126
ccoleman 4:4233d072b5af 127 void setStopSensitivity(float _sensitivity){
ccoleman 4:4233d072b5af 128 if(debug) utrace("setStopSensitivity(%f)\r\n", _sensitivity);
ccoleman 4:4233d072b5af 129 stopSensitivity = _sensitivity;
ccoleman 4:4233d072b5af 130 }
ccoleman 4:4233d072b5af 131
ccoleman 4:4233d072b5af 132 float getStopSensitivity(){
ccoleman 4:4233d072b5af 133 if(debug) utrace("getStopSensitivity()= %f\r\n", stopSensitivity);
ccoleman 4:4233d072b5af 134 return stopSensitivity;
ccoleman 4:4233d072b5af 135 }
ccoleman 4:4233d072b5af 136
ccoleman 0:2010bcffbae0 137 void setDebug(bool _debug){
ccoleman 4:4233d072b5af 138 if(debug) utrace("setDebug()= %d\r\n", _debug);
ccoleman 0:2010bcffbae0 139 debug = _debug;
ccoleman 0:2010bcffbae0 140 }