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.
Dependencies: 4DGL-uLCD-SE SDFileSystem mbed LSM9DS1_Library_cal
Revision 11:f49250a7e4c3, committed 2016-12-10
- Comitter:
- kswanson31
- Date:
- Sat Dec 10 04:30:02 2016 +0000
- Parent:
- 10:8593877172d4
- Commit message:
- Final submission of code changes
Changed in this revision
| main.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- a/main.cpp Mon Dec 05 05:11:21 2016 +0000
+++ b/main.cpp Sat Dec 10 04:30:02 2016 +0000
@@ -17,8 +17,8 @@
int lightState;
-DigitalOut leftBlinker(p22);
-DigitalOut rightBlinker(p23);
+DigitalOut leftSignal(p22);
+DigitalOut rightSignal(p23);
DigitalOut brakeLight(p21);
Timer blinkT;
@@ -68,14 +68,12 @@
hallSensor.fall(&pass);
hallT.start(); // start the hall sensor timer
-
- int blinks;
-
- leftBlinker = 0;
- rightBlinker = 0;
+
+ leftSignal = 0;
+ rightSignal = 0;
brakeLight = 0;
- while(1) {
+ while(going) {
seconds = time(NULL) - START_S; // return the seconds passed since start
@@ -84,7 +82,7 @@
stopped = 1;
}
- going = (hallT.read() > 120.0 && stopped) ? 0 : 1;
+ going = (hallT.read() > 200.0 && stopped) ? 0 : 1;
maxSpeed = (speed > maxSpeed) ? speed : maxSpeed;
lcd.locate(0, 1);
@@ -107,16 +105,15 @@
if (lightState == STOP) {
brakeLight = 1;
- pc.printf("STOP FUCKER\n\r");
} else if (lightState == GO) {
brakeLight = 0;
- rightBlinker = 0;
- leftBlinker = 0;
+ rightSignal = 0;
+ leftSignal = 0;
} else {
if (lightState == RIGHT) {
- rightBlinker = 1;
+ rightSignal = 1;
} else {
- leftBlinker = 1;
+ leftSignal = 1;
}
}
wait(1);
@@ -149,9 +146,9 @@
} else {
file >> f_miles >> f_maxSpeed >> f_minutes;
lcd.locate(0, 1);
- lcd.printf("Your last trip\n\n");
- lcd.printf("Distance : %3.1f mi\n\n", f_miles);
- lcd.printf("Top speed : %2.1f mph\n\n", f_maxSpeed);
+ lcd.printf("PRIOR TRIP\n\n");
+ lcd.printf("Dist : %3.1f mi\n\n", f_miles);
+ lcd.printf("High : %2.1f mph\n\n", f_maxSpeed);
lcd.printf("Time : %3.1f min\n\n", f_minutes);
}
@@ -167,9 +164,9 @@
} else {
// show the best trip
file >> f_miles >> f_maxSpeed >> f_minutes;
- lcd.printf("Your best trip\n\n");
- lcd.printf("Distance : %3.1f mi\n\n", f_miles);
- lcd.printf("Top speed : %2.1f mph\n\n", f_maxSpeed);
+ lcd.printf("BEST TRIP\n\n");
+ lcd.printf("Dist : %3.1f mi\n\n", f_miles);
+ lcd.printf("High : %2.1f mph\n\n", f_maxSpeed);
lcd.printf("Time : %3.1f min\n\n", f_minutes);
}
@@ -182,6 +179,9 @@
// determine whether this trip was a record, and indicate if so
float minutes;
+ float f_miles;
+ float f_maxSpeed;
+ float f_minutes;
fstream file;
file.open("/sd/records/recent.txt");
@@ -211,8 +211,13 @@
lcd.locate(0, 1);
lcd.printf("Could not open file\n");
} else {
- lcd.locate(0, 1);
+ // retrieve the previous record
+ file >> f_miles >> f_maxSpeed >> f_minutes;
// check if you beat your best
+ if (miles >= f_miles && maxSpeed >= f_maxSpeed && minutes >= f_minutes) {
+ lcd.printf("A new record!");
+ file << fixed << setprecision(1) << miles << " " << maxSpeed << " " << minutes << endl;
+ }
}
file.close();
@@ -226,7 +231,8 @@
pc.printf("x: %d, y: %d, z: %d, flex: %f\n\r", x,y,z,f);
if (z > 0 && z > abs(y) && z > abs(x) && y < 0 && f >= 0.87)
return STOP;
- if (x < 0 && abs(x) > abs(z) && abs(x) > abs(y) && f <= 0.87)
+// if (x < 0 && abs(x) > abs(z) && abs(x) > abs(y) && f <= 0.87)
+ if (x < 0 && abs(x) > abs(z) && abs(x) > abs(y))
return LEFT;
if (y > 0 && y > abs(z) && y > abs(x) && f >= 0.87)
return RIGHT;
