OX V1

Dependencies:   mbed

Revision:
0:6182212860fb
diff -r 000000000000 -r 6182212860fb bmu.h
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bmu.h	Mon Dec 05 15:55:28 2016 +0000
@@ -0,0 +1,144 @@
+#include "mbed.h"
+#include "zmu9250.h"
+#include "math.h"
+
+
+ZMU9250 a;
+class bmuimu
+
+    {
+        
+              
+        
+    public:
+              
+            int yaw_z,roll_x,pitch_y,stard_x,stard_y,stard_z;
+            int X_pos , Y_pos , Z_pos ;
+        bool bmuimu:: Getposition(int x, int y, int z){
+                if( ((this->yaw_z > -40) && (this->yaw_z < 0)) &&  ((this->roll_x > -30) && (this->roll_x < 30)) && ((this->pitch_y > -20) && (this->pitch_y < 30))  ){
+                    x++; //R x+
+                    
+                } 
+                 else if( ((this->yaw_z > -105) && (this->yaw_z < -75))&& ((this->roll_x > -20) && (this->roll_x < 35)) && ((this->pitch_y > -20) && (this->pitch_y < 30)) ){
+                    y--;  //B y+
+                 
+                }
+                 else if( ((this->yaw_z > 140) && (this->yaw_z < 175)) && ((this->roll_x > -40) && (this->roll_x < 25)) && ((this->pitch_y > -35) && (this->pitch_y < 25))  ){
+                    y++; //F y-
+                
+                
+                }
+                else if( ((this->yaw_z > -155) && (this->yaw_z < -130)) && ((this->roll_x > -25) && (this->roll_x < 10)) && ((this->pitch_y > -20) && (this->pitch_y < 15))  ){
+                    x--; //L x-
+               
+                 
+                }
+                else if( ((this->yaw_z > -150) && (this->yaw_z < -88)) && ((this->roll_x > 70) && (this->roll_x < 110)) && ((this->pitch_y > -20) && (this->pitch_y < 35))){
+                    z++; //T z+
+                 
+                
+                    
+                }
+                else if( ((this->yaw_z > -125) && (this->yaw_z < -100)) && ((this->roll_x > -100) && (this->roll_x < -75)) && ((this->pitch_y > -25) && (this->pitch_y < 35))){
+                    z--; //D z-
+         
+                   
+                }
+                
+                else if( ((this->yaw_z > -80) && (this->yaw_z < -40)) && ((this->roll_x > 160) || (this->roll_x < -160)) && ((this->pitch_y > -15) && (this->pitch_y < 15))){
+                    y++; 
+      
+                   
+                }
+                else if( ((this->yaw_z > 160) || (this->yaw_z < -165)) &&  ((this->roll_x > 165) || (this->roll_x < -165)) && ((this->pitch_y > -10) && (this->pitch_y < 10))  ){
+                    x++; 
+       
+                    }
+                else if( ((this->yaw_z > 100) && (this->yaw_z < 130)) && ((this->roll_x > 165) || (this->roll_x < -165)) && ((this->pitch_y > -20) && (this->pitch_y < 15))){
+                    y--; 
+              
+                    }
+                else if( ((this->yaw_z > 45) && (this->yaw_z < 65)) && ((this->roll_x > 165) || (this->roll_x < -165)) && ((this->pitch_y > -15) && (this->pitch_y < 15))  ){
+                    x--; //L x-
+       
+                 
+                }
+                else
+                {
+                    return false;
+                }
+                this->X_pos = x;
+                this->Y_pos = y;
+                this->Z_pos = z;
+                return true ;
+         }   
+    
+      void bmuimu::update() {
+                
+                a.Update();
+                this->yaw_z = a.Yaw();
+                this->pitch_y = a.Pitch();
+                this->roll_x = a.Roll();
+       
+       }
+       
+       
+    int bmuimu::GetX()
+    {
+        return X_pos;   
+    }
+    
+    int bmuimu::GetY()
+    {
+        return Y_pos;   
+    }
+    
+    int bmuimu::GetZ()
+    {
+        return Z_pos;   
+    }
+    
+    int bmuimu::Rotate(){
+  
+        if(this->yaw_z >= 0){
+            if((this->yaw_z <= 45) && (this->yaw_z >= 0)){
+                return 0;
+                }
+            if((this->yaw_z <= 90) && (this->yaw_z >= 46)){
+                return 90;
+                }
+            if((this->yaw_z <= 135) && (this->yaw_z >= 91)){
+                return -90;
+                }
+            if((this->yaw_z <= 180) && (this->yaw_z >= 136)){
+                return 180;
+                }
+            }
+        else{
+            if((this->yaw_z <= 0) && (this->yaw_z >= -45)){
+                return 180;
+                }
+            if((this->yaw_z <= -46) && (this->yaw_z >= -90)){
+                return -90;
+                }
+            if((this->yaw_z <= -91) && (this->yaw_z >= -135)){
+                return 90;
+                }
+            if((this->yaw_z <= -136) && (this->yaw_z >= -180)){
+                return 0;
+                }
+        }
+    }
+    
+    void bmuimu:: stard(){
+        this->stard_x = this->roll_x;
+        this->stard_y = this->pitch_y;
+        this->stard_z = this->yaw_z;
+        }
+    
+    
+    
+    
+    
+    
+    };//class
\ No newline at end of file