first commit

Dependencies:   mbed MMA8451Q

steering_header.h

Committer:
aalawfi
Date:
2021-11-22
Revision:
34:cb9a0cec2feb
Parent:
31:d570f957e083

File content as of revision 34:cb9a0cec2feb:

/*
    Include libraries, IO pins 
*/
#include "cmath"
#include <algorithm>    // std::min, std::max
#define M_PI 3.14159265359f
#define MAX_TURN_ANGLE M_PI/4
#define MIN_TURN_ANGLE -M_PI/4
#define SERVO_MOTOR_FREQ 50.0f
#define CENTER_DUTY_CYCLE 0.075f
float REF = 0.00f; //in meters

/* most recent PID values
float KP = 5.3;//1.2  // 1.5
#define KI_STEERING 10.2//4.1985
float KD = 0.1;//0.05003 
*/

float KP =  6.6f;             //at 0.17 best is 6.0f
float KI_STEERING = 0.3f;  // at 0.17 best is 0.25f;
float KD =  0.4f;           //at 0.17 best is 0.3f;


#define TIME_DERIVATIVE 1 //0.1 // was 0.08
#define TIME_INTEGRAL 1  //0.5 // 0.4 

#define TI_STEERING 0.01f // in seconds
#define SEN_DIFF_TO_DIST 3.5216
#define BITS 4
//Construct the Ticker to call the steering control system at a set rate
// INPUT PINS 
AnalogIn left_distance_sensor(PTB1); 
AnalogIn right_distance_sensor(PTB0); 

// PWM out 
PwmOut servo_motor_pwm(PTD4);

// Digital outs 
DigitalOut seg1[BITS]={PTC17, PTA16,PTA17,PTE31}; // insert pin numbers


//Interrupt In
InterruptIn left_landmark_sensor(PTD6);
InterruptIn right_landmark_sensor(PTD7);

// Tickers
volatile bool steering_enabled = true;
Ticker steering_control_ticker;
int counter=0;
int lap=-1;