test

Dependencies:   mbed

Dependents:   MouseHybridSenseCode

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?

UserRevisionLine numberNew 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