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
l3g.h@42:96671b71aac5, 2019-07-27 (annotated)
- Committer:
- DavidEGrayson
- Date:
- Sat Jul 27 20:58:46 2019 +0000
- Revision:
- 42:96671b71aac5
- Parent:
- 40:6fa672be85ec
Calibrate L3G using a buffer of 1000 zero-rate readings. Measured a drift of -1.850 degrees over 3 minutes (-0.01 degree per second).
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
DavidEGrayson | 40:6fa672be85ec | 1 | #pragma once |
DavidEGrayson | 40:6fa672be85ec | 2 | |
DavidEGrayson | 40:6fa672be85ec | 3 | // Returns 0 for success, non-zero for error. |
DavidEGrayson | 40:6fa672be85ec | 4 | int32_t l3gInit(); |
DavidEGrayson | 40:6fa672be85ec | 5 | int32_t l3gReadReg(char reg); |
DavidEGrayson | 40:6fa672be85ec | 6 | int32_t l3gWriteReg(char reg, char value); |
DavidEGrayson | 40:6fa672be85ec | 7 | int32_t l3gZRead(); |
DavidEGrayson | 42:96671b71aac5 | 8 | int32_t l3gZAvailable(); |
DavidEGrayson | 42:96671b71aac5 | 9 | |
DavidEGrayson | 42:96671b71aac5 | 10 | // Takes one reading and record it for the purposes of zero-rate calibrations. |
DavidEGrayson | 42:96671b71aac5 | 11 | // Returns the reading just in case you want it for something. |
DavidEGrayson | 42:96671b71aac5 | 12 | int32_t l3gCalibrate(); |
DavidEGrayson | 42:96671b71aac5 | 13 | |
DavidEGrayson | 42:96671b71aac5 | 14 | bool l3gCalibrateDone(); |
DavidEGrayson | 42:96671b71aac5 | 15 | |
DavidEGrayson | 42:96671b71aac5 | 16 | void l3gCalibrateReset(); |
DavidEGrayson | 42:96671b71aac5 | 17 | |
DavidEGrayson | 42:96671b71aac5 | 18 | int32_t l3gZReadCalibrated(); |