Final Version of food controller
Dependencies: MMA8451Q TSI mbed
Fork of foodcontroller_NoWiFi by
main.cpp
- Committer:
- danlock10y
- Date:
- 2016-06-09
- Revision:
- 5:c4bc5a92390a
- Parent:
- 4:1961b60aa8fb
File content as of revision 5:c4bc5a92390a:
#include "mbed.h" #include "TSISensor.h" #include "MMA8451Q.h" #define MMA8451_I2C_ADDRESS (0x1d<<1) Serial pc(USBTX, USBRX); // tx, rx 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 bool right; //Right or left? right = 1 bool forward; //Forward or Backward? forward = 1 int main() { while (1) { float accX=acc.getAccX(); //Measure acceleration in X direction float accY=acc.getAccY(); //Measure acceleration in Y direction if (tsi.readDistance() != 0) { 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.1) { right = false; //printf("left \r\n"); }//endif if (accX < -0.1) { right = true; //printf("right \r\n"); }//endif wait(0.1); if (accY > 0.1) { forward = false; //printf("back \r\n"); }//endif if (accY < -0.1) { forward = true; //printf("for \r\n"); }//endif wait(0.1); if(abs(accY) > abs(accX)) { 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; lefthigh = 0; leftlow = 0; righthigh = 0; rightlow = 0; forwardhigh = 0; forwardlow = 0; backwardhigh = 1; backwardlow = 0; }//endelse }//endif else { if(right == true) { Direction = 1; lefthigh = 0; leftlow = 0; righthigh = 1; rightlow = 0; forwardhigh = 0; forwardlow = 0; backwardhigh = 0; backwardlow = 0; }//endif else { Direction = 3; lefthigh = 1; leftlow = 0; righthigh = 0; rightlow = 0; forwardhigh = 0; forwardlow = 0; backwardhigh = 0; backwardlow = 0; }//endelse }//endelse printf("Direction = %d \r\n", Direction); }//endwhile }//endmain