Andres Cano
/
STM32_read_analog
juego 2
Diff: main.cpp
- Revision:
- 2:205af2fe4225
- Parent:
- 1:17e8d7967b5a
- Child:
- 3:e936c097685c
--- a/main.cpp Fri Nov 16 12:15:24 2018 +0000 +++ b/main.cpp Sat Nov 17 21:36:40 2018 +0000 @@ -3,7 +3,6 @@ SPI deviceM(PB_15, PB_14, PB_13); DigitalOut ssel (PB_12); Serial a(USBTX,USBRX); -Ticker cambio; MPU6050 Wire(PB_9,PB_8); InterruptIn iz(PA_14); InterruptIn de(PA_13); @@ -22,10 +21,11 @@ void colision(); void juego(); void accelerometro(); -void cambiof(); -int con; +void cambio(); +void vell(); +int con=0; int az; - +//////////////////////////////////////// void sendSPI(uint8_t d1, uint8_t d2) { deviceM.unlock(); @@ -35,16 +35,15 @@ ssel=1; deviceM.lock(); } - +//////////////////////////////////////// void borrar() { for(int i;i<=8;i++) { sendSPI(i,0); } } - +/////////////////////////////////////// void inicializar(){ - a.baud(9600); sendSPI(0x0c,1); sendSPI(0x09,0); @@ -58,11 +57,9 @@ vel=200; carro=0b00011000; } - +////////////////////////////////////////// void imprimir() { - - int c_d; //carro, obstaculo y entorno int c_e; //carro y entorno int din; @@ -94,37 +91,31 @@ if( (obs>>b)==carro && j==8 ){ colision(); } - + accelerometro(); + cambio(); wait_ms(vel); - con++; - if(con==10){ - vel=vel-10;} } - } - +////////////////////////////////////////// int main() { - cambio.attach(&cambiof,0.2); while(1){ - accelerometro(); juego(); } } - - +/////////////////////////////////////////// void juego(){ inicializar(); - de.fall(&derecha); - iz.fall(&izquierda); + //de.rise(&derecha); + //iz.rise(&izquierda); a.printf("inicio\n"); while(1){ - con=0; b=2*(rand()%3); - a.printf("numero %d\n",b); - imprimir(); + a.printf("umero %d\n",az); + imprimir(); + vell(); } } - +/////////////////////////////////// void derecha() { if(carro==0b00011000 || carro==0b01100000) @@ -132,6 +123,7 @@ a.printf("entra der \n"); return; } +/////////////////////////////////// void izquierda() { if( carro==0b00000110 || carro==0b00011000 ) @@ -139,7 +131,16 @@ a.printf("entra izq \n"); return; } - +//////////////////////////////////// +void cambio(){ + switch(az){ + case 1: carro = cam[0];break; + case 2: carro = cam[1];break; + case 3: carro = cam[2];break; + default: break;} + + } +//////////////////////////////////// void colision () { borrar(); @@ -148,38 +149,29 @@ sendSPI(4,0b01111110); sendSPI(5,0b01111110); sendSPI(6,0b01111110); + con=0; + vel=200; wait(2); juego(); } - +///////////////////////////////////// void accelerometro(){ - Wire.getAccelero(q); a.printf("accelero: \t x= %f,\t y= %f, \t z= %f \n",q[0],q[1],q[2]); - int accelero[3]; - //Wire.getAcceleroRaw(accelero); - int valor=accelero[1]; - if(valor<=(2000) && valor>=(1000)){ + int valor=q[1]; + if(valor<=(-4) && valor>=(-10)){ az=1;} - if(valor<(1000) && valor>=(-1000)){ + if(valor<(4) && valor>=(-4)){ az=2;} - if(valor<(-1000) && valor>=(-2000)){ + if(valor<(10) && valor>=(4)){ az=3;} - a.printf("holi : \t %d \n",az); - wait(0.8); - + a.printf("az : \t %d \n",az); } - -void cambiof(){ - - switch (az){ - case 1: carro=cam[1]; - break; - case 2: carro=cam[2]; - break; - case 3: carro=cam[3]; - break; - } - - +///////////////////////////////////// +void vell(){ + con++; + if(con>2 && vel>=20) + { + vel=vel-(vel*0.2); + } } \ No newline at end of file