use this

Dependencies:   mbed

Fork of greenimugetithothot by SGMP Coperations

Files at this revision

API Documentation at this revision

Comitter:
iampalop
Date:
Wed Dec 13 03:35:22 2017 +0000
Parent:
1:44b26709b117
Commit message:
PopDetect

Changed in this revision

main.cpp Show annotated file Show diff for this revision Revisions of this file
--- a/main.cpp	Sun Dec 10 07:13:07 2017 +0000
+++ b/main.cpp	Wed Dec 13 03:35:22 2017 +0000
@@ -6,23 +6,247 @@
 
 Serial pc(D1, D0);
 
+DigitalIn get(PC_7);
+DigitalIn mon1(PA_7);
+DigitalIn mon2(PB_6);
+DigitalIn mon3(PA_5);
+
 float axis_gz, axis_gy, axis_gx;
 float axis_az, axis_ay, axis_ax;
+float CurAy, CurAx, CurAz, CurGx, CurGy, CurGz;
+float diffAy, diffAx, diffAz, diffGx, diffGy, diffGz;
+float getAy, getAx, getAz, getGx, getGy, getGz;
+int getitem = 1, monster1 = 1, monster2 = 1, monster3 = 1, boss1 = 1, boss2 = 1, boss3 = 1;
 
 int main(){
 
     while(1){
-        wait(0.1);
+        //wait(0.1);
         axis_Gen.Update();
-        axis_ax = axis_Gen.g_ax()*180;
-        axis_ay = axis_Gen.g_ay()*180;
-        axis_az = axis_Gen.g_az()*180;
-        axis_gx = axis_Gen.g_gx();
-        axis_gy = axis_Gen.g_gy();
-        axis_gz = axis_Gen.g_gz(); 
-        pc.printf(" axis_x %f\t axis_y %f\t axis_z %f\n\n\n\r", axis_gx, axis_gy, axis_gz);     
-        //pc.printf(" axis_x %f\t axis_y %f\t axis_z %f\n\n\n\r", axis_ax, axis_ay, axis_az);
-        wait(0.2);     
+        axis_ax = (axis_Gen.g_ax()*1000)+0;
+        axis_ay = (axis_Gen.g_ay()*1000)+0;
+        axis_az = (axis_Gen.g_az()*1000)-1000;
+        axis_gx = axis_Gen.g_gx()*4;
+        axis_gy = axis_Gen.g_gy()*4;
+        axis_gz = axis_Gen.g_gz()*4; 
+        pc.printf(" Gaxis_x %f\t Gaxis_y %f\t Gaxis_z %f  ", axis_gx, axis_gy, axis_gz);     
+        pc.printf(" Aaxis_x %f\t Aaxis_y %f\t Aaxis_z %f\n\n\n\r", axis_ax, axis_ay, axis_az);
+//        wait(0.2);     
+
+        if(get == 0)
+        {
+            getAy = abs(axis_ay);
+            getAx = abs(axis_ax);
+            getAz = abs(axis_az);
+            while(getitem)
+            {
+                pc.printf("\n\nAZ = %f ", getAz);
+                wait(0.1);
+                axis_Gen.Update();
+                CurAy = axis_Gen.g_ay()*1000;
+                CurAx = axis_Gen.g_ax()*1000;
+                CurAz = axis_Gen.g_az()*1000;
+                pc.printf("\n\nCurrentZ = %f ", CurAz);
+                diffAy = abs(abs(CurAy)-getAy);
+                diffAx = abs(abs(CurAx)-getAx);
+                diffAz = abs(abs(CurAz)-getAz);
+                pc.printf("\n\nDiffAy = %f ", diffAy);
+                pc.printf("\n\nDiffAx = %f ", diffAx);
+                pc.printf("\n\nDiffAz = %f \n\n", diffAz);
+                if(diffAz > 1300 and diffAx < 200 and diffAy < 200 )
+                { 
+                    pc.printf("\n\n ITEM \n\n");
+                    getitem = 0;
+                }
+            }
+            getitem = 1;
+        }
+        if(mon1 == 0)
+        {
+            getAy = abs(axis_ay);
+            getAx = abs(axis_ax);
+            getAz = abs(axis_az);
+            while(monster1)
+            {
+                pc.printf("\n\nAx = %f ", getAx);
+                wait(0.1);
+                axis_Gen.Update();
+                CurAy = axis_Gen.g_ay()*1000;
+                CurAx = axis_Gen.g_ax()*1000;
+                CurAz = axis_Gen.g_az()*1000;
+                pc.printf("\n\nCurrentX = %f ", CurAx);
+                diffAy = abs(abs(CurAy)-getAy);
+                diffAx = abs(abs(CurAx)-getAx);
+                diffAz = abs(abs(CurAz)-getAz);
+                pc.printf("\n\nDiffAy = %f ", diffAy);
+                pc.printf("\n\nDiffAx = %f ", diffAx);
+                pc.printf("\n\nDiffAz = %f \n\n", diffAz);
+                if(diffAx > 600 and diffAz < 1000 and diffAy < 200 )
+                { 
+                    pc.printf("\n\n Monster 1 \n\n");
+                    monster1 = 0;
+                }
+            }
+            monster1 = 1;   
+        }
+        if(mon2 == 0)
+        {
+            getAy = abs(axis_ay);
+            getAx = abs(axis_ax);
+            getAz = abs(axis_az);
+            while(monster2)
+            {
+                pc.printf("\n\nAy = %f ", getAy);
+                wait(0.1);
+                axis_Gen.Update();
+                CurAy = axis_Gen.g_ay()*1000;
+                CurAx = axis_Gen.g_ax()*1000;
+                CurAz = axis_Gen.g_az()*1000;
+                pc.printf("\n\nCurrentY = %f ", CurAy);
+                diffAy = abs(abs(CurAy)-getAy);
+                diffAx = abs(abs(CurAx)-getAx);
+                diffAz = abs(abs(CurAz)-getAz);
+                pc.printf("\n\nDiffAy = %f ", diffAy);
+                pc.printf("\n\nDiffAx = %f ", diffAx);
+                pc.printf("\n\nDiffAz = %f \n\n", diffAz);
+                if(diffAy > 800 and diffAz < 1000 and diffAx < 200 )
+                { 
+                    pc.printf("\n\n Monster 2 \n\n");
+                    monster2 = 0;
+                }
+            }
+            monster2 = 1;   
+        }
+        if(mon3 == 0)
+        {
+            getAy = abs(axis_ay);
+            getAx = abs(axis_ax);
+            getAz = abs(axis_az);
+            while(monster3)
+            {
+                pc.printf("\n\nAx = %f ", getAx);
+                wait(0.1);
+                axis_Gen.Update();
+                CurAy = axis_Gen.g_ay()*1000;
+                CurAx = axis_Gen.g_ax()*1000;
+                CurAz = axis_Gen.g_az()*1000;
+                pc.printf("\n\nCurrentX = %f ", CurAx);
+                diffAy = abs(abs(CurAy)-getAy);
+                diffAx = abs(abs(CurAx)-getAx);
+                diffAz = abs(abs(CurAz)-getAz);
+                pc.printf("\n\nDiffAy = %f ", diffAy);
+                pc.printf("\n\nDiffAx = %f ", diffAx);
+                pc.printf("\n\nDiffAz = %f \n\n", diffAz);
+                if(diffAy > 200 and diffAz < 900 and diffAy < 300 )
+                { 
+                    pc.printf("\n\n Monster 3 \n\n");
+                    monster3 = 0;
+                }
+            }
+            monster3 = 1;   
+        }
+        if(get == 0 and mon1 == 0)
+        {
+            getAy = abs(axis_ay);
+            getAx = abs(axis_ax);
+            getAz = abs(axis_az);
+            getGx = abs(axis_gx);
+            getGy = abs(axis_gy);
+            getGz = abs(axis_gz);
+            while(boss1)
+            {
+                pc.printf("\n\nAx = %f ", getAx);
+                wait(0.1);
+                axis_Gen.Update();
+                CurAy = axis_Gen.g_ay()*1000;
+                CurAx = axis_Gen.g_ax()*1000;
+                CurAz = axis_Gen.g_az()*1000;
+                CurGx = axis_Gen.g_gx()*4;
+                CurGy = axis_Gen.g_gy()*4;
+                CurGz = axis_Gen.g_gz()*4; 
+                pc.printf("\n\nCurrentX = %f ", CurAx);
+                diffAy = abs(abs(CurAy)-getAy);
+                diffAx = abs(abs(CurAx)-getAx);
+                diffAz = abs(abs(CurAz)-getAz);
+                diffGx = abs(abs(CurGx)-getGx);
+                diffGy = abs(abs(CurGy)-getGy);
+                diffGz = abs(abs(CurGz)-getGz);
+                if(diffAx > 600 and diffAz < 1000 and diffAy < 200 and diffGx > 700)
+                { 
+                    pc.printf("\n\n Boss 1 \n\n");
+                    boss1 = 0;
+                }
+            }
+            boss1 = 1;   
+        }
+        if(get == 0 and mon2 == 0)
+        {
+            getAy = abs(axis_ay);
+            getAx = abs(axis_ax);
+            getAz = abs(axis_az);
+            getGx = abs(axis_gx);
+            getGy = abs(axis_gy);
+            getGz = abs(axis_gz);
+            while(boss2)
+            {
+                pc.printf("\n\nAx = %f ", getAx);
+                wait(0.1);
+                axis_Gen.Update();
+                CurAy = axis_Gen.g_ay()*1000;
+                CurAx = axis_Gen.g_ax()*1000;
+                CurAz = axis_Gen.g_az()*1000;
+                CurGx = axis_Gen.g_gx()*4;
+                CurGy = axis_Gen.g_gy()*4;
+                CurGz = axis_Gen.g_gz()*4; 
+                pc.printf("\n\nCurrentX = %f ", CurAx);
+                diffAy = abs(abs(CurAy)-getAy);
+                diffAx = abs(abs(CurAx)-getAx);
+                diffAz = abs(abs(CurAz)-getAz);
+                diffGx = abs(abs(CurGx)-getGx);
+                diffGy = abs(abs(CurGy)-getGy);
+                diffGz = abs(abs(CurGz)-getGz);
+                if(diffAx > 200 and diffAz < 1000 and diffAy < 200 and diffGz > 500)
+                { 
+                    pc.printf("\n\n Boss 2 \n\n");
+                    boss2 = 0;
+                }
+            }
+            boss2 = 1;   
+        }
+        if(get == 0 and mon3 == 0)
+        {
+            getAy = abs(axis_ay);
+            getAx = abs(axis_ax);
+            getAz = abs(axis_az);
+            getGx = abs(axis_gx);
+            getGy = abs(axis_gy);
+            getGz = abs(axis_gz);
+            while(boss3)
+            {
+                pc.printf("\n\nAx = %f ", getAx);
+                wait(0.1);
+                axis_Gen.Update();
+                CurAy = axis_Gen.g_ay()*1000;
+                CurAx = axis_Gen.g_ax()*1000;
+                CurAz = axis_Gen.g_az()*1000;
+                CurGx = axis_Gen.g_gx()*4;
+                CurGy = axis_Gen.g_gy()*4;
+                CurGz = axis_Gen.g_gz()*4; 
+                pc.printf("\n\nCurrentX = %f ", CurAx);
+                diffAy = abs(abs(CurAy)-getAy);
+                diffAx = abs(abs(CurAx)-getAx);
+                diffAz = abs(abs(CurAz)-getAz);
+                diffGx = abs(abs(CurGx)-getGx);
+                diffGy = abs(abs(CurGy)-getGy);
+                diffGz = abs(abs(CurGz)-getGz);
+                if(diffAx > 500 and diffAy > 500 and diffAz > 800 and diffGx > 500 and diffGy > 500 and diffGz > 500)
+                { 
+                    pc.printf("\n\n Boss 3 \n\n");
+                    boss3 = 0;
+                }
+            }
+            boss3 = 1;   
+        }
      }
 }