use this

Dependencies:   mbed

Fork of greenimugetithothot by SGMP Coperations

main.cpp

Committer:
iampalop
Date:
2017-12-13
Revision:
2:e8807de906c9
Parent:
1:44b26709b117

File content as of revision 2:e8807de906c9:

#include "mbed.h"
#include "GETMPU9250.h"
#include "math.h"

ZMU9250 axis_Gen;

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);
        axis_Gen.Update();
        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;   
        }
     }
}