David's line following code from the LVBots competition, 2015.

Dependencies:   GeneralDebouncer Pacer PololuEncoder mbed

Fork of DeadReckoning by David Grayson

Committer:
DavidEGrayson
Date:
Wed Apr 15 19:14:39 2015 +0000
Revision:
44:edcacba44760
Child:
50:517c0f0e621f
Got the L3GD20H working, but I'm having trouble with TurnSensor.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
DavidEGrayson 44:edcacba44760 1 #pragma once
DavidEGrayson 44:edcacba44760 2
DavidEGrayson 44:edcacba44760 3 #include <mbed.h>
DavidEGrayson 44:edcacba44760 4
DavidEGrayson 44:edcacba44760 5 class TurnSensor
DavidEGrayson 44:edcacba44760 6 {
DavidEGrayson 44:edcacba44760 7 // TODO: for production code, you would want a way to set the gyro offset
DavidEGrayson 44:edcacba44760 8
DavidEGrayson 44:edcacba44760 9 public:
DavidEGrayson 44:edcacba44760 10
DavidEGrayson 44:edcacba44760 11 void start();
DavidEGrayson 44:edcacba44760 12 void update();
DavidEGrayson 44:edcacba44760 13
DavidEGrayson 44:edcacba44760 14 int32_t getAngle()
DavidEGrayson 44:edcacba44760 15 {
DavidEGrayson 44:edcacba44760 16 return (int32_t)angleUnsigned;
DavidEGrayson 44:edcacba44760 17 }
DavidEGrayson 44:edcacba44760 18
DavidEGrayson 44:edcacba44760 19 int16_t getAngleDegrees()
DavidEGrayson 44:edcacba44760 20 {
DavidEGrayson 44:edcacba44760 21 return (((int32_t)angleUnsigned >> 16) * 360) >> 16;
DavidEGrayson 44:edcacba44760 22 }
DavidEGrayson 44:edcacba44760 23
DavidEGrayson 44:edcacba44760 24 int16_t getRate()
DavidEGrayson 44:edcacba44760 25 {
DavidEGrayson 44:edcacba44760 26 return rate;
DavidEGrayson 44:edcacba44760 27 }
DavidEGrayson 44:edcacba44760 28
DavidEGrayson 44:edcacba44760 29 private:
DavidEGrayson 44:edcacba44760 30
DavidEGrayson 44:edcacba44760 31 Timer timer;
DavidEGrayson 44:edcacba44760 32 uint32_t angleUnsigned;
DavidEGrayson 44:edcacba44760 33 int16_t rate;
DavidEGrayson 44:edcacba44760 34 uint16_t gyroLastUpdate;
DavidEGrayson 44:edcacba44760 35 };