David's dead reckoning code for the LVBots competition on March 6th. Uses the mbed LPC1768, DRV8835, QTR-3RC, and two DC motors with encoders.

Dependencies:   PololuEncoder Pacer mbed GeneralDebouncer

Revision:
43:0e985a58f174
Parent:
36:ccb03b734737
--- a/reckoner.h	Sat Jul 27 20:58:46 2019 +0000
+++ b/reckoner.h	Sat Jul 27 22:52:19 2019 +0000
@@ -1,32 +1,24 @@
 #pragma once
 
+#define RECKONER_LOG_UNIT 14
+
 class Reckoner
 {
-    public:
+public:
     
     Reckoner();
     
-    // Together, cos and sin form a vector with a magnitude close to 2^30 that indicates
-    // the current position of the robot.
-    // cos corresponds to the x component of the orientation vector.
-    // sin corresponds to the y component of the orientation vector.
-    int32_t cos, sin;
+    // Together, cos and sin form a vector with a magnitude close to 2^14 that
+    // indicate the current direction the robot is facint.
+    int32_t cosv, sinv;
     
     // Together, x and y are a vector that points from the starting point to the
-    // robot's current position.
-    // The untis are Df / (1<<14), where Df is the distance the robot moves forward
-    // or backwards due to a single encoder tick.
+    // robot's current position, with units of Df / (1<<14), where Df is the
+    // distance the robot moves due to a single encoder tick.
     int32_t x, y;
 
     void reset();
-
-    void handleTickLeftForward();
-    void handleTickLeftBackward();
-    void handleTickRightForward();
-    void handleTickRightBackward();
     void handleForward();
     void handleBackward();
-    void handleRight();
-    void handleLeft();
-    void handleTurnRadians(int32_t radians);
+    void setTurnAngle(int32_t angle);
 };