Final Version of food controller
Dependencies: MMA8451Q TSI mbed
Fork of foodcontroller_NoWiFi by
main.cpp
- Committer:
- danlock10y
- Date:
- 2016-06-09
- Revision:
- 1:6dd9eca697db
- Parent:
- 0:c5a6d47904dc
- Child:
- 2:a6db66722be0
File content as of revision 1:6dd9eca697db:
#include "mbed.h" #include "TSISensor.h" #include "MMA8451Q.h" #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 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) { if (tsi.readPercentage() != 0) { gled = 1.0 - tsi.readPercentage(); }//endif touch sensor if((accX <= 0.1f) && (accX >= -0.1f)) { if (right == true) { 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 = true; }//endif if (accX < -0.1) { lefthigh = 1; leftlow = 0; righthigh = 0; rightlow = 0; forwardhigh = 0; forwardlow = 0; backwardhigh = 0; backwardlow = 0; right = false; }//endif wait(0.1); if((acc.getAccY() <= 0.1) && (acc.getAccY() >= -0.1)) { if (forward == true) { forwardhigh = 1; forwardlow = 0; }//endif else { backwardhigh = 1; backwardlow = 0; }//endelse }//endif if (acc.getAccY() > 0.1) { lefthigh = 0; leftlow = 0; righthigh = 0; rightlow = 0; forwardhigh = 1; forwardlow = 0; backwardhigh = 0; backwardlow = 0; forward = true; }//endif if (acc.getAccY() < -0.1) { lefthigh = 0; leftlow = 0; righthigh = 0; rightlow = 0; forwardhigh = 0; forwardlow = 0; backwardhigh = 1; backwardlow = 0; forward = false; }//endif wait(0.1); }//endwhile }//endmain