test

Dependencies:   mbed

Dependents:   MouseHybridSenseCode

Committer:
JamieBignell
Date:
Sun Apr 01 18:21:50 2018 +0000
Revision:
6:a652deaae134
Parent:
5:dfea493f7a12
Child:
7:11dd5581c763
working version

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 6:a652deaae134 18 #define Kp 65
JamieBignell 5:dfea493f7a12 19 #define Ki 0
JamieBignell 6:a652deaae134 20 #define Kd 30
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 6:a652deaae134 30 #define calibrationMotorspeed 350
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 6:a652deaae134 57 extern float sensorErrors[8];
JamieBignell 6:a652deaae134 58
JamieBignell 6:a652deaae134 59 extern float Prop;
JamieBignell 6:a652deaae134 60 extern float Inte;
JamieBignell 6:a652deaae134 61 extern float Dere;
JamieBignell 5:dfea493f7a12 62
JamieBignell 6:a652deaae134 63 extern float errorVar;
JamieBignell 6:a652deaae134 64 extern float previousError;
JamieBignell 6:a652deaae134 65 extern float PIDs;
JamieBignell 6:a652deaae134 66 extern int newPIDs;
JamieBignell 6:a652deaae134 67 extern int initialMotorspeed;
JamieBignell 6:a652deaae134 68 extern int leftMotorValTemp;
JamieBignell 6:a652deaae134 69 extern int rightMotorValTemp;
JamieBignell 5:dfea493f7a12 70 extern int accumulator;
JamieBignell 6:a652deaae134 71 extern bool stopMotors;
JamieBignell 5:dfea493f7a12 72 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
JamieBignell 3:7f44ab64e96b 73 //Function Definitions
JamieBignell 5:dfea493f7a12 74
JamieBignell 3:7f44ab64e96b 75 void CalibrateFunc(void);
JamieBignell 5:dfea493f7a12 76 void senseFunc(void);
JamieBignell 5:dfea493f7a12 77 void calculateFunc(void);
JamieBignell 5:dfea493f7a12 78 void driveFunc(void);
JamieBignell 5:dfea493f7a12 79 void findLineFunc(void);
JamieBignell 0:c0c329729a7a 80
JamieBignell 3:7f44ab64e96b 81 #endif // FUNCDEF_H