ELCT 302 / Mbed 2 deprecated Top_Fuel_Dragster

Dependencies:   mbed

Committer:
KDrainEE
Date:
Sun Apr 22 18:05:58 2018 +0000
Revision:
11:c47a34f047d5
Parent:
6:1b4a677c468c
Child:
12:3b83eb9a98bc
split code up

Who changed what in which revision?

UserRevisionLine numberNew contents of line
KDrainEE 0:30871514c229 1 #include "mbed.h"
KDrainEE 0:30871514c229 2 #include <iostream>
KDrainEE 11:c47a34f047d5 3 #include "globals.h"
ELCT302Honors 6:1b4a677c468c 4 #include "lsc.h"
KDrainEE 11:c47a34f047d5 5 #include "stateMachine.h"
KDrainEE 11:c47a34f047d5 6 #include "control.h"
KDrainEE 0:30871514c229 7
ELCT302Honors 6:1b4a677c468c 8 /***********************************|Pin Declarations|*************************************************************/
ELCT302Honors 6:1b4a677c468c 9 //Communication
ELCT302Honors 6:1b4a677c468c 10 Serial bt(PTE22, PTE23); //Serial Pins (Tx, Rx)
ELCT302Honors 6:1b4a677c468c 11 //LEDs
ELCT302Honors 6:1b4a677c468c 12 DigitalOut blue(LED_BLUE);
KDrainEE 11:c47a34f047d5 13 //DigitalOut red(LED_RED);
KDrainEE 11:c47a34f047d5 14 //DigitalOut green(LED_GREEN);
ELCT302Honors 6:1b4a677c468c 15 //Checkpoint Interrupts
ELCT302Honors 6:1b4a677c468c 16 InterruptIn navRt(PTD2);
ELCT302Honors 6:1b4a677c468c 17 InterruptIn navLft(PTD3);
KDrainEE 11:c47a34f047d5 18
KDrainEE 0:30871514c229 19
ELCT302Honors 6:1b4a677c468c 20 /***********************************|Variable Declarations|*************************************************************/
KDrainEE 0:30871514c229 21
KDrainEE 11:c47a34f047d5 22
ELCT302Honors 3:246625f3ceee 23
ELCT302Honors 5:aa582398b2eb 24 bool lTrig = false;
ELCT302Honors 5:aa582398b2eb 25 bool rTrig = false;
ELCT302Honors 3:246625f3ceee 26
ELCT302Honors 3:246625f3ceee 27 volatile int rightCount;
ELCT302Honors 3:246625f3ceee 28 volatile int leftCount;
ELCT302Honors 6:1b4a677c468c 29 bool go = 0;
ELCT302Honors 6:1b4a677c468c 30
KDrainEE 11:c47a34f047d5 31 //void waitState()
KDrainEE 11:c47a34f047d5 32 //{
KDrainEE 11:c47a34f047d5 33 // Setpoint = 0; //Makes sure the car isn't moving
KDrainEE 11:c47a34f047d5 34 // state = 'w';
KDrainEE 11:c47a34f047d5 35 // green = red = 1;
KDrainEE 11:c47a34f047d5 36 // blue = 0; //blue LED indicating car is in wait state
KDrainEE 11:c47a34f047d5 37 //}
KDrainEE 11:c47a34f047d5 38 //void offTrack()
KDrainEE 11:c47a34f047d5 39 //{
KDrainEE 11:c47a34f047d5 40 // Setpoint = 0;
KDrainEE 11:c47a34f047d5 41 // brake.write(1);
KDrainEE 11:c47a34f047d5 42 // state = 'o';
KDrainEE 11:c47a34f047d5 43 // //bt.putc(state);
KDrainEE 11:c47a34f047d5 44 // green = blue = 1;
KDrainEE 11:c47a34f047d5 45 // red = 0;
KDrainEE 11:c47a34f047d5 46 // waitState();
KDrainEE 11:c47a34f047d5 47 //}
KDrainEE 11:c47a34f047d5 48 //
KDrainEE 11:c47a34f047d5 49 //void letsGo()
KDrainEE 11:c47a34f047d5 50 //{
KDrainEE 11:c47a34f047d5 51 // state = 'g';
KDrainEE 11:c47a34f047d5 52 // //bt.putc(state);
KDrainEE 11:c47a34f047d5 53 // red = blue = 1;
KDrainEE 11:c47a34f047d5 54 // green = 0;
KDrainEE 11:c47a34f047d5 55 // brake.write(0);
KDrainEE 11:c47a34f047d5 56 // go = 1;
KDrainEE 11:c47a34f047d5 57 // Setpoint = spHolder;
KDrainEE 11:c47a34f047d5 58 //}
KDrainEE 11:c47a34f047d5 59 //
KDrainEE 11:c47a34f047d5 60 //void stopState()
KDrainEE 11:c47a34f047d5 61 //{
KDrainEE 11:c47a34f047d5 62 // state = 's';
KDrainEE 11:c47a34f047d5 63 // spHolder = Setpoint;
KDrainEE 11:c47a34f047d5 64 // Setpoint = 0;
KDrainEE 11:c47a34f047d5 65 // brake.write(1);
KDrainEE 11:c47a34f047d5 66 // waitState();
KDrainEE 11:c47a34f047d5 67 //}
ELCT302Honors 6:1b4a677c468c 68
KDrainEE 11:c47a34f047d5 69 //void applyBrake()
KDrainEE 11:c47a34f047d5 70 //{
KDrainEE 11:c47a34f047d5 71 // spHolder = Setpoint;
KDrainEE 11:c47a34f047d5 72 // brake.write(1);
KDrainEE 11:c47a34f047d5 73 // Setpoint = 0.0;
KDrainEE 11:c47a34f047d5 74 //}
KDrainEE 11:c47a34f047d5 75 //
KDrainEE 11:c47a34f047d5 76 //void releaseBrake()
KDrainEE 11:c47a34f047d5 77 //{
KDrainEE 11:c47a34f047d5 78 // brake.write(0);
KDrainEE 11:c47a34f047d5 79 // Setpoint = spHolder;
KDrainEE 11:c47a34f047d5 80 //}
KDrainEE 11:c47a34f047d5 81 bool paramChanged = false;
ELCT302Honors 6:1b4a677c468c 82
KDrainEE 0:30871514c229 83 void serCb()
KDrainEE 0:30871514c229 84 {
KDrainEE 0:30871514c229 85 char x = bt.getc();
KDrainEE 0:30871514c229 86 if (x == 'u')
KDrainEE 0:30871514c229 87 {
ELCT302Honors 3:246625f3ceee 88 Setpoint += 0.025;
KDrainEE 11:c47a34f047d5 89 paramChanged = true;
KDrainEE 0:30871514c229 90 }
KDrainEE 0:30871514c229 91 else if(x == 'h')
KDrainEE 0:30871514c229 92 {
ELCT302Honors 3:246625f3ceee 93 Setpoint -= 0.025;
KDrainEE 11:c47a34f047d5 94 paramChanged = true;
ELCT302Honors 6:1b4a677c468c 95 }
KDrainEE 0:30871514c229 96 else
KDrainEE 0:30871514c229 97 {
KDrainEE 2:e87736742f99 98 bt.printf("Invalid input");
KDrainEE 0:30871514c229 99 }
KDrainEE 0:30871514c229 100 if(Setpoint > MAXM) Setpoint = MAXM;
KDrainEE 2:e87736742f99 101 if(Setpoint < MINM) Setpoint = MINM;
KDrainEE 0:30871514c229 102 }
KDrainEE 0:30871514c229 103
ELCT302Honors 3:246625f3ceee 104 void incL()
ELCT302Honors 3:246625f3ceee 105 {
ELCT302Honors 3:246625f3ceee 106 leftCount++;
ELCT302Honors 5:aa582398b2eb 107 lTrig = true;
ELCT302Honors 3:246625f3ceee 108 }
KDrainEE 2:e87736742f99 109
ELCT302Honors 3:246625f3ceee 110 void incR()
KDrainEE 0:30871514c229 111 {
ELCT302Honors 3:246625f3ceee 112 rightCount++;
ELCT302Honors 5:aa582398b2eb 113 rTrig = true;
KDrainEE 0:30871514c229 114 }
KDrainEE 0:30871514c229 115
KDrainEE 0:30871514c229 116 int main()
KDrainEE 0:30871514c229 117 {
ELCT302Honors 3:246625f3ceee 118 bt.baud(115200);
ELCT302Honors 6:1b4a677c468c 119 bt.attach(&serCb);
KDrainEE 11:c47a34f047d5 120 cameraInit();
KDrainEE 11:c47a34f047d5 121 controlInit();
KDrainEE 0:30871514c229 122
ELCT302Honors 3:246625f3ceee 123 rightCount = 0;
ELCT302Honors 3:246625f3ceee 124 leftCount = 0;
ELCT302Honors 5:aa582398b2eb 125
ELCT302Honors 3:246625f3ceee 126 navRt.fall(&incR);
ELCT302Honors 3:246625f3ceee 127 navLft.fall(&incL);
KDrainEE 11:c47a34f047d5 128 _state = WAIT;
KDrainEE 0:30871514c229 129 while(1) {
KDrainEE 11:c47a34f047d5 130 bt.printf("%f %f\r\n", data[0], data[1]);
KDrainEE 0:30871514c229 131 }
KDrainEE 0:30871514c229 132 }