kor bork wa cop koy ma

Dependencies:   mbed

Fork of testIMU2_copy2 by OX

Committer:
silvermist
Date:
Mon Dec 05 08:48:17 2016 +0000
Revision:
1:cc3c774c218a
Parent:
0:77a7d1a1c6db
22

Who changed what in which revision?

UserRevisionLine numberNew contents of line
siwakon 0:77a7d1a1c6db 1 #include "mbed.h"
siwakon 0:77a7d1a1c6db 2 #include "zmu9250.h"
siwakon 0:77a7d1a1c6db 3 #include "math.h"
siwakon 0:77a7d1a1c6db 4
siwakon 0:77a7d1a1c6db 5 ZMU9250 a;
siwakon 0:77a7d1a1c6db 6 Serial pc(D1, D0);
silvermist 1:cc3c774c218a 7 Serial mas(D8,D2);
silvermist 1:cc3c774c218a 8 Ticker flipper;
silvermist 1:cc3c774c218a 9
silvermist 1:cc3c774c218a 10 char dete[50];
silvermist 1:cc3c774c218a 11 int indx=0;
silvermist 1:cc3c774c218a 12 int ii;
silvermist 1:cc3c774c218a 13 bool anach = false;
silvermist 1:cc3c774c218a 14
silvermist 1:cc3c774c218a 15 char data[50];
silvermist 1:cc3c774c218a 16 char elem;
siwakon 0:77a7d1a1c6db 17
siwakon 0:77a7d1a1c6db 18 float yaw_z, pitch_y, roll_x;
siwakon 0:77a7d1a1c6db 19 int ir,ip,iy;
siwakon 0:77a7d1a1c6db 20 int l;
siwakon 0:77a7d1a1c6db 21 int xlr,yfb,ztd;
siwakon 0:77a7d1a1c6db 22 int sata;
siwakon 0:77a7d1a1c6db 23 char rt;
siwakon 0:77a7d1a1c6db 24
siwakon 0:77a7d1a1c6db 25 int cube1(int x, int y, int z);
siwakon 0:77a7d1a1c6db 26 int seccon(float roll ,float pitch, float yaw);
siwakon 0:77a7d1a1c6db 27 int round(int rt_x, int rt_y, int rt_z);
silvermist 1:cc3c774c218a 28 int sata0(int neww);
silvermist 1:cc3c774c218a 29 int roo(int a1);
silvermist 1:cc3c774c218a 30
silvermist 1:cc3c774c218a 31 int Rotate_Roll, Rotate_Pitch, Rotate_Yaw, A, B, C ;
silvermist 1:cc3c774c218a 32 int rmap[5][5][5];
silvermist 1:cc3c774c218a 33 int map[5][5][5];
silvermist 1:cc3c774c218a 34 char yaw_buf1 = 0;
silvermist 1:cc3c774c218a 35 char yaw_buf2 = 0;
silvermist 1:cc3c774c218a 36 char yaw_buf3 = 0;
silvermist 1:cc3c774c218a 37 char inttost[50];
silvermist 1:cc3c774c218a 38
silvermist 1:cc3c774c218a 39 DigitalIn op_roll(USER_BUTTON);
silvermist 1:cc3c774c218a 40 int Cross(int degree)
silvermist 1:cc3c774c218a 41 {
silvermist 1:cc3c774c218a 42 if (degree == 0)
silvermist 1:cc3c774c218a 43 {
silvermist 1:cc3c774c218a 44 return 1;
silvermist 1:cc3c774c218a 45 }else if (degree == 180)
silvermist 1:cc3c774c218a 46 {
silvermist 1:cc3c774c218a 47 return -1;
silvermist 1:cc3c774c218a 48 }else
silvermist 1:cc3c774c218a 49 {
silvermist 1:cc3c774c218a 50 return 0;
silvermist 1:cc3c774c218a 51 }
silvermist 1:cc3c774c218a 52 }
silvermist 1:cc3c774c218a 53
silvermist 1:cc3c774c218a 54 int Zine(int degree)
silvermist 1:cc3c774c218a 55 {
silvermist 1:cc3c774c218a 56 if (degree == 90)
silvermist 1:cc3c774c218a 57 {
silvermist 1:cc3c774c218a 58 return 1;
silvermist 1:cc3c774c218a 59 }else if (degree == -90)
silvermist 1:cc3c774c218a 60 {
silvermist 1:cc3c774c218a 61 return -1;
silvermist 1:cc3c774c218a 62 }else
silvermist 1:cc3c774c218a 63 {
silvermist 1:cc3c774c218a 64 return 0;
silvermist 1:cc3c774c218a 65 }
silvermist 1:cc3c774c218a 66 }
silvermist 1:cc3c774c218a 67 void Sent(char arrayi[],float it,int siz)
silvermist 1:cc3c774c218a 68
silvermist 1:cc3c774c218a 69 {
silvermist 1:cc3c774c218a 70 for (int i = 0;i<siz;i++)
silvermist 1:cc3c774c218a 71 {
silvermist 1:cc3c774c218a 72 pc.printf("%c",arrayi[i]);
silvermist 1:cc3c774c218a 73 mas.putc(arrayi[i]);
silvermist 1:cc3c774c218a 74 wait(it);
silvermist 1:cc3c774c218a 75 }
silvermist 1:cc3c774c218a 76 }
siwakon 0:77a7d1a1c6db 77
siwakon 0:77a7d1a1c6db 78
silvermist 1:cc3c774c218a 79 void getStr()
silvermist 1:cc3c774c218a 80 {
silvermist 1:cc3c774c218a 81 pc.printf("x\n");
silvermist 1:cc3c774c218a 82 while (mas.readable())
silvermist 1:cc3c774c218a 83 {
silvermist 1:cc3c774c218a 84
silvermist 1:cc3c774c218a 85 elem = mas.getc();
silvermist 1:cc3c774c218a 86 pc.printf("char is %d\n\r",elem);
silvermist 1:cc3c774c218a 87 if ((elem == '\n'))
silvermist 1:cc3c774c218a 88 {
silvermist 1:cc3c774c218a 89 pc.printf("string is %s\n\r",data);
silvermist 1:cc3c774c218a 90 for(int i=0;i<indx;i++)
silvermist 1:cc3c774c218a 91 {
silvermist 1:cc3c774c218a 92 if (indx > 2)
silvermist 1:cc3c774c218a 93 {
silvermist 1:cc3c774c218a 94 dete[i] = data[i];
silvermist 1:cc3c774c218a 95 }
silvermist 1:cc3c774c218a 96 }
silvermist 1:cc3c774c218a 97 for(int i=0;i<30;i++)
silvermist 1:cc3c774c218a 98 {
silvermist 1:cc3c774c218a 99 data[i] = '\0';
silvermist 1:cc3c774c218a 100 }
silvermist 1:cc3c774c218a 101 indx = 0;
silvermist 1:cc3c774c218a 102 break;
silvermist 1:cc3c774c218a 103 }else
silvermist 1:cc3c774c218a 104 {
silvermist 1:cc3c774c218a 105 data[indx] = elem;
silvermist 1:cc3c774c218a 106 indx += 1;
silvermist 1:cc3c774c218a 107 }
silvermist 1:cc3c774c218a 108
silvermist 1:cc3c774c218a 109 }
silvermist 1:cc3c774c218a 110 }
silvermist 1:cc3c774c218a 111
silvermist 1:cc3c774c218a 112 void Rotate(int role,int pit,int yaw)
silvermist 1:cc3c774c218a 113 {pc.printf("role %d\t pit %d\t yaw %d\n\n\n\r",role , pit ,yaw);
silvermist 1:cc3c774c218a 114 int i=2,j=3,k=4;
silvermist 1:cc3c774c218a 115 if ((role == 90) || (role == -90))
silvermist 1:cc3c774c218a 116 {
silvermist 1:cc3c774c218a 117 /*for (int i=0;i<5;i++)
silvermist 1:cc3c774c218a 118 {
silvermist 1:cc3c774c218a 119 for (int j=0;j<5;j++)
silvermist 1:cc3c774c218a 120 {
silvermist 1:cc3c774c218a 121 for(int k=0;k<5;k++)
silvermist 1:cc3c774c218a 122 {*/
silvermist 1:cc3c774c218a 123 A = ((i-2)*Cross(pit))-((k-2)*Zine(pit) )+2;
silvermist 1:cc3c774c218a 124 B = ((j-2)*Cross(yaw))-((i-2)*Zine(pit)*Zine(yaw))-((k-2)*Zine(yaw)*Cross(pit) )+2;
silvermist 1:cc3c774c218a 125 C = ((j-2)*Zine(yaw))+((i-2)*Cross(yaw)*Zine(pit))+((k-2)*Cross(yaw)*Cross(pit) )+2;
silvermist 1:cc3c774c218a 126 pc.printf("from %d %d %d to %d %d %d\t=1 \n\n\n\r",i,j,k,A,B,C);
silvermist 1:cc3c774c218a 127
silvermist 1:cc3c774c218a 128 // }
silvermist 1:cc3c774c218a 129 //}
silvermist 1:cc3c774c218a 130 //}
silvermist 1:cc3c774c218a 131 }else if ((pitch == 90) || (pitch == -90))
silvermist 1:cc3c774c218a 132 {
silvermist 1:cc3c774c218a 133 /*for (int i=0;i<5;i++)
silvermist 1:cc3c774c218a 134 {
silvermist 1:cc3c774c218a 135 for (int j=0;j<5;j++)
silvermist 1:cc3c774c218a 136 {
silvermist 1:cc3c774c218a 137 for(int k=0;k<5;k++)
silvermist 1:cc3c774c218a 138 {*/
silvermist 1:cc3c774c218a 139 A = ((i-2)*Cross(yaw))+((j-2)*Zine(role)*Zine(yaw))+((k-2)*Zine(yaw)*Cross(role))+2;
silvermist 1:cc3c774c218a 140 B = ((j-2)*Cross(role))-((k-2)*Zine(role))+2;
silvermist 1:cc3c774c218a 141 C = -((i-2)*Zine(yaw))+((j-2)*Cross(yaw)*Zine(role))+((k-2)*Cross(yaw)*Cross(role))+2;
silvermist 1:cc3c774c218a 142 pc.printf("from %d %d %d to %d %d %d\t=2 \n\n\n\r",i,j,k,A,B,C);
silvermist 1:cc3c774c218a 143
silvermist 1:cc3c774c218a 144 // }
silvermist 1:cc3c774c218a 145 //}
silvermist 1:cc3c774c218a 146 // }
silvermist 1:cc3c774c218a 147 }else
silvermist 1:cc3c774c218a 148 {
silvermist 1:cc3c774c218a 149 /*for (int i=0;i<5;i++)
silvermist 1:cc3c774c218a 150 {
silvermist 1:cc3c774c218a 151 for (int j=0;j<5;j++)
silvermist 1:cc3c774c218a 152 {
silvermist 1:cc3c774c218a 153 for(int k=0;k<5;k++)
silvermist 1:cc3c774c218a 154 {*/
silvermist 1:cc3c774c218a 155 A = ((i-2)*Cross(yaw))-((j-2)*Zine(yaw))+2;
silvermist 1:cc3c774c218a 156 B = ((i-2)*Zine(yaw))+((j-2)*Cross(yaw))+2;
silvermist 1:cc3c774c218a 157 C = k;
silvermist 1:cc3c774c218a 158 pc.printf("from %d %d %d to %d %d %d\t=3 \n\n\n\r",i,j,k,A,B,C);
silvermist 1:cc3c774c218a 159
silvermist 1:cc3c774c218a 160 //}
silvermist 1:cc3c774c218a 161 //}
silvermist 1:cc3c774c218a 162 // }
silvermist 1:cc3c774c218a 163 }
silvermist 1:cc3c774c218a 164 for (int i=0;i<5;i++)
silvermist 1:cc3c774c218a 165 {
silvermist 1:cc3c774c218a 166 for (int j=0;j<5;j++)
silvermist 1:cc3c774c218a 167 {
silvermist 1:cc3c774c218a 168 for(int k=0;k<5;k++)
silvermist 1:cc3c774c218a 169 {
silvermist 1:cc3c774c218a 170
silvermist 1:cc3c774c218a 171 map[i][j][k]= rmap[i][j][k];
silvermist 1:cc3c774c218a 172
silvermist 1:cc3c774c218a 173 }
silvermist 1:cc3c774c218a 174 }
silvermist 1:cc3c774c218a 175 }
silvermist 1:cc3c774c218a 176 }
silvermist 1:cc3c774c218a 177
siwakon 0:77a7d1a1c6db 178
siwakon 0:77a7d1a1c6db 179
siwakon 0:77a7d1a1c6db 180 int main(){
siwakon 0:77a7d1a1c6db 181
silvermist 1:cc3c774c218a 182 flipper.attach(&getStr,1.0);
siwakon 0:77a7d1a1c6db 183 while(1){
silvermist 1:cc3c774c218a 184 pc.printf("ddddd");
silvermist 1:cc3c774c218a 185
siwakon 0:77a7d1a1c6db 186 wait(0.1);
siwakon 0:77a7d1a1c6db 187 a.Update();
siwakon 0:77a7d1a1c6db 188 yaw_z = a.Yaw();
siwakon 0:77a7d1a1c6db 189 pitch_y = a.Pitch();
siwakon 0:77a7d1a1c6db 190 roll_x = a.Roll();
silvermist 1:cc3c774c218a 191 // pc.printf("data %d\n",dete);
silvermist 1:cc3c774c218a 192 // pc.printf("data %c\n",yaw_buf);
siwakon 0:77a7d1a1c6db 193
silvermist 1:cc3c774c218a 194
silvermist 1:cc3c774c218a 195
silvermist 1:cc3c774c218a 196 if ((dete[0]=='h')||(dete[1]=='e')||(dete[2]=='l')||(dete[3]=='y')){
silvermist 1:cc3c774c218a 197
silvermist 1:cc3c774c218a 198 //Sent("999\n",0.1,5);
silvermist 1:cc3c774c218a 199
silvermist 1:cc3c774c218a 200 sprintf(inttost,"%d",int(yaw_z));
silvermist 1:cc3c774c218a 201 //yaw_buf1=int((int(yaw_z)%1000)/100)+48;
silvermist 1:cc3c774c218a 202 // yaw_buf2=int((int(yaw_z)%100)/10)+48;
silvermist 1:cc3c774c218a 203 // yaw_buf3=int((int(yaw_z)%10))+48;
silvermist 1:cc3c774c218a 204 // Sent("hely",0.1,4);
silvermist 1:cc3c774c218a 205 // Sent(yaw_buf1,0.1,1);
silvermist 1:cc3c774c218a 206 // Sent(yaw_buf2,0.1,1);
silvermist 1:cc3c774c218a 207 Sent(inttost,0.1,5);
silvermist 1:cc3c774c218a 208 // pc.printf("data %c\n",yaw_buf);
silvermist 1:cc3c774c218a 209 Sent("\n",0.1,1);
silvermist 1:cc3c774c218a 210
silvermist 1:cc3c774c218a 211 }
silvermist 1:cc3c774c218a 212
silvermist 1:cc3c774c218a 213
silvermist 1:cc3c774c218a 214 pc.printf("Yaw_z %f\t Pitch_y %f\t Roll_x %f\n\n\n\r", yaw_z, pitch_y, roll_x);
silvermist 1:cc3c774c218a 215
siwakon 0:77a7d1a1c6db 216 //l = cube1(3,3,3);
silvermist 1:cc3c774c218a 217 //l = roo(10);
silvermist 1:cc3c774c218a 218 //Rotate(Rotate_Roll, Rotate_Pitch, Rotate_Yaw);
silvermist 1:cc3c774c218a 219 //pc.printf("%d\t Yaw_z %f\t Pitch_y %f\t Roll_x %f\n\n\n\r",l , yaw_z, pitch_y, roll_x); //add
silvermist 1:cc3c774c218a 220 //pc.printf("%d\t sata(Yaw_z) %d\t sata0(pitch_y) %d\t sata0(Roll_x) %d\n\n\n\r",l , sata0(yaw_z), sata0(pitch_y), sata0(roll_x));
siwakon 0:77a7d1a1c6db 221
silvermist 1:cc3c774c218a 222 //pc.printf("%d\t Yaw_z %f\t Pitch_y %f\t Roll_x %f\t %d\t %c\t %d\t \r\n ",round(5,5,5), yaw_z, pitch_y, roll_x, sata, rt, l); //round
siwakon 0:77a7d1a1c6db 223
siwakon 0:77a7d1a1c6db 224 // pc.printf( "%d\n" ,seccon(roll_x, pitch_y, yaw_z));
siwakon 0:77a7d1a1c6db 225 // pc.printf("========\n"); //it
silvermist 1:cc3c774c218a 226 // if(op_roll == 0){
silvermist 1:cc3c774c218a 227 //
silvermist 1:cc3c774c218a 228 // l = cube1(3,3,3);
silvermist 1:cc3c774c218a 229 // }
siwakon 0:77a7d1a1c6db 230
siwakon 0:77a7d1a1c6db 231
siwakon 0:77a7d1a1c6db 232 }
siwakon 0:77a7d1a1c6db 233 }
siwakon 0:77a7d1a1c6db 234
siwakon 0:77a7d1a1c6db 235 int cube1(int x, int y, int z){
siwakon 0:77a7d1a1c6db 236
silvermist 1:cc3c774c218a 237 // if( ((pitch_y > -30) && (pitch_y < 30)) ){ // vCC L leg D
siwakon 0:77a7d1a1c6db 238
silvermist 1:cc3c774c218a 239 if( ((yaw_z > -40) && (yaw_z < 0)) && ((roll_x > -30) && (roll_x < 30)) && ((pitch_y > -20) && (pitch_y < 30)) ){
siwakon 0:77a7d1a1c6db 240 x++; //R x+
siwakon 0:77a7d1a1c6db 241 xlr = 1;
siwakon 0:77a7d1a1c6db 242 }
silvermist 1:cc3c774c218a 243 else if( ((yaw_z > -105) && (yaw_z < -75))&& ((roll_x > -20) && (roll_x < 35)) && ((pitch_y > -20) && (pitch_y < 30)) ){
siwakon 0:77a7d1a1c6db 244 y--; //B y+
siwakon 0:77a7d1a1c6db 245 yfb = -1;
siwakon 0:77a7d1a1c6db 246 }
silvermist 1:cc3c774c218a 247 else if( ((yaw_z > 140) && (yaw_z < 175)) && ((roll_x > -40) && (roll_x < 25)) && ((pitch_y > -35) && (pitch_y < 25)) ){
siwakon 0:77a7d1a1c6db 248 y++; //F y-
siwakon 0:77a7d1a1c6db 249 yfb = 1;
siwakon 0:77a7d1a1c6db 250
siwakon 0:77a7d1a1c6db 251 }
silvermist 1:cc3c774c218a 252 else if( ((yaw_z > -155) && (yaw_z < -130)) && ((roll_x > -25) && (roll_x < 10)) && ((pitch_y > -20) && (pitch_y < 15)) ){
siwakon 0:77a7d1a1c6db 253 x--; //L x-
siwakon 0:77a7d1a1c6db 254 xlr = -1;
siwakon 0:77a7d1a1c6db 255
siwakon 0:77a7d1a1c6db 256 }
silvermist 1:cc3c774c218a 257 else if( ((yaw_z > -150) && (yaw_z < -88)) && ((roll_x > 70) && (roll_x < 110)) && ((pitch_y > -20) && (pitch_y < 35))){
siwakon 0:77a7d1a1c6db 258 z++; //T z+
siwakon 0:77a7d1a1c6db 259 ztd = 1;
siwakon 0:77a7d1a1c6db 260
siwakon 0:77a7d1a1c6db 261 }
silvermist 1:cc3c774c218a 262 else if( ((yaw_z > -125) && (yaw_z < -100)) && ((roll_x > -100) && (roll_x < -75)) && ((pitch_y > -25) && (pitch_y < 35))){
siwakon 0:77a7d1a1c6db 263 z--; //D z-
siwakon 0:77a7d1a1c6db 264 ztd = -1;
siwakon 0:77a7d1a1c6db 265
siwakon 0:77a7d1a1c6db 266 }
silvermist 1:cc3c774c218a 267
silvermist 1:cc3c774c218a 268 else if( ((yaw_z > -80) && (yaw_z < -40)) && ((roll_x > 160) || (roll_x < -160)) && ((pitch_y > -15) && (pitch_y < 15))){
silvermist 1:cc3c774c218a 269 y++;
silvermist 1:cc3c774c218a 270 yfb = 1;
silvermist 1:cc3c774c218a 271
silvermist 1:cc3c774c218a 272 }
silvermist 1:cc3c774c218a 273 else if( ((yaw_z > 160) || (yaw_z < -165)) && ((roll_x > 165) || (roll_x < -165)) && ((pitch_y > -10) && (pitch_y < 10)) ){
silvermist 1:cc3c774c218a 274 x++;
silvermist 1:cc3c774c218a 275 xlr = 1;
silvermist 1:cc3c774c218a 276 }
silvermist 1:cc3c774c218a 277 else if( ((yaw_z > 100) && (yaw_z < 130)) && ((roll_x > 165) || (roll_x < -165)) && ((pitch_y > -20) && (pitch_y < 15))){
silvermist 1:cc3c774c218a 278 y--;
silvermist 1:cc3c774c218a 279 yfb = -1;
silvermist 1:cc3c774c218a 280 }
silvermist 1:cc3c774c218a 281 else if( ((yaw_z > 45) && (yaw_z < 65)) && ((roll_x > 165) || (roll_x < -165)) && ((pitch_y > -15) && (pitch_y < 15)) ){
silvermist 1:cc3c774c218a 282 x--; //L x-
silvermist 1:cc3c774c218a 283 xlr = -1;
silvermist 1:cc3c774c218a 284
silvermist 1:cc3c774c218a 285 }
silvermist 1:cc3c774c218a 286 int rt_x , rt_y , rt_z;
silvermist 1:cc3c774c218a 287 int a = rt_x - 3;
silvermist 1:cc3c774c218a 288 int b = rt_y - 3;
silvermist 1:cc3c774c218a 289 int c = rt_z - 3;
silvermist 1:cc3c774c218a 290 if(rt == 'x'){
silvermist 1:cc3c774c218a 291 rt_x = a + 3; //x
silvermist 1:cc3c774c218a 292 rt_y = (b * cos(sata*(PI/180))+ c * sin(sata*(PI/180)) )+ 3;
silvermist 1:cc3c774c218a 293 rt_z = (-b * sin(sata*(PI/180))+ c * cos(sata*(PI/180)) ) + 3;
silvermist 1:cc3c774c218a 294 }
silvermist 1:cc3c774c218a 295 if(rt == 'y'){
silvermist 1:cc3c774c218a 296 rt_x = (a * cos(sata*(PI/180)) - c * sin(sata*(PI/180)) )+ 3; // y
silvermist 1:cc3c774c218a 297 rt_y = b + 3;
silvermist 1:cc3c774c218a 298 rt_z = (a * sin(sata*(PI/180)) + c * cos(sata*(PI/180)) )+ 3;
silvermist 1:cc3c774c218a 299 }
silvermist 1:cc3c774c218a 300 if(rt == 'z'){
silvermist 1:cc3c774c218a 301 rt_x = (a * cos(sata*(PI/180))+ b * sin(sata*(PI/180)) )+ 3; //z
silvermist 1:cc3c774c218a 302 rt_y = (b * cos(sata*(PI/180))- a * sin(sata*(PI/180)) )+ 3;
silvermist 1:cc3c774c218a 303 rt_z = c + 3;
silvermist 1:cc3c774c218a 304 }
silvermist 1:cc3c774c218a 305
siwakon 0:77a7d1a1c6db 306
siwakon 0:77a7d1a1c6db 307
siwakon 0:77a7d1a1c6db 308
siwakon 0:77a7d1a1c6db 309 return (x*100+y*10+z);
siwakon 0:77a7d1a1c6db 310 }
silvermist 1:cc3c774c218a 311 int sata0(int neww){
silvermist 1:cc3c774c218a 312 if(neww>=0){
silvermist 1:cc3c774c218a 313 if((neww <= 45) && (neww >= 0)){
silvermist 1:cc3c774c218a 314 return 0;
silvermist 1:cc3c774c218a 315 }
silvermist 1:cc3c774c218a 316 if((neww <= 90) && (neww >= 46)){
silvermist 1:cc3c774c218a 317 return 90;
silvermist 1:cc3c774c218a 318 }
silvermist 1:cc3c774c218a 319 if((neww <= 135) && (neww >= 91)){
silvermist 1:cc3c774c218a 320 return -90;
silvermist 1:cc3c774c218a 321 }
silvermist 1:cc3c774c218a 322 if((neww <= 180) && (neww >= 136)){
silvermist 1:cc3c774c218a 323 return 180;
silvermist 1:cc3c774c218a 324 }
siwakon 0:77a7d1a1c6db 325 }
siwakon 0:77a7d1a1c6db 326 else{
silvermist 1:cc3c774c218a 327 if((neww <= 0) && (neww >= -45)){
silvermist 1:cc3c774c218a 328 return 180;
siwakon 0:77a7d1a1c6db 329 }
silvermist 1:cc3c774c218a 330 if((neww <= -46) && (neww >= -90)){
silvermist 1:cc3c774c218a 331 return -90;
siwakon 0:77a7d1a1c6db 332 }
silvermist 1:cc3c774c218a 333 if((neww <= -91) && (neww >= -135)){
silvermist 1:cc3c774c218a 334 return 90;
siwakon 0:77a7d1a1c6db 335 }
silvermist 1:cc3c774c218a 336 if((neww <= -136) && (neww >= -180)){
silvermist 1:cc3c774c218a 337 return 0;
siwakon 0:77a7d1a1c6db 338 }
siwakon 0:77a7d1a1c6db 339 }
siwakon 0:77a7d1a1c6db 340 }
silvermist 1:cc3c774c218a 341
siwakon 0:77a7d1a1c6db 342
silvermist 1:cc3c774c218a 343 int roo(int a1){
silvermist 1:cc3c774c218a 344
silvermist 1:cc3c774c218a 345
silvermist 1:cc3c774c218a 346 //if( ((yaw_z > -40) && (yaw_z < 0)) && ((roll_x > -30) && (roll_x < 30)) && ((pitch_y > -20) && (pitch_y < 30)) ){
silvermist 1:cc3c774c218a 347 // //R x+
silvermist 1:cc3c774c218a 348 // Rotate_Roll = roll_x;
silvermist 1:cc3c774c218a 349 // Rotate_Pitch = pitch_y;
silvermist 1:cc3c774c218a 350 // Rotate_Yaw = yaw_z;
silvermist 1:cc3c774c218a 351 //
silvermist 1:cc3c774c218a 352 //
silvermist 1:cc3c774c218a 353 // }
silvermist 1:cc3c774c218a 354 if ( ((yaw_z > -150) && (yaw_z < -110))&& ((roll_x > 60) && (roll_x < 100)) && ((pitch_y > -10) && (pitch_y < 10)) ){
silvermist 1:cc3c774c218a 355
silvermist 1:cc3c774c218a 356 Rotate_Roll = 0; // 0,90,2
silvermist 1:cc3c774c218a 357 Rotate_Pitch = sata0(pitch_y);
silvermist 1:cc3c774c218a 358 Rotate_Yaw = 180;
silvermist 1:cc3c774c218a 359 pc.printf("0,90,2 \n\n\n\r");
silvermist 1:cc3c774c218a 360 }
silvermist 1:cc3c774c218a 361 else if ( ((yaw_z > -140) && (yaw_z < -100))&& ((roll_x > -100) && (roll_x < -60)) && ((pitch_y > -10) && (pitch_y < 10)) ){
silvermist 1:cc3c774c218a 362 Rotate_Roll = 0; // 0,-90,2
silvermist 1:cc3c774c218a 363 Rotate_Pitch = sata0(pitch_y);
silvermist 1:cc3c774c218a 364 Rotate_Yaw = 180;
silvermist 1:cc3c774c218a 365 pc.printf("0,-90,2 \n\n\n\r");
silvermist 1:cc3c774c218a 366 }
silvermist 1:cc3c774c218a 367 else if( ((yaw_z > 60) && (yaw_z < 100))&& ((roll_x > 60) && (roll_x < 100)) && ((pitch_y > -10) && (pitch_y < 10)) ){
silvermist 1:cc3c774c218a 368 Rotate_Roll = 180; // 180,90,2
silvermist 1:cc3c774c218a 369 Rotate_Pitch = sata0(pitch_y);
silvermist 1:cc3c774c218a 370 Rotate_Yaw = 0;
silvermist 1:cc3c774c218a 371 pc.printf("180,90,2 \n\n\n\r");
silvermist 1:cc3c774c218a 372 }
silvermist 1:cc3c774c218a 373 else if ( ((yaw_z > 50) && (yaw_z < 90))&& ((roll_x > -110) && (roll_x < -70)) && ((pitch_y > -15) && (pitch_y < 15)) ){
silvermist 1:cc3c774c218a 374 Rotate_Roll = 180; // 180,-90,2
silvermist 1:cc3c774c218a 375 Rotate_Pitch = sata0(pitch_y);
silvermist 1:cc3c774c218a 376 Rotate_Yaw = 0;
silvermist 1:cc3c774c218a 377 pc.printf("180,-90,2 \n\n\n\r");
silvermist 1:cc3c774c218a 378 }
silvermist 1:cc3c774c218a 379 else if( ((a1 > 0) && (a1 < 9999)) && ((pitch_y > -85) && (pitch_y < -45)) ){
silvermist 1:cc3c774c218a 380 Rotate_Roll = sata0(roll_x); // 90,0,3
silvermist 1:cc3c774c218a 381 Rotate_Pitch = sata0(pitch_y);
silvermist 1:cc3c774c218a 382 Rotate_Yaw = sata0(yaw_z);
silvermist 1:cc3c774c218a 383 pc.printf("90,0,3 \n\n\n\r");
silvermist 1:cc3c774c218a 384 }
silvermist 1:cc3c774c218a 385 else if( ((a1 > 0) && (a1 < 9999)) && ((pitch_y > 60) && (pitch_y < 85)) ){
silvermist 1:cc3c774c218a 386 Rotate_Roll = sata0(roll_x); // -90,0,3
silvermist 1:cc3c774c218a 387 Rotate_Pitch = sata0(pitch_y);
silvermist 1:cc3c774c218a 388 Rotate_Yaw = sata0(yaw_z);
silvermist 1:cc3c774c218a 389 pc.printf("-90,0,3 \n\n\n\r");
silvermist 1:cc3c774c218a 390 }
silvermist 1:cc3c774c218a 391 else if( ((a1> 0) && (a1 < 9999)) && ((pitch_y > -85) && (pitch_y < -45)) ){
silvermist 1:cc3c774c218a 392 Rotate_Roll = sata0(roll_x); // 90,180,3
silvermist 1:cc3c774c218a 393 Rotate_Pitch = sata0(pitch_y);
silvermist 1:cc3c774c218a 394 Rotate_Yaw = sata0(yaw_z);
silvermist 1:cc3c774c218a 395 pc.printf("90,180,3 \n\n\n\r");
silvermist 1:cc3c774c218a 396 }
silvermist 1:cc3c774c218a 397 else if( ((a1 > 0) && (a1 < 9999)) && ((pitch_y > 60) && (pitch_y < 85)) ){
silvermist 1:cc3c774c218a 398 Rotate_Roll = sata0(roll_x); // 90,180,3
silvermist 1:cc3c774c218a 399 Rotate_Pitch = sata0(pitch_y);
silvermist 1:cc3c774c218a 400 Rotate_Yaw = sata0(yaw_z);
silvermist 1:cc3c774c218a 401 pc.printf("90,180,3 \n\n\n\r");
silvermist 1:cc3c774c218a 402 }
silvermist 1:cc3c774c218a 403 else if( ((yaw_z > -105) && (yaw_z < -75))&& ((roll_x > -20) && (roll_x < 35)) && ((pitch_y > -20) && (pitch_y < 30)) ){
silvermist 1:cc3c774c218a 404 //B y+ 180,180,1
silvermist 1:cc3c774c218a 405 Rotate_Roll = sata0(roll_x);
silvermist 1:cc3c774c218a 406 Rotate_Pitch = sata0(pitch_y);
silvermist 1:cc3c774c218a 407 Rotate_Yaw = sata0(yaw_z);
silvermist 1:cc3c774c218a 408 pc.printf("180,180,1 \n\n\n\r");
silvermist 1:cc3c774c218a 409 }
silvermist 1:cc3c774c218a 410 else if( ((yaw_z > 140) && (yaw_z < 175)) && ((roll_x > -40) && (roll_x < 25)) && ((pitch_y > -35) && (pitch_y < 25)) ){
silvermist 1:cc3c774c218a 411 //F y- 0,0,1
silvermist 1:cc3c774c218a 412
silvermist 1:cc3c774c218a 413 Rotate_Roll = sata0(roll_x);
silvermist 1:cc3c774c218a 414 Rotate_Pitch = sata0(pitch_y);
silvermist 1:cc3c774c218a 415 Rotate_Yaw = sata0(yaw_z);
silvermist 1:cc3c774c218a 416 pc.printf("0,0,1 \n\n\n\r");
silvermist 1:cc3c774c218a 417 }
silvermist 1:cc3c774c218a 418 // else if( ((yaw_z > -155) && (yaw_z < -130)) && ((roll_x > -25) && (roll_x < 10)) && ((pitch_y > -20) && (pitch_y < 15)) ){
silvermist 1:cc3c774c218a 419 // //L x- 180,180,1
silvermist 1:cc3c774c218a 420 //
silvermist 1:cc3c774c218a 421 // Rotate_Roll = roll_x;
silvermist 1:cc3c774c218a 422 // Rotate_Pitch = pitch_y;
silvermist 1:cc3c774c218a 423 // Rotate_Yaw = yaw_z;
silvermist 1:cc3c774c218a 424 // pc.printf("180,180,1 \n\n\n\r");
silvermist 1:cc3c774c218a 425 //
silvermist 1:cc3c774c218a 426 // }
silvermist 1:cc3c774c218a 427 //else if( ((yaw_z > -150) && (yaw_z < -88)) && ((roll_x > 70) && (roll_x < 110)) && ((pitch_y > -20) && (pitch_y < 35))){
silvermist 1:cc3c774c218a 428 // z++; //T z+
silvermist 1:cc3c774c218a 429 // ztd = 1;
silvermist 1:cc3c774c218a 430 // Rotate_Roll = roll_x
silvermist 1:cc3c774c218a 431 // Rotate_Pitch = pitch_y
silvermist 1:cc3c774c218a 432 // Rotate_Yaw = yaw_z
silvermist 1:cc3c774c218a 433 //
silvermist 1:cc3c774c218a 434 // }
silvermist 1:cc3c774c218a 435 // else if( ((yaw_z > -125) && (yaw_z < -100)) && ((roll_x > -100) && (roll_x < -75)) && ((pitch_y > -25) && (pitch_y < 35))){
silvermist 1:cc3c774c218a 436 // z--; //D z-
silvermist 1:cc3c774c218a 437 // ztd = -1;
silvermist 1:cc3c774c218a 438 // Rotate_Roll = roll_x
silvermist 1:cc3c774c218a 439 // Rotate_Pitch = pitch_y
silvermist 1:cc3c774c218a 440 // Rotate_Yaw = yaw_z
silvermist 1:cc3c774c218a 441 // }
silvermist 1:cc3c774c218a 442 //
silvermist 1:cc3c774c218a 443 else if( ((yaw_z > -80) && (yaw_z < -40)) && ((roll_x > 160) || (roll_x < -160)) && ((pitch_y > -15) && (pitch_y < 15))){
silvermist 1:cc3c774c218a 444 //180,0,4
silvermist 1:cc3c774c218a 445 Rotate_Roll = sata0(roll_x);
silvermist 1:cc3c774c218a 446 Rotate_Pitch = sata0(pitch_y);
silvermist 1:cc3c774c218a 447 Rotate_Yaw = sata0(yaw_z);
silvermist 1:cc3c774c218a 448 pc.printf("180,0,4");
silvermist 1:cc3c774c218a 449
silvermist 1:cc3c774c218a 450 }
silvermist 1:cc3c774c218a 451 // else if( ((yaw_z > 160) || (yaw_z < -165)) && ((roll_x > 165) || (roll_x < -165)) && ((pitch_y > -10) && (pitch_y < 10)) ){
silvermist 1:cc3c774c218a 452 // x++;
silvermist 1:cc3c774c218a 453 // xlr = 1;
silvermist 1:cc3c774c218a 454 // Rotate_Roll = roll_x
silvermist 1:cc3c774c218a 455 // Rotate_Pitch = pitch_y
silvermist 1:cc3c774c218a 456 // Rotate_Yaw = yaw_z
silvermist 1:cc3c774c218a 457 // }
silvermist 1:cc3c774c218a 458 else if( ((yaw_z > 100) && (yaw_z < 130)) && ((roll_x > 165) || (roll_x < -165)) && ((pitch_y > -20) && (pitch_y < 15))){
silvermist 1:cc3c774c218a 459 //0,180,4
silvermist 1:cc3c774c218a 460 Rotate_Roll = sata0(roll_x);
silvermist 1:cc3c774c218a 461 Rotate_Pitch = sata0(pitch_y);
silvermist 1:cc3c774c218a 462 Rotate_Yaw = sata0(yaw_z);
silvermist 1:cc3c774c218a 463 pc.printf("0,180,4");
silvermist 1:cc3c774c218a 464 }
silvermist 1:cc3c774c218a 465 // else if( ((yaw_z > 45) && (yaw_z < 65)) && ((roll_x > 165) || (roll_x < -165)) && ((pitch_y > -15) && (pitch_y < 15)) ){
silvermist 1:cc3c774c218a 466 // x--; //L x-
silvermist 1:cc3c774c218a 467 // xlr = -1;
silvermist 1:cc3c774c218a 468 // Rotate_Roll = roll_x
silvermist 1:cc3c774c218a 469 // Rotate_Pitch = pitch_y
silvermist 1:cc3c774c218a 470 // Rotate_Yaw = yaw_z
silvermist 1:cc3c774c218a 471 //
silvermist 1:cc3c774c218a 472 // }
silvermist 1:cc3c774c218a 473
silvermist 1:cc3c774c218a 474 return (1);
silvermist 1:cc3c774c218a 475
silvermist 1:cc3c774c218a 476 }