Final Version of food controller
Dependencies: MMA8451Q TSI mbed
Fork of foodcontroller_NoWiFi by
Diff: main.cpp
- Revision:
- 5:c4bc5a92390a
- Parent:
- 4:1961b60aa8fb
--- a/main.cpp Thu Jun 09 10:31:59 2016 +0000 +++ b/main.cpp Thu Jun 09 14:44:14 2016 +0000 @@ -5,20 +5,19 @@ #define MMA8451_I2C_ADDRESS (0x1d<<1) Serial pc(USBTX, USBRX); // tx, rx -PwmOut gled(LED_GREEN); //Indicator for touch sensor Output -TSISensor tsi; //Setup touch sensor -MMA8451Q acc(PTE25, PTE24, MMA8451_I2C_ADDRESS); //Setup accelerometer -DigitalOut lefthigh(PTC11); //Test LED for left -DigitalOut leftlow(PTC9); -DigitalOut righthigh(PTC5); //Test LED for right -DigitalOut rightlow(PTA4); -DigitalOut forwardhigh(PTC16); //Test LED for forward -DigitalOut forwardlow(PTD0); -DigitalOut backwardhigh(PTA17); //Test LED for backward -DigitalOut backwardlow(PTD1); - -float accX=acc.getAccX(); //Measure acceleration in X direction -float accY=acc.getAccY(); //Measure acceleration in Y direction +DigitalOut gled(LED_GREEN); //Indicator for touch sensor Output speed 1 +DigitalOut bled(LED_BLUE); //Indicator for touch sensor Output speed 2 +DigitalOut rled(LED_RED); //Indicator for touch sensor Output speed 3 +TSISensor tsi; //Setup touch sensor +MMA8451Q acc(PTE25, PTE24, MMA8451_I2C_ADDRESS); //Setup accelerometer +DigitalOut lefthigh(PTC7); //Test LED for left +DigitalOut leftlow(PTA1); +DigitalOut righthigh(PTC4); //Test LED for right +DigitalOut rightlow(PTA12); +DigitalOut forwardhigh(PTC0); //Test LED for forward +DigitalOut forwardlow(PTC3); +DigitalOut backwardhigh(PTA2); //Test LED for backward +DigitalOut backwardlow(PTD4); int Direction; //2 bit number to describe direction 0 forward assigned CW int Velocity; //2 bit number to vary velocity in game @@ -35,111 +34,58 @@ float accY=acc.getAccY(); //Measure acceleration in Y direction if (tsi.readDistance() != 0) - { -// gled = 1.0 - tsi.readPercentage(); + { if (tsi.readDistance() <= 13) { Velocity = 3; + rled = 0; + bled = 1; + gled = 1; } if (tsi.readDistance() > 13 && tsi.readDistance() < 26) { Velocity = 2; + rled = 1; + bled = 0; + gled = 1; } if (tsi.readDistance() >= 26) { Velocity = 1; + rled = 1; + bled = 1; + gled = 0; } - + printf("x=%d\r\n",Velocity); wait(0.2); }//endif touch sensor - - - if((accX <= 0.1f) && (accX >= -0.1f)) - { - if (right == false) - { - righthigh = 1; - rightlow = 0; - } //endif - else - { - lefthigh = 1; - leftlow = 0; - }//endelse - }//endif - + if (accX > 0.1) { - lefthigh = 0; - leftlow = 0; - righthigh = 1; - rightlow = 0; - forwardhigh = 0; - forwardlow = 0; - backwardhigh = 0; - backwardlow = 0; right = false; - printf("left \r\n"); + //printf("left \r\n"); }//endif if (accX < -0.1) { - lefthigh = 1; - leftlow = 0; - righthigh = 0; - rightlow = 0; - forwardhigh = 0; - forwardlow = 0; - backwardhigh = 0; - backwardlow = 0; right = true; - printf("right \r\n"); + //printf("right \r\n"); }//endif wait(0.1); - if((accY <= 0.1) && (accY >= -0.1)) - { - if (forward == false) - { - forwardhigh = 1; - forwardlow = 0; - }//endif - else - { - backwardhigh = 1; - backwardlow = 0; - }//endelse - }//endif - if (accY > 0.1) { - lefthigh = 0; - leftlow = 0; - righthigh = 0; - rightlow = 0; - forwardhigh = 1; - forwardlow = 0; - backwardhigh = 0; - backwardlow = 0; forward = false; - printf("back \r\n"); + //printf("back \r\n"); }//endif if (accY < -0.1) { - lefthigh = 0; - leftlow = 0; - righthigh = 0; - rightlow = 0; - forwardhigh = 0; - forwardlow = 0; - backwardhigh = 1; - backwardlow = 0; forward = true; - printf("for \r\n"); + //printf("for \r\n"); }//endif wait(0.1); @@ -149,21 +95,61 @@ if(forward == true) { Direction = 0; + + lefthigh = 0; + leftlow = 0; + righthigh = 0; + rightlow = 0; + forwardhigh = 1; + forwardlow = 0; + backwardhigh = 0; + backwardlow = 0; + }//endif else { - Direction = 2; + Direction = 2; + + lefthigh = 0; + leftlow = 0; + righthigh = 0; + rightlow = 0; + forwardhigh = 0; + forwardlow = 0; + backwardhigh = 1; + backwardlow = 0; + }//endelse }//endif else { if(right == true) { - Direction = 1; + Direction = 1; + + lefthigh = 0; + leftlow = 0; + righthigh = 1; + rightlow = 0; + forwardhigh = 0; + forwardlow = 0; + backwardhigh = 0; + backwardlow = 0; + }//endif else { - Direction = 3; + Direction = 3; + + lefthigh = 1; + leftlow = 0; + righthigh = 0; + rightlow = 0; + forwardhigh = 0; + forwardlow = 0; + backwardhigh = 0; + backwardlow = 0; + }//endelse }//endelse @@ -171,3 +157,4 @@ }//endwhile }//endmain +