Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed 3875_Individualproject
main/main.h
- Committer:
- jamesheavey
- Date:
- 2020-04-17
- Revision:
- 48:76cf4521d342
- Parent:
- 41:2b6b73dd897c
- Child:
- 51:3148875bb9e5
File content as of revision 48:76cf4521d342:
#ifndef MAIN_H #define MAIN_H #include "m3pi.h" #include "mbed.h" #include <stdlib.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 looped_goal(); void simplify(); void invert_path(); void non_looped(); void looped(); void node_logic(); bool coord_check(); void update_index(); void choose_turn(); void back_track(); int path_to_point_index( int path_point ); void print_data( char *word ); void dead_end_removal(int index1, int index2); // 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 loop_check; int dist = 0; bool first = true; bool goal_node = false; bool t_restart = true; char dir; int curr_index; int curr_coords[2]; int total_points; unsigned int looped_path[100]; unsigned int point[100]; // use a struct unsigned int type[100]; unsigned int explored[100]; int coords_x[100]; int coords_y[100]; int shortest[100]; #endif