this is just a mirror of Lauszus' balancing robot code (https://github.com/TKJElectronics/BalancingRobot). mine just adds a digital IMU in form of the 9dof razor.

Dependencies:   mbed

Committer:
jakobholsen
Date:
Wed Apr 18 06:00:26 2012 +0000
Revision:
0:0150acbc6cf4
first publish

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jakobholsen 0:0150acbc6cf4 1 //****************************************************************************/
jakobholsen 0:0150acbc6cf4 2 // Description:
jakobholsen 0:0150acbc6cf4 3 //
jakobholsen 0:0150acbc6cf4 4 // Read attitude and heading reference system [AHRS] data from the SparkFun
jakobholsen 0:0150acbc6cf4 5 // 9DOF Razor Inertial Measurement Unit [IMU].
jakobholsen 0:0150acbc6cf4 6 //
jakobholsen 0:0150acbc6cf4 7 // AHRS code:
jakobholsen 0:0150acbc6cf4 8 //
jakobholsen 0:0150acbc6cf4 9 // http://code.google.com/p/sf9domahrs/
jakobholsen 0:0150acbc6cf4 10 //
jakobholsen 0:0150acbc6cf4 11 // 9DOF Razor IMU:
jakobholsen 0:0150acbc6cf4 12 //
jakobholsen 0:0150acbc6cf4 13 // http://www.sparkfun.com/commerce/product_info.php?products_id=9623
jakobholsen 0:0150acbc6cf4 14 //****************************************************************************/
jakobholsen 0:0150acbc6cf4 15
jakobholsen 0:0150acbc6cf4 16 #ifndef DOF9_RAZOR_IMU_H
jakobholsen 0:0150acbc6cf4 17 #define DOF9_RAZOR_IMU_H
jakobholsen 0:0150acbc6cf4 18
jakobholsen 0:0150acbc6cf4 19 //****************************************************************************/
jakobholsen 0:0150acbc6cf4 20 // Includes
jakobholsen 0:0150acbc6cf4 21 //****************************************************************************/
jakobholsen 0:0150acbc6cf4 22 #include "mbed.h"
jakobholsen 0:0150acbc6cf4 23
jakobholsen 0:0150acbc6cf4 24 //****************************************************************************/
jakobholsen 0:0150acbc6cf4 25 // Defines
jakobholsen 0:0150acbc6cf4 26 //****************************************************************************/
jakobholsen 0:0150acbc6cf4 27 #define PRINT_EULER 1 //Corrected heading data.
jakobholsen 0:0150acbc6cf4 28 #define PRINT_ANALOGS 0 //Razor spits out raw gyro/accelerometer/magneto
jakobholsen 0:0150acbc6cf4 29 //data.
jakobholsen 0:0150acbc6cf4 30 //Set as a define when compiling AHRS code.
jakobholsen 0:0150acbc6cf4 31 #define BAUD_RATE 57600 //Default in AHRS code.
jakobholsen 0:0150acbc6cf4 32
jakobholsen 0:0150acbc6cf4 33 class dof9RazorImuAhrs {
jakobholsen 0:0150acbc6cf4 34
jakobholsen 0:0150acbc6cf4 35 public:
jakobholsen 0:0150acbc6cf4 36
jakobholsen 0:0150acbc6cf4 37 /**
jakobholsen 0:0150acbc6cf4 38 * Constructor.
jakobholsen 0:0150acbc6cf4 39 *
jakobholsen 0:0150acbc6cf4 40 * Parameters:
jakobholsen 0:0150acbc6cf4 41 *
jakobholsen 0:0150acbc6cf4 42 * tx - Pin to use for Serial transmission.
jakobholsen 0:0150acbc6cf4 43 * rx - Pin to use for Serial receive.
jakobholsen 0:0150acbc6cf4 44 */
jakobholsen 0:0150acbc6cf4 45 dof9RazorImuAhrs(PinName tx, PinName rx);
jakobholsen 0:0150acbc6cf4 46
jakobholsen 0:0150acbc6cf4 47 /**
jakobholsen 0:0150acbc6cf4 48 * Update all of the heading data.
jakobholsen 0:0150acbc6cf4 49 */
jakobholsen 0:0150acbc6cf4 50 void update(void);
jakobholsen 0:0150acbc6cf4 51
jakobholsen 0:0150acbc6cf4 52 float getRoll(void);
jakobholsen 0:0150acbc6cf4 53 float getPitch(void);
jakobholsen 0:0150acbc6cf4 54 float getYaw(void);
jakobholsen 0:0150acbc6cf4 55
jakobholsen 0:0150acbc6cf4 56 float getGyroX(void);
jakobholsen 0:0150acbc6cf4 57 float getGyroY(void);
jakobholsen 0:0150acbc6cf4 58 float getGyroZ(void);
jakobholsen 0:0150acbc6cf4 59
jakobholsen 0:0150acbc6cf4 60 float getAccX(void);
jakobholsen 0:0150acbc6cf4 61 float getAccY(void);
jakobholsen 0:0150acbc6cf4 62 float getAccZ(void);
jakobholsen 0:0150acbc6cf4 63
jakobholsen 0:0150acbc6cf4 64 float getMagX(void);
jakobholsen 0:0150acbc6cf4 65 float getMagY(void);
jakobholsen 0:0150acbc6cf4 66 float getMagZ(void);
jakobholsen 0:0150acbc6cf4 67
jakobholsen 0:0150acbc6cf4 68 private:
jakobholsen 0:0150acbc6cf4 69
jakobholsen 0:0150acbc6cf4 70 Serial* razor;
jakobholsen 0:0150acbc6cf4 71
jakobholsen 0:0150acbc6cf4 72 float roll;
jakobholsen 0:0150acbc6cf4 73 float pitch;
jakobholsen 0:0150acbc6cf4 74 float yaw;
jakobholsen 0:0150acbc6cf4 75
jakobholsen 0:0150acbc6cf4 76 float gyro_x;
jakobholsen 0:0150acbc6cf4 77 float gyro_y;
jakobholsen 0:0150acbc6cf4 78 float gyro_z;
jakobholsen 0:0150acbc6cf4 79
jakobholsen 0:0150acbc6cf4 80 float acc_x;
jakobholsen 0:0150acbc6cf4 81 float acc_y;
jakobholsen 0:0150acbc6cf4 82 float acc_z;
jakobholsen 0:0150acbc6cf4 83
jakobholsen 0:0150acbc6cf4 84 float mag_x;
jakobholsen 0:0150acbc6cf4 85 float mag_y;
jakobholsen 0:0150acbc6cf4 86 float mag_z;
jakobholsen 0:0150acbc6cf4 87
jakobholsen 0:0150acbc6cf4 88 };
jakobholsen 0:0150acbc6cf4 89
jakobholsen 0:0150acbc6cf4 90 #endif /* DOF9_RAZOR_IMU_H */