Nathaniel Honka / initExoVars

Fork of initExoVars by HEL's Angels

Committer:
perr1940
Date:
Sat Jun 27 21:44:44 2015 +0000
Revision:
7:bbcbecee4183
Parent:
6:87ad618621a4
Child:
8:ae167702ebcc
small change to exo vars

Who changed what in which revision?

UserRevisionLine numberNew contents of line
perr1940 0:cd5ad8e47eb8 1
perr1940 0:cd5ad8e47eb8 2
perr1940 0:cd5ad8e47eb8 3 #ifndef INIT_H
perr1940 0:cd5ad8e47eb8 4 #define INIT_H
perr1940 0:cd5ad8e47eb8 5
perr1940 0:cd5ad8e47eb8 6 #include "mbed.h"
perr1940 0:cd5ad8e47eb8 7 #include "Encoder.h"
perr1940 0:cd5ad8e47eb8 8 #include "HipControl.h"
perr1940 0:cd5ad8e47eb8 9 #include "knee.h"
perr1940 0:cd5ad8e47eb8 10 #include "FSM.h"
perr1940 0:cd5ad8e47eb8 11 #include "MM_gait.h"
perr1940 0:cd5ad8e47eb8 12 #define PI (3.141592653589793)
perr1940 0:cd5ad8e47eb8 13 #define my_delete(x) {delete x; x = NULL;}
perr1940 0:cd5ad8e47eb8 14
perr1940 0:cd5ad8e47eb8 15 //#define SAMPLE_TIME .01
perr1940 0:cd5ad8e47eb8 16 #define SAMPLE_TIME .001
perr1940 0:cd5ad8e47eb8 17 #define TO_RAD(x) (x * 0.01745329252) // *pi/180
perr1940 0:cd5ad8e47eb8 18
perr1940 0:cd5ad8e47eb8 19
perr1940 0:cd5ad8e47eb8 20 /********************************
perr1940 0:cd5ad8e47eb8 21 * Initializing various I/O pins!
perr1940 0:cd5ad8e47eb8 22 ********************************/
perr1940 0:cd5ad8e47eb8 23 extern DigitalOut mbedLED1;
perr1940 0:cd5ad8e47eb8 24 extern DigitalOut mbedLED2;
perr1940 0:cd5ad8e47eb8 25 extern DigitalOut mbedLED3;
perr1940 0:cd5ad8e47eb8 26 extern DigitalOut motorLED;
perr1940 0:cd5ad8e47eb8 27
perr1940 0:cd5ad8e47eb8 28 extern SPI dataBedSPI; // mosi, miso, sclk
perr1940 0:cd5ad8e47eb8 29 extern DigitalOut DB_cs;
perr1940 0:cd5ad8e47eb8 30 extern SPI IMUspi;
perr1940 0:cd5ad8e47eb8 31 extern DigitalOut IMUcs;
perr1940 0:cd5ad8e47eb8 32 extern Serial pc;
perr1940 0:cd5ad8e47eb8 33
perr1940 0:cd5ad8e47eb8 34 // Setup stuff
perr1940 0:cd5ad8e47eb8 35 // absolutes
perr1940 0:cd5ad8e47eb8 36 //extern SPI encoder_L;
perr1940 0:cd5ad8e47eb8 37 //extern DigitalOut encoder_cs_L;
perr1940 0:cd5ad8e47eb8 38 //extern SPI encoder_R;
perr1940 0:cd5ad8e47eb8 39 //extern DigitalOut encoder_cs_R;
perr1940 0:cd5ad8e47eb8 40 extern Encoder encoder_L;
perr1940 0:cd5ad8e47eb8 41 extern Encoder encoder_R;
perr1940 0:cd5ad8e47eb8 42
perr1940 0:cd5ad8e47eb8 43 // Incremental Indexes (only for homing!)
perr1940 0:cd5ad8e47eb8 44 extern InterruptIn encIdx_R;
perr1940 0:cd5ad8e47eb8 45 extern InterruptIn encIdx_L;
perr1940 0:cd5ad8e47eb8 46
perr1940 0:cd5ad8e47eb8 47 // Right Leg
perr1940 0:cd5ad8e47eb8 48 extern PwmOut pwmpin_R;
perr1940 0:cd5ad8e47eb8 49 extern DigitalOut dirpin_R;
perr1940 0:cd5ad8e47eb8 50
perr1940 0:cd5ad8e47eb8 51 //Left Leg
perr1940 0:cd5ad8e47eb8 52 //extern PwmOut pwmpin_L;
perr1940 0:cd5ad8e47eb8 53 //extern DigitalOut dirpin_L;
perr1940 0:cd5ad8e47eb8 54 extern HipControl hip_L;
perr1940 0:cd5ad8e47eb8 55 extern HipControl hip_R;
perr1940 0:cd5ad8e47eb8 56 extern Knee knee_L;
perr1940 0:cd5ad8e47eb8 57 extern Knee knee_R;
perr1940 0:cd5ad8e47eb8 58
perr1940 0:cd5ad8e47eb8 59 extern FSM fsm;
perr1940 0:cd5ad8e47eb8 60
perr1940 0:cd5ad8e47eb8 61 extern struct MMgait_t mm_gait_params;
perr1940 0:cd5ad8e47eb8 62 extern MMSwing swing;
perr1940 0:cd5ad8e47eb8 63 extern MMStance stance;
cashdollar 2:650a015179b9 64 extern MMFSStance fsStance;
cashdollar 2:650a015179b9 65 extern MMFSSwing fsSwing;
cashdollar 2:650a015179b9 66 extern MMFTG ftgSwing;
cashdollar 2:650a015179b9 67 extern MMFTG ftgStance;
perr1940 0:cd5ad8e47eb8 68 extern GaitGenerator mm_gait;
cashdollar 4:bd8994714003 69 extern LinearBlend blend_left;
cashdollar 4:bd8994714003 70 extern LinearBlend blend_right;
perr1940 0:cd5ad8e47eb8 71
perr1940 0:cd5ad8e47eb8 72
perr1940 0:cd5ad8e47eb8 73 /*******************************
perr1940 0:cd5ad8e47eb8 74 * END OF I/O Initialization
perr1940 0:cd5ad8e47eb8 75 *******************************/
perr1940 0:cd5ad8e47eb8 76
perr1940 0:cd5ad8e47eb8 77 /*******************************
perr1940 0:cd5ad8e47eb8 78 * GLOBAL VARS
perr1940 0:cd5ad8e47eb8 79 *******************************/
perr1940 0:cd5ad8e47eb8 80
perr1940 0:cd5ad8e47eb8 81 // Global Timers!
perr1940 0:cd5ad8e47eb8 82 extern Timer sysClk; // system clock (primarily for datalogging)
perr1940 0:cd5ad8e47eb8 83 extern Timer tState; // time in FSM state
perr1940 0:cd5ad8e47eb8 84 extern Timer t_HCl; // time when high current begins
perr1940 0:cd5ad8e47eb8 85 extern Timer t_HCr;
perr1940 0:cd5ad8e47eb8 86 extern Timer t_BetweenStepCommand;
perr1940 0:cd5ad8e47eb8 87
perr1940 0:cd5ad8e47eb8 88 const unsigned int enc_ticks=pow(2.,14.)-1; //the number of ticks that the encoder has, 2^14 for our encoder, -1 for 0 state
perr1940 0:cd5ad8e47eb8 89 const float enc2deg = 360./enc_ticks; // converts encoder reading from 0-16383 (14 bit) to 0-360deg (360 / 16383);
perr1940 0:cd5ad8e47eb8 90 const float control_lim_high=90; //soft stop on the controller
perr1940 0:cd5ad8e47eb8 91 const float control_lim_low=-55;//soft stop on the controller
perr1940 0:cd5ad8e47eb8 92 extern float TimeSinceLastStep;
perr1940 0:cd5ad8e47eb8 93
perr1940 0:cd5ad8e47eb8 94 //Control Variables
perr1940 0:cd5ad8e47eb8 95 // Control variables
perr1940 0:cd5ad8e47eb8 96 // Gain Scheduling!
perr1940 5:fcd299262d0a 97 extern float Kp_Swing;
perr1940 5:fcd299262d0a 98 extern float Kp_Stance;
perr1940 0:cd5ad8e47eb8 99 extern const float Kp_DoubleStance;//.01;
perr1940 0:cd5ad8e47eb8 100 extern const float Kp_Standing;//.01; //0.0025
perr1940 0:cd5ad8e47eb8 101 extern const float Kp_StandUp;
perr1940 0:cd5ad8e47eb8 102 extern const float Kp_SitDown ;
perr1940 0:cd5ad8e47eb8 103 extern const float Kp_Seated;
perr1940 0:cd5ad8e47eb8 104
perr1940 0:cd5ad8e47eb8 105 extern const float Kp;
perr1940 5:fcd299262d0a 106 extern float Kd;
perr1940 0:cd5ad8e47eb8 107 extern const float sat;
perr1940 0:cd5ad8e47eb8 108 extern const float Kp_mag;
perr1940 0:cd5ad8e47eb8 109 extern const float Kp_freq;
perr1940 0:cd5ad8e47eb8 110 extern const float Kp_offset;
perr1940 0:cd5ad8e47eb8 111 extern float stand_adjust;
cashdollar 2:650a015179b9 112 extern float zero_enc_offset_L;
cashdollar 2:650a015179b9 113 extern float zero_end_offset_R;
perr1940 6:87ad618621a4 114 extern float bob_dole;
cashdollar 2:650a015179b9 115 extern float zero_ang_L;
cashdollar 2:650a015179b9 116 extern float zero_ang_R;
cashdollar 2:650a015179b9 117
perr1940 0:cd5ad8e47eb8 118
perr1940 0:cd5ad8e47eb8 119 #endif
perr1940 0:cd5ad8e47eb8 120
perr1940 0:cd5ad8e47eb8 121 extern void initializeExoIOs();
cashdollar 2:650a015179b9 122 void readCalib();