James Heavey / Mbed 2 deprecated 3875_DISSERTATION

Dependencies:   mbed 3875_Individualproject

main/main.h

Committer:
jamesheavey
Date:
2020-04-03
Revision:
21:54ea75f7984f
Parent:
20:5cf6a378801d
Child:
22:02dda79d50b4

File content as of revision 21:54ea75f7984f:

#ifndef MAIN_H
#define MAIN_H

#include "m3pi.h"
#include "mbed.h"

// Constants
#define A 0.5         // 20
#define B 1/10000     // 10000
#define C 1.5         // 2/3

#define SENS_THRESH 500    // >500 = black
#define TURN_SPEED 0.2

// API 
extern m3pi robot;

// LEDs 
extern BusOut leds;

// Buttons 
extern DigitalIn button_A;
extern DigitalIn button_B;
extern DigitalIn button_X;
extern DigitalIn button_Y;
extern DigitalIn button_enter;
extern DigitalIn button_back;

// Potentiometers
extern AnalogIn pot_P;
extern AnalogIn pot_I;
extern AnalogIn pot_D;
extern AnalogIn pot_S;

// Sensors
extern DigitalInOut QTRA; //connected to digital P26
extern DigitalInOut QTRB; //connected to digital P25

// Timers
Timer t_L;     // left encoder
Timer t_R;     // right encoder
Timer t_coord; // coordinate timer

// Prototypes

void read_encoders();
void init();
void calibrate();
void follow_line();
bool junction_detect();
char junction_logic();
void turn_select( char turn );
void left();
void right();
void back();
void goal();
void simplify();
void invert_path();
void non_looped();
void looped();
void node_logic();

// Global Variables
char path[100];
char inv_path[100];
int path_length = 0;
unsigned int *sensor;
float speed;
float proportional = 0.0;
float prev_proportional = 0.0;
float integral = 0.0;
float derivative = 0.0;
int encoder[2];
int dist_est_1 = 0;
int dist_est_2 = 0;

bool t_restart = true;
char dir = 'N';
int curr_coords[2];
int total_points = 0;
char point[100];
int type[100];
int explored[100];
int coords_x[100];
int coords_y[100];
char turn_priority[4] = { 'S' , 'W' , 'N', 'E' };    // reversed
#endif