The subsystem design/basis for the final project

Dependencies:   mbed-rtos mbed-src pixylib

Committer:
balsamfir
Date:
Mon Mar 14 00:40:28 2016 +0000
Revision:
3:dfb6733ae397
Parent:
2:2bc519e14bae
Child:
4:01252f56e0e5
Ported robot controls to new framework and got everything working and tested

Who changed what in which revision?

UserRevisionLine numberNew contents of line
balsamfir 2:2bc519e14bae 1 // Includes
balsamfir 2:2bc519e14bae 2 // ----------------------------------------------------------------
JamesMacLean 0:80a37292f6b2 3
balsamfir 2:2bc519e14bae 4 #include "global.h"
balsamfir 2:2bc519e14bae 5 #include "robot.h"
balsamfir 2:2bc519e14bae 6 #include "response.h"
balsamfir 2:2bc519e14bae 7 #include "tuning.h"
JamesMacLean 0:80a37292f6b2 8
JamesMacLean 0:80a37292f6b2 9
balsamfir 2:2bc519e14bae 10 // Definitions
balsamfir 2:2bc519e14bae 11 // ----------------------------------------------------------------
balsamfir 2:2bc519e14bae 12 enum Mode {
balsamfir 3:dfb6733ae397 13 AUTO_TRACK = '0',
balsamfir 3:dfb6733ae397 14 MANUAL_CONTROL = '1',
balsamfir 3:dfb6733ae397 15 PIXY_SUBSYSTEM = '2',
balsamfir 3:dfb6733ae397 16 MOTOR_RESPONSE = '3',
balsamfir 3:dfb6733ae397 17 SPEED_RESPONSE = '4',
balsamfir 3:dfb6733ae397 18 STEERING_RESPONSE = '5',
balsamfir 3:dfb6733ae397 19 TILT_RESPONSE = '6',
balsamfir 3:dfb6733ae397 20 MOTOR_TUNING = '7',
balsamfir 3:dfb6733ae397 21 SPEED_TUNING = '8',
balsamfir 3:dfb6733ae397 22 STEERING_TUNING = '9',
balsamfir 3:dfb6733ae397 23 TILT_TUNING = 'a'
balsamfir 2:2bc519e14bae 24 };
JamesMacLean 0:80a37292f6b2 25
balsamfir 2:2bc519e14bae 26 void PrintMenu(Serial *pc);
JamesMacLean 0:80a37292f6b2 27
JamesMacLean 0:80a37292f6b2 28
balsamfir 2:2bc519e14bae 29 // Wiring - TODO
balsamfir 2:2bc519e14bae 30 // ----------------------------------------------------------------
balsamfir 2:2bc519e14bae 31 //
balsamfir 2:2bc519e14bae 32 //
balsamfir 2:2bc519e14bae 33 //
balsamfir 2:2bc519e14bae 34 //
balsamfir 2:2bc519e14bae 35 //
balsamfir 2:2bc519e14bae 36 //
JamesMacLean 0:80a37292f6b2 37
balsamfir 2:2bc519e14bae 38 // Main Program
balsamfir 2:2bc519e14bae 39 // ----------------------------------------------------------------
balsamfir 2:2bc519e14bae 40 int main() {
balsamfir 3:dfb6733ae397 41 int mode;
balsamfir 3:dfb6733ae397 42
JamesMacLean 0:80a37292f6b2 43 while (1) {
balsamfir 2:2bc519e14bae 44 PrintMenu(&pc);
balsamfir 2:2bc519e14bae 45 mode = pc.getc();
balsamfir 3:dfb6733ae397 46 pc.printf("\r\n\r\n");
balsamfir 2:2bc519e14bae 47 switch (mode) {
balsamfir 2:2bc519e14bae 48 case AUTO_TRACK:
balsamfir 2:2bc519e14bae 49 AutoTrack();
balsamfir 2:2bc519e14bae 50 break;
balsamfir 2:2bc519e14bae 51 case MANUAL_CONTROL:
balsamfir 2:2bc519e14bae 52 ManualControl();
balsamfir 2:2bc519e14bae 53 break;
balsamfir 2:2bc519e14bae 54 case PIXY_SUBSYSTEM:
balsamfir 2:2bc519e14bae 55 PixySubsystem();
balsamfir 2:2bc519e14bae 56 break;
balsamfir 2:2bc519e14bae 57 case MOTOR_RESPONSE:
balsamfir 2:2bc519e14bae 58 MotorResponse();
balsamfir 2:2bc519e14bae 59 break;
balsamfir 2:2bc519e14bae 60 case SPEED_RESPONSE:
balsamfir 2:2bc519e14bae 61 SpeedResponse();
balsamfir 2:2bc519e14bae 62 break;
balsamfir 2:2bc519e14bae 63 case STEERING_RESPONSE:
balsamfir 2:2bc519e14bae 64 SteeringResponse();
balsamfir 2:2bc519e14bae 65 break;
balsamfir 2:2bc519e14bae 66 case TILT_RESPONSE:
balsamfir 2:2bc519e14bae 67 TiltResponse();
balsamfir 2:2bc519e14bae 68 break;
balsamfir 2:2bc519e14bae 69 case MOTOR_TUNING:
balsamfir 2:2bc519e14bae 70 MotorTuning();
balsamfir 2:2bc519e14bae 71 break;
balsamfir 2:2bc519e14bae 72 case SPEED_TUNING:
balsamfir 2:2bc519e14bae 73 SpeedTuning();
balsamfir 2:2bc519e14bae 74 break;
balsamfir 2:2bc519e14bae 75 case STEERING_TUNING:
balsamfir 2:2bc519e14bae 76 SteeringTuning();
balsamfir 2:2bc519e14bae 77 break;
balsamfir 2:2bc519e14bae 78 case TILT_TUNING:
balsamfir 3:dfb6733ae397 79 TiltTuning();
balsamfir 2:2bc519e14bae 80 break;
balsamfir 2:2bc519e14bae 81 default:
balsamfir 3:dfb6733ae397 82 pc.printf("Error: Invalid Selection \r\n\r\n");
balsamfir 2:2bc519e14bae 83 break;
JamesMacLean 0:80a37292f6b2 84 }
balsamfir 3:dfb6733ae397 85 wait_ms(2000);
JamesMacLean 0:80a37292f6b2 86 }
JamesMacLean 0:80a37292f6b2 87 }
JamesMacLean 0:80a37292f6b2 88
balsamfir 2:2bc519e14bae 89 // Other Functions
balsamfir 2:2bc519e14bae 90 // ----------------------------------------------------------------
balsamfir 2:2bc519e14bae 91 void PrintMenu(Serial *pc){
balsamfir 3:dfb6733ae397 92 pc->printf("\e[1;1H\e[2J");
balsamfir 3:dfb6733ae397 93 pc->printf("Select Mode: \r\n\r\n");
balsamfir 3:dfb6733ae397 94
balsamfir 2:2bc519e14bae 95 pc->printf("---------------------------------------------------------------- \r\n");
balsamfir 2:2bc519e14bae 96 pc->printf("0. Automated Tracking \r\n");
balsamfir 2:2bc519e14bae 97 pc->printf("1. Manual Control \r\n");
balsamfir 2:2bc519e14bae 98 pc->printf("2. Pixy Subsystem \r\n");
balsamfir 2:2bc519e14bae 99 pc->printf("3. Motor Response \r\n");
balsamfir 2:2bc519e14bae 100 pc->printf("4. Speed Response \r\n");
balsamfir 2:2bc519e14bae 101 pc->printf("5. Steering Response \r\n");
balsamfir 2:2bc519e14bae 102 pc->printf("6. Tilt Response \r\n");
balsamfir 3:dfb6733ae397 103 pc->printf("7. Motor Tunning \r\n");
balsamfir 3:dfb6733ae397 104 pc->printf("8. Speed Tunning \r\n");
balsamfir 3:dfb6733ae397 105 pc->printf("9. Steeing Tunning \r\n");
balsamfir 3:dfb6733ae397 106 pc->printf("a. Tilit Tunning \r\n");
balsamfir 2:2bc519e14bae 107 pc->printf("---------------------------------------------------------------- \r\n\r\n");
JamesMacLean 0:80a37292f6b2 108
balsamfir 2:2bc519e14bae 109 pc->printf("=> ");
JamesMacLean 0:80a37292f6b2 110 }