This is the one where I went back and un-did the cube.cpp file

Dependencies:   BNO055_fusion_tom FastPWM mbed

Fork of NucleoCube1 by Tom Rasmussen

Committer:
tomras12
Date:
Wed Apr 12 20:54:52 2017 +0000
Revision:
24:c7b3bac429c5
Parent:
23:abe76b7c377a
Child:
28:b813a8f685c3
Implemented orientation detection

Who changed what in which revision?

UserRevisionLine numberNew contents of line
tomras12 23:abe76b7c377a 1 /*
tomras12 23:abe76b7c377a 2 * cube.h
tomras12 23:abe76b7c377a 3 * April 11, 2017
tomras12 23:abe76b7c377a 4 *
tomras12 23:abe76b7c377a 5 * Control software for balancing cube senior design project
tomras12 23:abe76b7c377a 6 *
tomras12 23:abe76b7c377a 7 * Will Church
tomras12 23:abe76b7c377a 8 * Tom Rasmussen
tomras12 23:abe76b7c377a 9 */
tomras12 23:abe76b7c377a 10
tomras12 23:abe76b7c377a 11 #ifndef CUBE_H
tomras12 23:abe76b7c377a 12 #define CUBE_H
tomras12 23:abe76b7c377a 13
tomras12 23:abe76b7c377a 14 /* -- INCLUDES -- */
tomras12 23:abe76b7c377a 15 #include "mbed.h"
tomras12 23:abe76b7c377a 16 #include "BNO055.h"
tomras12 23:abe76b7c377a 17
tomras12 23:abe76b7c377a 18 /* -- STRUCT -- */
tomras12 23:abe76b7c377a 19 struct config {
tomras12 23:abe76b7c377a 20 double Kbt; // Body angle gain
tomras12 23:abe76b7c377a 21 double Kbv; // Body velocity gain
tomras12 23:abe76b7c377a 22 double Kwv; // Wheel velocity gain
tomras12 23:abe76b7c377a 23 double eqAngle; // Equilibrium angle
tomras12 23:abe76b7c377a 24 double *angle; // Points to angle in IMU Euler_angle struct
tomras12 23:abe76b7c377a 25 double *vel; // Points to vel in IMU VEL struct
tomras12 24:c7b3bac429c5 26 PwmOut *pwm; // PWM out for motor control
tomras12 24:c7b3bac429c5 27 AnalogIn *hall; // Analog in for wheel velocity
tomras12 24:c7b3bac429c5 28 char *descr; // Description of config
tomras12 23:abe76b7c377a 29 };
tomras12 23:abe76b7c377a 30
tomras12 23:abe76b7c377a 31 /* -- CONSTANTS -- */
tomras12 23:abe76b7c377a 32 // 1D gains, other wheels detached
tomras12 23:abe76b7c377a 33 /*const double Kbt = -89.9276;
tomras12 23:abe76b7c377a 34 const double Kbv = -14.9398;
tomras12 23:abe76b7c377a 35 const double Kwv = -0.001; //-0.0909;
tomras12 23:abe76b7c377a 36
tomras12 23:abe76b7c377a 37 1d gains, others wheels attached
tomras12 23:abe76b7c377a 38 const double Kbt_x = 0;
tomras12 23:abe76b7c377a 39 const double Kbv_x = 0;
tomras12 23:abe76b7c377a 40 const double Kwv_x = 0;
tomras12 23:abe76b7c377a 41
tomras12 23:abe76b7c377a 42 const double Kbt_y = 0;
tomras12 23:abe76b7c377a 43 const double Kbv_y = 0;
tomras12 23:abe76b7c377a 44 const double Kwv_y = 0;
tomras12 23:abe76b7c377a 45
tomras12 23:abe76b7c377a 46 const double Kbt_z = 0;
tomras12 23:abe76b7c377a 47 const double Kbv_z = 0;
tomras12 23:abe76b7c377a 48 const double Kwv_z = 0;*/
tomras12 23:abe76b7c377a 49
tomras12 23:abe76b7c377a 50 // Other constants
tomras12 23:abe76b7c377a 51 const double pi = 3.14159265;
tomras12 23:abe76b7c377a 52
tomras12 23:abe76b7c377a 53 /* -- NOTES -- */
tomras12 23:abe76b7c377a 54 //------------------------------------
tomras12 23:abe76b7c377a 55 // Hyperterminal configuration
tomras12 23:abe76b7c377a 56 // 9600 bauds, 8-bit data, no parity
tomras12 23:abe76b7c377a 57 //------------------------------------
tomras12 23:abe76b7c377a 58
tomras12 23:abe76b7c377a 59 /* -- PROTOTYPES -- */
tomras12 23:abe76b7c377a 60
tomras12 23:abe76b7c377a 61 /*
tomras12 24:c7b3bac429c5 62 * Checks and prints calibration until sys calib is at 3 / 3
tomras12 24:c7b3bac429c5 63 */
tomras12 24:c7b3bac429c5 64 void checkCalib(BNO055 *imu, Serial *pc);
tomras12 24:c7b3bac429c5 65
tomras12 24:c7b3bac429c5 66 /*
tomras12 23:abe76b7c377a 67 * TODO: Documentation here
tomras12 23:abe76b7c377a 68 * Note: should this function be inline?
tomras12 23:abe76b7c377a 69 */
tomras12 23:abe76b7c377a 70 double calcPWM(config *c);
tomras12 23:abe76b7c377a 71 void updatePWM(config *c);
tomras12 23:abe76b7c377a 72 #endif