Václav Lízner
/
2048
school project
main.cpp
- Committer:
- xlizne01
- Date:
- 2016-01-12
- Revision:
- 2:3278e4fd8fc2
- Parent:
- 1:b23831b703fe
- Child:
- 3:94bfc4de4ab1
File content as of revision 2:3278e4fd8fc2:
#include "mbed.h" #include "MMA8451Q.h" #define MMA8451_I2C_ADDRESS (0x1d<<1) #define MOVE_ANGLE 45 // > degrees for move MMA8451Q acc(PTE25, PTE24, MMA8451_I2C_ADDRESS); void accelerometer(void); int i,j,k; int RED, GREEN, BLUE; int RledA, RledB, GledA, GledB, BledA, BledB; char acc_dir; DigitalOut prvni(PTE5); DigitalOut druhy(PTE4); DigitalOut treti(PTE3); DigitalOut ctvrty(PTE2); DigitalOut paty(PTB11); DigitalOut sesty(PTB10); DigitalOut sedmy(PTB9); DigitalOut osmy(PTB8); DigitalOut Rled1(PTC9); DigitalOut Rled2(PTC8); DigitalOut Rled3(PTA5); DigitalOut Rled4(PTA4); DigitalOut Rled5(PTA12); DigitalOut Rled6(PTD4); DigitalOut Rled7(PTA1); DigitalOut Rled8(PTA2); DigitalOut Gled1(PTA13); DigitalOut Gled2(PTD5); DigitalOut Gled3(PTD0); DigitalOut Gled4(PTD2); DigitalOut Gled5(PTD3); DigitalOut Gled6(PTD1); DigitalOut Gled7(PTE31); DigitalOut Gled8(PTB0); DigitalOut Bled1(PTC1); DigitalOut Bled2(PTE29); DigitalOut Bled3(PTC2); DigitalOut Bled4(PTB3); DigitalOut Bled5(PTB2); DigitalOut Bled6(PTE21); DigitalOut Bled7(PTE20); DigitalOut Bled8(PTB1); int main() { while(1) { accelerometer(); for(k=1;k<5;k++) { if(k==1) { prvni=1; druhy=1; treti=0; ctvrty=0; paty=0; sesty=0; sedmy=0; osmy=0; } if(k==2) { prvni=0; druhy=0; treti=1; ctvrty=1; paty=0; sesty=0; sedmy=0; osmy=0; } if(k==3) { prvni=0; druhy=0; treti=0; ctvrty=0; paty=1; sesty=1; sedmy=0; osmy=0; } if(k==4) { prvni=0; druhy=0; treti=0; ctvrty=0; paty=0; sesty=0; sedmy=1; osmy=1; } for(j=1;j<5;j++) { // if(j==1) // { switch(acc_dir) { case 'D': RED=10; break; case 'R': BLUE=10; break; case 'U': GREEN=10; break; case 'L': RED=10; BLUE=10; break; default: break; } /* } if(j==2) { } if(j==3) { } if(j==4) { } */ for(i=11;i>0;i--) { if(RED>0) { RledA=1; RledB=1; } else { RledA=0; RledB=0; } if(GREEN>0) { GledA=1; GledB=1; } else { GledA=0; GledB=0; } if(BLUE>0) { BledA=1; BledB=1; } else { BledA=0; BledB=0; } if(j==1) { Rled1=RledA; Rled2=RledB; Gled1=GledA; Gled2=GledB; Bled1=BledA; Bled2=BledB; } if(j==2) { Rled3=RledA; Rled4=RledB; Gled3=GledA; Gled4=GledB; Bled3=BledA; Bled4=BledB; } if(j==3) { Rled5=RledA; Rled6=RledB; Gled5=GledA; Gled6=GledB; Bled5=BledA; Bled6=BledB; } if(j==4) { Rled7=RledA; Rled8=RledB; Gled7=GledA; Gled8=GledB; Bled7=BledA; Bled8=BledB; } wait(0.00001); RED--; BLUE--; GREEN--; } } } } } void accelerometer() { float ax, ay, az; float xAngle, yAngle; ax = acc.getAccX(); ay = acc.getAccY(); az = acc.getAccZ(); xAngle = atan( ax / (sqrt((ay)*(ay) + (az)*(az)))) * 60; yAngle = atan( ay / (sqrt((ax)*(ax) + (az)*(az)))) * 60; if(abs(xAngle) >= abs(yAngle)) { if(xAngle >= MOVE_ANGLE) { acc_dir = 'U'; // +X } if(xAngle <= -MOVE_ANGLE) { acc_dir = 'D'; // -X } } else { if(yAngle >= MOVE_ANGLE) { acc_dir = 'L'; // +Y } if(yAngle <= -MOVE_ANGLE) { acc_dir = 'R'; // -Y } } }