David's line following code from the LVBots competition, 2015.
Dependencies: GeneralDebouncer Pacer PololuEncoder mbed
Fork of DeadReckoning by
turn_sensor.h
- Committer:
- DavidEGrayson
- Date:
- 2015-04-16
- Revision:
- 55:05c8f439497d
- Parent:
- 52:05a8e919ddb0
File content as of revision 55:05c8f439497d:
#pragma once #include <mbed.h> class TurnSensor { // TODO: for production code, you would want a way to set the gyro offset public: void reset(); void start(); void update(); int32_t getAngle() { return (int32_t)angleUnsigned; } uint32_t getAngleUnsigned() { return angleUnsigned; } int16_t getAngleDegrees() { return (((int32_t)angleUnsigned >> 16) * 360) >> 16; } int16_t getRate() { return rate; } private: Timer timer; uint32_t angleUnsigned; int16_t rate; uint16_t gyroLastUpdate; }; // This constant represents a turn of 45 degrees. const int32_t turnAngle45 = 0x20000000; // This constant represents a turn of 90 degrees. const int32_t turnAngle90 = turnAngle45 * 2; // This constant represents a turn of approximately 1 degree. const int32_t turnAngle1 = (turnAngle45 + 22) / 45;