version which is easier to read

Dependencies:   mbed KondoServoLibrary Encoder

Committer:
maxnagazumi
Date:
Sat Mar 21 03:15:26 2020 +0000
Revision:
26:3adbabf7d770
Parent:
25:4eb2f2795120
aa

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