
test
Dependents: MouseHybridSenseCode
funcdef.h@7:11dd5581c763, 2018-04-28 (annotated)
- Committer:
- JamieBignell
- Date:
- Sat Apr 28 21:34:55 2018 +0000
- Revision:
- 7:11dd5581c763
- Parent:
- 6:a652deaae134
Hybrid Mouse Code
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
JamieBignell | 5:dfea493f7a12 | 1 | //Define the file once, in the C and C++ programming languages, an #include guard,is a particular construct used to |
JamieBignell | 5:dfea493f7a12 | 2 | //avoid the problem of double inclusion when dealing with the include directive. The addition of #include guards to a header file is one way to make that file idempotent. |
JamieBignell | 3:7f44ab64e96b | 3 | #ifndef FUNCDEF_H |
JamieBignell | 3:7f44ab64e96b | 4 | #define FUNCDEF_H |
JamieBignell | 0:c0c329729a7a | 5 | |
JamieBignell | 4:f1670eec4681 | 6 | //Import Modules |
JamieBignell | 5:dfea493f7a12 | 7 | #include <mbed.h> |
JamieBignell | 4:f1670eec4681 | 8 | |
JamieBignell | 4:f1670eec4681 | 9 | //Set up PC link (comment out when not using), set up 9600 if using plotter |
JamieBignell | 3:7f44ab64e96b | 10 | static Serial pc = Serial(USBTX, USBRX); |
JamieBignell | 3:7f44ab64e96b | 11 | |
JamieBignell | 5:dfea493f7a12 | 12 | ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
JamieBignell | 4:f1670eec4681 | 13 | //Pin Names |
JamieBignell | 5:dfea493f7a12 | 14 | #define leftMotorpin D6 |
JamieBignell | 5:dfea493f7a12 | 15 | #define rightMotorpin D1 |
JamieBignell | 5:dfea493f7a12 | 16 | #define beeperPin D10 |
JamieBignell | 5:dfea493f7a12 | 17 | |
JamieBignell | 7:11dd5581c763 | 18 | #define Kp 90//80//110 |
JamieBignell | 7:11dd5581c763 | 19 | #define Ki 0 //0.004 |
JamieBignell | 7:11dd5581c763 | 20 | #define Kd 0 //32 |
JamieBignell | 6:a652deaae134 | 21 | #define Ac 100 |
JamieBignell | 3:7f44ab64e96b | 22 | |
JamieBignell | 6:a652deaae134 | 23 | //i=0.05 to high |
JamieBignell | 6:a652deaae134 | 24 | //values that work, p=55 ,i=0.003,d=0,motorcurve=normal, initial speed=250, fast 300seconds, middle hole |
JamieBignell | 6:a652deaae134 | 25 | |
JamieBignell | 6:a652deaae134 | 26 | //values that work, p=45 ,i=0.005,d=0,motorcurve=normal, initial speed=250, fast 300seconds, middle hole |
JamieBignell | 6:a652deaae134 | 27 | |
JamieBignell | 6:a652deaae134 | 28 | // |
JamieBignell | 6:a652deaae134 | 29 | |
JamieBignell | 7:11dd5581c763 | 30 | #define calibrationMotorspeed 410 |
JamieBignell | 6:a652deaae134 | 31 | |
JamieBignell | 5:dfea493f7a12 | 32 | //http://www.sengpielaudio.com/calculator-notenames.htm |
JamieBignell | 5:dfea493f7a12 | 33 | |
JamieBignell | 5:dfea493f7a12 | 34 | ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
JamieBignell | 4:f1670eec4681 | 35 | //Pin Definitions |
JamieBignell | 3:7f44ab64e96b | 36 | static DigitalOut LEDVal = DigitalOut(LED1); |
JamieBignell | 6:a652deaae134 | 37 | static DigitalOut CountingVar = DigitalOut(D0); |
JamieBignell | 5:dfea493f7a12 | 38 | static PwmOut leftMotorVal=PwmOut(leftMotorpin); |
JamieBignell | 5:dfea493f7a12 | 39 | static PwmOut rightMotorVal=PwmOut(rightMotorpin); |
JamieBignell | 3:7f44ab64e96b | 40 | |
JamieBignell | 3:7f44ab64e96b | 41 | static AnalogIn sensorPin[] = {A0,A1,A2,A3,A4,A5,A6,D3}; |
JamieBignell | 3:7f44ab64e96b | 42 | |
JamieBignell | 5:dfea493f7a12 | 43 | ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
JamieBignell | 5:dfea493f7a12 | 44 | //Global Variable Definitions |
JamieBignell | 5:dfea493f7a12 | 45 | extern int sensorValue[8]; |
JamieBignell | 5:dfea493f7a12 | 46 | |
JamieBignell | 5:dfea493f7a12 | 47 | extern int sensorMinValue[8]; |
JamieBignell | 5:dfea493f7a12 | 48 | extern int sensorMaxValue[8]; |
JamieBignell | 5:dfea493f7a12 | 49 | |
JamieBignell | 5:dfea493f7a12 | 50 | extern int sensorMinValue1[8]; |
JamieBignell | 5:dfea493f7a12 | 51 | extern int sensorMaxValue1[8]; |
JamieBignell | 5:dfea493f7a12 | 52 | |
JamieBignell | 5:dfea493f7a12 | 53 | extern int sensorMinValue2[8]; |
JamieBignell | 5:dfea493f7a12 | 54 | extern int sensorMaxValue2[8]; |
JamieBignell | 5:dfea493f7a12 | 55 | |
JamieBignell | 5:dfea493f7a12 | 56 | extern int sensorThreshold[8]; |
JamieBignell | 7:11dd5581c763 | 57 | extern int sensorErrorsdiscrete[8]; |
JamieBignell | 6:a652deaae134 | 58 | extern float sensorErrors[8]; |
JamieBignell | 6:a652deaae134 | 59 | |
JamieBignell | 7:11dd5581c763 | 60 | extern float linearOffset[106][2]; |
JamieBignell | 7:11dd5581c763 | 61 | extern float motorLookup[11][2]; |
JamieBignell | 7:11dd5581c763 | 62 | |
JamieBignell | 6:a652deaae134 | 63 | extern float Prop; |
JamieBignell | 6:a652deaae134 | 64 | extern float Inte; |
JamieBignell | 6:a652deaae134 | 65 | extern float Dere; |
JamieBignell | 5:dfea493f7a12 | 66 | |
JamieBignell | 6:a652deaae134 | 67 | extern float errorVar; |
JamieBignell | 7:11dd5581c763 | 68 | extern float largestpositiveerrorvar; |
JamieBignell | 7:11dd5581c763 | 69 | extern float largestnegativeerrorvar; |
JamieBignell | 6:a652deaae134 | 70 | extern float previousError; |
JamieBignell | 7:11dd5581c763 | 71 | extern int errorVardiscrete; |
JamieBignell | 7:11dd5581c763 | 72 | extern int previousErrordiscrete; |
JamieBignell | 6:a652deaae134 | 73 | extern float PIDs; |
JamieBignell | 6:a652deaae134 | 74 | extern int newPIDs; |
JamieBignell | 6:a652deaae134 | 75 | extern int initialMotorspeed; |
JamieBignell | 6:a652deaae134 | 76 | extern int leftMotorValTemp; |
JamieBignell | 6:a652deaae134 | 77 | extern int rightMotorValTemp; |
JamieBignell | 5:dfea493f7a12 | 78 | extern int accumulator; |
JamieBignell | 6:a652deaae134 | 79 | extern bool stopMotors; |
JamieBignell | 7:11dd5581c763 | 80 | extern int errorDetectthres; |
JamieBignell | 5:dfea493f7a12 | 81 | ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
JamieBignell | 3:7f44ab64e96b | 82 | //Function Definitions |
JamieBignell | 5:dfea493f7a12 | 83 | |
JamieBignell | 3:7f44ab64e96b | 84 | void CalibrateFunc(void); |
JamieBignell | 5:dfea493f7a12 | 85 | void senseFunc(void); |
JamieBignell | 5:dfea493f7a12 | 86 | void calculateFunc(void); |
JamieBignell | 5:dfea493f7a12 | 87 | void driveFunc(void); |
JamieBignell | 5:dfea493f7a12 | 88 | void findLineFunc(void); |
JamieBignell | 0:c0c329729a7a | 89 | |
JamieBignell | 3:7f44ab64e96b | 90 | #endif // FUNCDEF_H |