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:
- 57:99bec7fab454
- Parent:
- 52:05a8e919ddb0
File content as of revision 57:99bec7fab454:
#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;
David Grayson
