TomYumBoys / Mbed 2 deprecated MM2017

Dependencies:   mbed

Committer:
ryan_whr
Date:
Sun May 21 06:34:21 2017 +0000
Revision:
25:7155cb993870
Parent:
16:c26d8e007df5
Child:
26:191ec0e78774
milestone

Who changed what in which revision?

UserRevisionLine numberNew contents of line
kolanery 0:cb667de3a336 1 #ifndef __DRIVE_CONTROL_H__
kolanery 0:cb667de3a336 2 #define __DRIVE_CONTROL_H__
kolanery 0:cb667de3a336 3
kolanery 0:cb667de3a336 4 /**
kolanery 0:cb667de3a336 5 * Control mouse movements.
kolanery 0:cb667de3a336 6 * - PID Control based on sensor readings.
kolanery 0:cb667de3a336 7 * - Output PWM signals to motors based on feedback loop.
kolanery 0:cb667de3a336 8 * - Provides directional signals to the main control loop.
kolanery 0:cb667de3a336 9 */
kolanery 0:cb667de3a336 10 class DriveControl {
kolanery 0:cb667de3a336 11
kolanery 0:cb667de3a336 12 public:
kolanery 0:cb667de3a336 13 int y;
kolanery 0:cb667de3a336 14 int x;
szh66 6:1bcfda49e146 15 //float total_error;
kolanery 0:cb667de3a336 16 DriveControl (int start_x, int start_y);
ryan_whr 25:7155cb993870 17 DriveControl () {};
ryan_whr 25:7155cb993870 18
kolanery 0:cb667de3a336 19 ~DriveControl();
kolanery 0:cb667de3a336 20
kolanery 0:cb667de3a336 21 int get_next_direction();
kolanery 0:cb667de3a336 22
kolanery 0:cb667de3a336 23 int get_next_state(int state);
kolanery 0:cb667de3a336 24
kolanery 0:cb667de3a336 25 // Stops both motors. Assume no coasting.
kolanery 0:cb667de3a336 26 void stop();
kolanery 0:cb667de3a336 27
kolanery 15:151e59899221 28 void print_serial_ports();
szh66 8:4a32fc9ee939 29
kolanery 7:7215adbae3da 30 void drive_forward();
kolanery 0:cb667de3a336 31
kolanery 0:cb667de3a336 32 void turn();
kolanery 0:cb667de3a336 33
kolanery 0:cb667de3a336 34 void turn_left();
kolanery 0:cb667de3a336 35
kolanery 0:cb667de3a336 36 void turn_right();
kolanery 0:cb667de3a336 37
kolanery 7:7215adbae3da 38 void turn_around();
kolanery 7:7215adbae3da 39
kolanery 4:73510c7fa316 40 void drive(float speed);
kolanery 4:73510c7fa316 41
kolanery 0:cb667de3a336 42 bool has_front_wall();
kolanery 0:cb667de3a336 43
kolanery 0:cb667de3a336 44 bool has_right_wall();
kolanery 0:cb667de3a336 45
kolanery 0:cb667de3a336 46 bool has_left_wall();
kolanery 14:a646667ac9ea 47
kolanery 14:a646667ac9ea 48 void resetEncoders();
kolanery 14:a646667ac9ea 49
kolanery 16:c26d8e007df5 50 void clear_pid();
kolanery 16:c26d8e007df5 51
kolanery 14:a646667ac9ea 52 bool should_finish_turn_right();
kolanery 14:a646667ac9ea 53
kolanery 14:a646667ac9ea 54 bool should_finish_turn_left ();
kolanery 14:a646667ac9ea 55
kolanery 14:a646667ac9ea 56 bool should_stop_drive_forward();
kolanery 16:c26d8e007df5 57
kolanery 16:c26d8e007df5 58 bool should_finish_turn_around();
kolanery 16:c26d8e007df5 59
kolanery 16:c26d8e007df5 60 bool should_finish_drive_forward();
kolanery 0:cb667de3a336 61 };
kolanery 0:cb667de3a336 62 #endif