another

Dependencies:   mbed KondoServoLibrary Encoder

Committer:
maxnagazumi
Date:
Thu Mar 19 08:35:23 2020 +0000
Revision:
25:4eb2f2795120
Parent:
24:674b011da45b
Child:
26:3adbabf7d770
3/19;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
hirokimineshita 0:736c76a75def 1 #include "Utils.h"
hirokimineshita 0:736c76a75def 2 #include "USBHost.h"
hirokimineshita 0:736c76a75def 3 #include "hci.h"
hirokimineshita 0:736c76a75def 4 #include "ps3.h"
hirokimineshita 0:736c76a75def 5 #include "User.h"
o2132613 19:510b87211851 6 #include "mbed.h"
o2132613 19:510b87211851 7 #include "math.h"
hirokimineshita 0:736c76a75def 8 #include "mbed.h"
o2132613 19:510b87211851 9 #include"KondoServo.h"
o2132613 19:510b87211851 10 #include "EC.h" //Encoderライブラリをインクルード
o2132613 19:510b87211851 11 #define RESOLUTION 500
hirokimineshita 0:736c76a75def 12
hirokimineshita 0:736c76a75def 13 int RSX,RSY,LSX,LSY,BSU,BSL;
o2132613 19:510b87211851 14 //Digitalout cs(p8);
o2132613 22:f0e17f3129cc 15 int move=5,shoot=0,ball=0,box=0,ball_count=0,box_count=0;
o2132613 19:510b87211851 16 CAN controller(p30,p29);//CANpin_name
koheim 21:0f12ee2322e4 17
o2132613 19:510b87211851 18 DigitalOut led1(LED1);
o2132613 19:510b87211851 19 DigitalOut led2(LED2);
o2132613 19:510b87211851 20 DigitalOut led3(LED3);
o2132613 19:510b87211851 21 DigitalOut led4(LED4);
o2132613 19:510b87211851 22 char can[1]= {0};
koheim 21:0f12ee2322e4 23
o2132613 19:510b87211851 24 KondoServo servo(p28,p27);//サーボ
o2132613 19:510b87211851 25
o2132613 19:510b87211851 26 PwmOut f(p26);//投F
o2132613 19:510b87211851 27 PwmOut b(p25);//投B
koheim 21:0f12ee2322e4 28
o2132613 19:510b87211851 29 Ticker ticker;
koheim 21:0f12ee2322e4 30
o2132613 19:510b87211851 31 Ec1multi EC(p16,p17,RESOLUTION);//投E
o2132613 19:510b87211851 32 InterruptIn X(p15);
koheim 21:0f12ee2322e4 33
maxnagazumi 24:674b011da45b 34 DigitalIn touchSensor(p14);//タッチセンサー
maxnagazumi 24:674b011da45b 35
maxnagazumi 25:4eb2f2795120 36 DigitalOut out1(p19);//エアシリンダー(投擲)
maxnagazumi 25:4eb2f2795120 37 DigitalOut out2(p20);//エアシリンダー(つかむ)
koheim 21:0f12ee2322e4 38 DigitalOut out3(p18);//エアシリンダー(ボックス)
baba2357 11:86d717718dbf 39
maxnagazumi 25:4eb2f2795120 40 int id = 0;//ballbreak;
maxnagazumi 25:4eb2f2795120 41 int id2 = 1;//box
o2132613 19:510b87211851 42 double SERVO2DEG = 270.0 / (11500 - 3500);
maxnagazumi 25:4eb2f2795120 43 double first_ball = (4500 - 3500) * SERVO2DEG;
maxnagazumi 25:4eb2f2795120 44 double first_box = (4000 - 3500) * SERVO2DEG; //X haven't be decided
maxnagazumi 25:4eb2f2795120 45 double grab_ball = (3830 - 3500) * SERVO2DEG;
maxnagazumi 25:4eb2f2795120 46 double pass = (7080 - 3500) * SERVO2DEG;
maxnagazumi 24:674b011da45b 47 double grab_box = (3500 - 3500) * SERVO2DEG;
o2132613 19:510b87211851 48
o2132613 19:510b87211851 49 void cal()
o2132613 19:510b87211851 50 {
o2132613 19:510b87211851 51 EC.calOmega();
o2132613 19:510b87211851 52 }
maxnagazumi 20:dd4634500bb3 53
o2132613 19:510b87211851 54 void shot();
o2132613 19:510b87211851 55 void catch_ball();
maxnagazumi 20:dd4634500bb3 56 void show_angle();
o2132613 19:510b87211851 57
o2132613 19:510b87211851 58 int X_count=0;
o2132613 19:510b87211851 59 void Xcount()
o2132613 19:510b87211851 60 {
o2132613 19:510b87211851 61 X_count++;
o2132613 19:510b87211851 62 }
o2132613 19:510b87211851 63
o2132613 17:348c660ea6f6 64 void UserLoopSetting()
o2132613 17:348c660ea6f6 65 {
maxnagazumi 24:674b011da45b 66 f.period_us(50);
maxnagazumi 24:674b011da45b 67 b.period_us(50);
maxnagazumi 24:674b011da45b 68 touchSensor.mode(PullUp);
hirokimineshita 0:736c76a75def 69 }
o2132613 17:348c660ea6f6 70 void UserLoop(char n,const u8* data)
o2132613 17:348c660ea6f6 71 {
maxnagazumi 24:674b011da45b 72 static int i=0;
maxnagazumi 24:674b011da45b 73 if(i==0) {
maxnagazumi 24:674b011da45b 74 wait(2);
maxnagazumi 24:674b011da45b 75 i++;
maxnagazumi 24:674b011da45b 76 }
hirokimineshita 0:736c76a75def 77 u16 ButtonState;
o2132613 17:348c660ea6f6 78 if(n==0) { //有線Ps3USB.cpp
hirokimineshita 0:736c76a75def 79 RSX = ((ps3report*)data)->RightStickX;
hirokimineshita 0:736c76a75def 80 RSY = ((ps3report*)data)->RightStickY;
hirokimineshita 0:736c76a75def 81 LSX = ((ps3report*)data)->LeftStickX;
hirokimineshita 0:736c76a75def 82 LSY = ((ps3report*)data)->LeftStickY;
hirokimineshita 0:736c76a75def 83 BSU = (u8)(((ps3report*)data)->ButtonState & 0x00ff);
hirokimineshita 0:736c76a75def 84 BSL = (u8)(((ps3report*)data)->ButtonState >> 8);
hirokimineshita 0:736c76a75def 85 //ボタンの処理
hirokimineshita 0:736c76a75def 86 ButtonState = ((ps3report*)data)->ButtonState;
o2132613 17:348c660ea6f6 87 } else {//無線TestShell.cpp
hirokimineshita 0:736c76a75def 88 RSX = ((ps3report*)(data + 1))->RightStickX;
hirokimineshita 0:736c76a75def 89 RSY = ((ps3report*)(data + 1))->RightStickY;
hirokimineshita 0:736c76a75def 90 LSX = ((ps3report*)(data + 1))->LeftStickX;
hirokimineshita 0:736c76a75def 91 LSY = ((ps3report*)(data + 1))->LeftStickY;
hirokimineshita 0:736c76a75def 92 BSU = (u8)(((ps3report*)(data + 1))->ButtonState & 0x00ff);
hirokimineshita 0:736c76a75def 93 BSL = (u8)(((ps3report*)(data + 1))->ButtonState >> 8);
hirokimineshita 0:736c76a75def 94 //ボタンの処理
hirokimineshita 0:736c76a75def 95 ButtonState = ((ps3report*)(data + 1))->ButtonState;
hirokimineshita 0:736c76a75def 96 }
hirokimineshita 0:736c76a75def 97 //ここより下にプログラムを書く
o2132613 19:510b87211851 98 controller.frequency(1000000);
o2132613 19:510b87211851 99 led1=0;
o2132613 19:510b87211851 100 led2=0;
o2132613 19:510b87211851 101 led3=0;
o2132613 19:510b87211851 102 led4=0;
maxnagazumi 25:4eb2f2795120 103 //reset
maxnagazumi 25:4eb2f2795120 104 if((ButtonState >> BUTTONUP)&1 == 1 &&(ButtonState >> BUTTONTRIANGEL)&1 == 1 ) {//R2
maxnagazumi 25:4eb2f2795120 105 NVIC_SystemReset();
maxnagazumi 25:4eb2f2795120 106 printf("reset\r\n");
maxnagazumi 25:4eb2f2795120 107 }
o2132613 19:510b87211851 108
o2132613 19:510b87211851 109 //move
o2132613 19:510b87211851 110 if((ButtonState >> BUTTONUP)&1 == 1&&(ButtonState >> BUTTONL1)&1 == 1) { //UPL1
o2132613 19:510b87211851 111 move = 9;
o2132613 19:510b87211851 112 } else if ((ButtonState >> BUTTONDOWN)&1 == 1&&(ButtonState >> BUTTONR1)&1 == 1) { //DownR1
o2132613 19:510b87211851 113 move = 3;
o2132613 19:510b87211851 114 } else if ((ButtonState >> BUTTONUP)&1 == 1&&(ButtonState >> BUTTONR1)&1 == 1) { //UPR1
o2132613 19:510b87211851 115 move = 7;
o2132613 19:510b87211851 116 } else if ((ButtonState >> BUTTONDOWN)&1 == 1&&(ButtonState >> BUTTONL1)&1 == 1) { //DownL1
o2132613 19:510b87211851 117 move = 1;
o2132613 19:510b87211851 118 } else if((ButtonState >> BUTTONUP)&1 == 1) { //up
o2132613 19:510b87211851 119 move = 8;
o2132613 19:510b87211851 120 led1 = 1;
o2132613 19:510b87211851 121 } else if((ButtonState >> BUTTONDOWN)&1 == 1) { //down
o2132613 19:510b87211851 122 move = 2;
o2132613 19:510b87211851 123 led2 =1;
o2132613 19:510b87211851 124 } else if((ButtonState >> BUTTONRIGHT)&1 == 1) { //right
o2132613 19:510b87211851 125 move = 6;
o2132613 19:510b87211851 126 led3 = 1;
o2132613 19:510b87211851 127 } else if((ButtonState >> BUTTONLEFT)&1 == 1) { //left
o2132613 19:510b87211851 128 move = 4;
o2132613 19:510b87211851 129 led4 = 1;
o2132613 19:510b87211851 130 } else if((ButtonState >> BUTTONL1)&1 == 1) { //L1
o2132613 19:510b87211851 131 move = 10;
o2132613 19:510b87211851 132 } else if((ButtonState >> BUTTONR1)&1 == 1) { //R1
o2132613 19:510b87211851 133 move = 11;
maxnagazumi 25:4eb2f2795120 134 } else if((ButtonState >> BUTTONSTART)&1 == 1 ) {//対応するボタンを書く(今回startボタン
maxnagazumi 24:674b011da45b 135 move = 12;
o2132613 19:510b87211851 136 } else if((ButtonState >> BUTTONSELECT)&1 == 1 ) {//対応するボタンを書く(今回SELLECTボタン
maxnagazumi 24:674b011da45b 137 move = 13;
o2132613 19:510b87211851 138 } else {
o2132613 19:510b87211851 139 move = 5;
o2132613 19:510b87211851 140 }
o2132613 19:510b87211851 141 //move
o2132613 19:510b87211851 142 //shoot
o2132613 19:510b87211851 143 if((ButtonState >> BUTTONCIRCLE)&1 == 1) {//O
o2132613 19:510b87211851 144 shoot = 1;
maxnagazumi 24:674b011da45b 145 printf("shoot 1\r\n");
o2132613 19:510b87211851 146 led1 = 1;
o2132613 19:510b87211851 147 } else if((ButtonState >> BUTTONCROSS)&1 == 1) {//X
o2132613 22:f0e17f3129cc 148 ball = 1;
maxnagazumi 24:674b011da45b 149 printf("ball 1\r\n");
o2132613 19:510b87211851 150 led2 = 1;
o2132613 19:510b87211851 151 } else if((ButtonState >> BUTTONTRIANGEL)&1 == 1) {//△
o2132613 22:f0e17f3129cc 152 box = 1;
maxnagazumi 24:674b011da45b 153 printf("box 1\r\n");
o2132613 19:510b87211851 154 led3 = 1;
o2132613 19:510b87211851 155 } else if((ButtonState >> BUTTONSQUARE)&1 == 1) {//□
o2132613 22:f0e17f3129cc 156 ball = 2;
maxnagazumi 24:674b011da45b 157 printf("ball 2\r\n");
maxnagazumi 20:dd4634500bb3 158 led4 = 1;
maxnagazumi 20:dd4634500bb3 159 } else if((ButtonState >> BUTTONR2)&1 == 1) {//R2
o2132613 22:f0e17f3129cc 160 box = 2;
maxnagazumi 24:674b011da45b 161 printf("box 2\r\n");
o2132613 19:510b87211851 162 led4 = 1;
o2132613 17:348c660ea6f6 163 }
maxnagazumi 25:4eb2f2795120 164
maxnagazumi 20:dd4634500bb3 165 show_angle();
o2132613 19:510b87211851 166 //CAN通信用プログラム
o2132613 19:510b87211851 167 if(shoot==1)shot();
maxnagazumi 24:674b011da45b 168 catch_ball();
o2132613 19:510b87211851 169 can[0] = move;
o2132613 19:510b87211851 170 controller.write(CANMessage(1,can,1));
o2132613 19:510b87211851 171 printf("%d\r\n",can[0]);
o2132613 19:510b87211851 172 }
o2132613 19:510b87211851 173
maxnagazumi 20:dd4634500bb3 174 void show_angle()
maxnagazumi 20:dd4634500bb3 175 {
maxnagazumi 20:dd4634500bb3 176 X.rise(&Xcount);
maxnagazumi 20:dd4634500bb3 177 f.period_us(50);
maxnagazumi 20:dd4634500bb3 178 b.period_us(50);
maxnagazumi 20:dd4634500bb3 179 double a=0,r=0.4,v=0;
maxnagazumi 20:dd4634500bb3 180 int i=0,count;//rで半径指定 a*r=v
maxnagazumi 20:dd4634500bb3 181 //ticker.attach(&cal,0.05);
maxnagazumi 20:dd4634500bb3 182 if(X_count ==1) {
maxnagazumi 20:dd4634500bb3 183 printf("set ok");
maxnagazumi 20:dd4634500bb3 184 EC.reset();
maxnagazumi 20:dd4634500bb3 185 }
maxnagazumi 20:dd4634500bb3 186 //角度リセット
maxnagazumi 20:dd4634500bb3 187 a=EC.getOmega();
maxnagazumi 20:dd4634500bb3 188 count=EC.getCount();
maxnagazumi 20:dd4634500bb3 189 i =count%500;
maxnagazumi 20:dd4634500bb3 190 printf("%.3f %.3f %d %d stop\r\n",a,v,X_count,count);
maxnagazumi 20:dd4634500bb3 191 f=0;
maxnagazumi 20:dd4634500bb3 192 b=0;
maxnagazumi 20:dd4634500bb3 193 led1=0;
maxnagazumi 20:dd4634500bb3 194 led2=1;
maxnagazumi 20:dd4634500bb3 195 led3=1;
maxnagazumi 20:dd4634500bb3 196 led4=0;
maxnagazumi 20:dd4634500bb3 197
maxnagazumi 20:dd4634500bb3 198 }
o2132613 19:510b87211851 199 void shot()
o2132613 19:510b87211851 200 {
maxnagazumi 24:674b011da45b 201 int breaknum=0;
o2132613 19:510b87211851 202 X.rise(&Xcount);
o2132613 19:510b87211851 203 double a=0,r=0.4,v=0;
o2132613 19:510b87211851 204 int i=0,count;//rで半径指定 a*r=v
o2132613 19:510b87211851 205 ticker.attach(&cal,0.05);
maxnagazumi 20:dd4634500bb3 206 while(1) {
maxnagazumi 25:4eb2f2795120 207 out1=1;
maxnagazumi 24:674b011da45b 208 printf("%d\r\n",touchSensor.read());
maxnagazumi 24:674b011da45b 209 f=0;
maxnagazumi 24:674b011da45b 210 b=0.05;
maxnagazumi 24:674b011da45b 211 if(touchSensor==0) {//受け渡し
maxnagazumi 24:674b011da45b 212 f=0;
maxnagazumi 24:674b011da45b 213 b=0;
maxnagazumi 24:674b011da45b 214 printf("%d",EC.getCount());
maxnagazumi 20:dd4634500bb3 215 EC.reset();
maxnagazumi 24:674b011da45b 216 printf("%d",EC.getCount());
maxnagazumi 24:674b011da45b 217 wait(1);
maxnagazumi 24:674b011da45b 218 out2=0;
maxnagazumi 25:4eb2f2795120 219 out2=1;
maxnagazumi 24:674b011da45b 220 printf("passed\r\n");
maxnagazumi 24:674b011da45b 221 wait(1);
maxnagazumi 24:674b011da45b 222 while(1) {
maxnagazumi 24:674b011da45b 223 f=0.1;
maxnagazumi 24:674b011da45b 224 b=0;
maxnagazumi 24:674b011da45b 225 printf("moving to remove servo\r\n");
maxnagazumi 24:674b011da45b 226 if(EC.getCount()>200) {
maxnagazumi 24:674b011da45b 227 printf("servo move\r\n");
maxnagazumi 24:674b011da45b 228 f=0;
maxnagazumi 24:674b011da45b 229 b=0;
maxnagazumi 24:674b011da45b 230 servo.set_degree(id, first_ball);
maxnagazumi 24:674b011da45b 231 breaknum=1;
maxnagazumi 24:674b011da45b 232 break;
maxnagazumi 24:674b011da45b 233 }
maxnagazumi 24:674b011da45b 234
maxnagazumi 24:674b011da45b 235 }
maxnagazumi 24:674b011da45b 236 if(X_count ==1) {
maxnagazumi 24:674b011da45b 237 EC.reset();
maxnagazumi 24:674b011da45b 238 X_count =0;
maxnagazumi 24:674b011da45b 239 }
maxnagazumi 20:dd4634500bb3 240 }
maxnagazumi 24:674b011da45b 241 if(breaknum==1)break;
o2132613 17:348c660ea6f6 242 }
maxnagazumi 24:674b011da45b 243 EC.reset();
maxnagazumi 24:674b011da45b 244 wait(1);
maxnagazumi 24:674b011da45b 245 X_count=0;
maxnagazumi 24:674b011da45b 246 double m=0;
o2132613 19:510b87211851 247 //角度リセット
o2132613 19:510b87211851 248 while(1) {
maxnagazumi 24:674b011da45b 249 //printf("%.3f %d %d\r\n",v,X_count,i);
maxnagazumi 24:674b011da45b 250 //a=EC.getOmega();
o2132613 19:510b87211851 251 count=EC.getCount();
o2132613 19:510b87211851 252 i =count%500;
maxnagazumi 24:674b011da45b 253 //v=a*r;
maxnagazumi 24:674b011da45b 254 if(m<1.0) {
maxnagazumi 24:674b011da45b 255 m=m+0.05;
maxnagazumi 24:674b011da45b 256 }
maxnagazumi 24:674b011da45b 257 if(m>1) {
maxnagazumi 24:674b011da45b 258 m=1;
maxnagazumi 24:674b011da45b 259 }
maxnagazumi 25:4eb2f2795120 260 f=0.1*m;//速度一定
o2132613 19:510b87211851 261 b=0.0;
maxnagazumi 24:674b011da45b 262 if(X_count>2) {
maxnagazumi 24:674b011da45b 263 if(i > 345 && i < 355) {//離す角度を決める
maxnagazumi 24:674b011da45b 264 out1=1; //ボールを離す
maxnagazumi 24:674b011da45b 265 f=0;
maxnagazumi 24:674b011da45b 266 b=0;
maxnagazumi 24:674b011da45b 267 wait(1);
o2132613 19:510b87211851 268 printf("shot\r\n");
o2132613 19:510b87211851 269 led1=1;
o2132613 19:510b87211851 270 led2=1;
o2132613 19:510b87211851 271 led3=1;
o2132613 19:510b87211851 272 led4=1;
o2132613 19:510b87211851 273 break;
o2132613 19:510b87211851 274 }
o2132613 19:510b87211851 275 }
o2132613 17:348c660ea6f6 276 }
maxnagazumi 24:674b011da45b 277 printf("%.3f %.3f %d\r\n",a,v,i);
o2132613 19:510b87211851 278 X.rise(&Xcount);
o2132613 19:510b87211851 279 a=EC.getOmega();
o2132613 19:510b87211851 280 count=EC.getCount();
o2132613 19:510b87211851 281 i =count%500;
o2132613 19:510b87211851 282 f=0;
o2132613 19:510b87211851 283 b=0;
o2132613 19:510b87211851 284 led1=0;
o2132613 19:510b87211851 285 led2=1;
o2132613 19:510b87211851 286 led3=1;
o2132613 19:510b87211851 287 led4=0;
maxnagazumi 24:674b011da45b 288 shoot=0;
o2132613 19:510b87211851 289 }
o2132613 19:510b87211851 290 void catch_ball()
o2132613 19:510b87211851 291 {
o2132613 22:f0e17f3129cc 292 switch (ball) {
o2132613 22:f0e17f3129cc 293 case 1: //ball servo
o2132613 22:f0e17f3129cc 294 if(ball_count ==0) {
maxnagazumi 24:674b011da45b 295 printf("pass\r\n");
maxnagazumi 24:674b011da45b 296 servo.set_degree(id,pass);
maxnagazumi 20:dd4634500bb3 297 wait(0.5);
o2132613 23:0c6bc29c8f86 298 ball_count =1;
o2132613 23:0c6bc29c8f86 299 ball = 0;
o2132613 22:f0e17f3129cc 300 } else if(ball_count ==1) {
maxnagazumi 24:674b011da45b 301 printf("glab\r\n");
maxnagazumi 24:674b011da45b 302 servo.set_degree(id, first_ball);
maxnagazumi 24:674b011da45b 303 wait(0.5);
maxnagazumi 24:674b011da45b 304 ball_count = 2;
maxnagazumi 24:674b011da45b 305 ball =0;
maxnagazumi 24:674b011da45b 306 } else if(ball_count ==2) {
maxnagazumi 24:674b011da45b 307 printf("first");
o2132613 22:f0e17f3129cc 308 servo.set_degree(id, grab_ball);
maxnagazumi 20:dd4634500bb3 309 wait(0.5);
o2132613 23:0c6bc29c8f86 310 ball_count = 0;
maxnagazumi 20:dd4634500bb3 311 ball =0;
maxnagazumi 20:dd4634500bb3 312 }
maxnagazumi 20:dd4634500bb3 313 break;
o2132613 22:f0e17f3129cc 314 case 2://ball air
maxnagazumi 20:dd4634500bb3 315 if (out1==0) {
maxnagazumi 20:dd4634500bb3 316 out1=1;
o2132613 23:0c6bc29c8f86 317 ball=0;
maxnagazumi 20:dd4634500bb3 318 } else if (out1 == 1) {
maxnagazumi 20:dd4634500bb3 319 out1=0;
o2132613 23:0c6bc29c8f86 320 ball=0;
maxnagazumi 20:dd4634500bb3 321 }
maxnagazumi 24:674b011da45b 322 break;
o2132613 19:510b87211851 323 }
o2132613 19:510b87211851 324 }
o2132613 19:510b87211851 325
o2132613 19:510b87211851 326 void catch_box()
o2132613 19:510b87211851 327 {
o2132613 22:f0e17f3129cc 328 switch(box) {
o2132613 22:f0e17f3129cc 329 case 1:// box servo
o2132613 22:f0e17f3129cc 330 if(box_count ==0) {
maxnagazumi 24:674b011da45b 331 printf("Box first");
o2132613 23:0c6bc29c8f86 332 servo.set_degree(id2, first_box);
o2132613 22:f0e17f3129cc 333 wait(0.5);
o2132613 23:0c6bc29c8f86 334 box_count =1;
maxnagazumi 24:674b011da45b 335 box = 0;
o2132613 22:f0e17f3129cc 336 } else if(box_count ==1) {
maxnagazumi 24:674b011da45b 337 printf("Box grab");
o2132613 22:f0e17f3129cc 338 servo.set_degree(id2, grab_box);
o2132613 22:f0e17f3129cc 339 wait(0.5);
o2132613 23:0c6bc29c8f86 340 box_count = 0;
o2132613 23:0c6bc29c8f86 341 box =0;
o2132613 22:f0e17f3129cc 342 }
maxnagazumi 24:674b011da45b 343 break;
o2132613 22:f0e17f3129cc 344 case 2: //box air
o2132613 22:f0e17f3129cc 345 if (out3==0) {
o2132613 22:f0e17f3129cc 346 out3=1;
o2132613 23:0c6bc29c8f86 347 box = 0;
o2132613 22:f0e17f3129cc 348 } else if (out3 == 1) {
o2132613 22:f0e17f3129cc 349 out3=0;
o2132613 23:0c6bc29c8f86 350 box = 0;
o2132613 22:f0e17f3129cc 351 }
maxnagazumi 24:674b011da45b 352 break;
o2132613 22:f0e17f3129cc 353 }
hirokimineshita 0:736c76a75def 354 }