another

Dependencies:   mbed KondoServoLibrary Encoder

Committer:
o2132613
Date:
Sat Mar 21 04:02:09 2020 +0000
Revision:
27:7a8cc28eeb42
Parent:
26:3adbabf7d770
test;

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 27:7a8cc28eeb42 58 int shot_but;
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;
o2132613 27:7a8cc28eeb42 150 shot_but = 1;
maxnagazumi 26:3adbabf7d770 151 printf("shoot 0\r\n");
maxnagazumi 26:3adbabf7d770 152 led2 = 1;
maxnagazumi 26:3adbabf7d770 153 } else if((ButtonState >> BUTTONCIRCLE)&1 == 1) {//O
maxnagazumi 26:3adbabf7d770 154 shoot = shoot +1;
o2132613 27:7a8cc28eeb42 155 shot_but = 1;
maxnagazumi 26:3adbabf7d770 156 if(shoot > 3) {
maxnagazumi 26:3adbabf7d770 157 shoot =0;
maxnagazumi 26:3adbabf7d770 158 }
maxnagazumi 26:3adbabf7d770 159 printf("shoot %d\r\n",shoot);
maxnagazumi 26:3adbabf7d770 160 wait(0.5);
o2132613 19:510b87211851 161 led1 = 1;
maxnagazumi 26:3adbabf7d770 162 } else if((ButtonState >> BUTTONCROSS)&1 == 1) {//X
o2132613 22:f0e17f3129cc 163 ball = 1;
maxnagazumi 24:674b011da45b 164 printf("ball 1\r\n");
o2132613 19:510b87211851 165 led2 = 1;
o2132613 19:510b87211851 166 } else if((ButtonState >> BUTTONTRIANGEL)&1 == 1) {//△
o2132613 22:f0e17f3129cc 167 box = 1;
maxnagazumi 24:674b011da45b 168 printf("box 1\r\n");
o2132613 19:510b87211851 169 led3 = 1;
o2132613 19:510b87211851 170 } else if((ButtonState >> BUTTONSQUARE)&1 == 1) {//□
o2132613 22:f0e17f3129cc 171 ball = 2;
maxnagazumi 24:674b011da45b 172 printf("ball 2\r\n");
maxnagazumi 20:dd4634500bb3 173 led4 = 1;
maxnagazumi 20:dd4634500bb3 174 } else if((ButtonState >> BUTTONR2)&1 == 1) {//R2
o2132613 22:f0e17f3129cc 175 box = 2;
maxnagazumi 24:674b011da45b 176 printf("box 2\r\n");
o2132613 19:510b87211851 177 led4 = 1;
o2132613 17:348c660ea6f6 178 }
maxnagazumi 25:4eb2f2795120 179
o2132613 19:510b87211851 180 //CAN通信用プログラム
o2132613 27:7a8cc28eeb42 181 if(shot_but!=0)ballShot(shoot);
maxnagazumi 24:674b011da45b 182 catch_ball();
maxnagazumi 26:3adbabf7d770 183 catch_box();
o2132613 19:510b87211851 184 can[0] = move;
o2132613 19:510b87211851 185 controller.write(CANMessage(1,can,1));
o2132613 19:510b87211851 186 printf("%d\r\n",can[0]);
o2132613 19:510b87211851 187 }
o2132613 19:510b87211851 188
maxnagazumi 26:3adbabf7d770 189
maxnagazumi 26:3adbabf7d770 190 void ballShot(int data)
maxnagazumi 20:dd4634500bb3 191 {
maxnagazumi 26:3adbabf7d770 192 static int breaknum=0;
maxnagazumi 20:dd4634500bb3 193 X.rise(&Xcount);
o2132613 19:510b87211851 194 int i=0,count;//rで半径指定 a*r=v
o2132613 19:510b87211851 195 ticker.attach(&cal,0.05);
maxnagazumi 26:3adbabf7d770 196 switch(data) {
maxnagazumi 26:3adbabf7d770 197 case 1:
maxnagazumi 26:3adbabf7d770 198 if(breaknum==0) {
maxnagazumi 26:3adbabf7d770 199 out2=1;
maxnagazumi 26:3adbabf7d770 200 out1=1;
maxnagazumi 26:3adbabf7d770 201 printf("%d\r\n",touchSensor.read());
maxnagazumi 26:3adbabf7d770 202 printf("%d\r\n",EC.getCount());
maxnagazumi 26:3adbabf7d770 203 f=0;
o2132613 27:7a8cc28eeb42 204 b=0.07;
maxnagazumi 26:3adbabf7d770 205 if(touchSensor==0) {//受け渡し
maxnagazumi 24:674b011da45b 206 f=0;
maxnagazumi 24:674b011da45b 207 b=0;
maxnagazumi 26:3adbabf7d770 208 printf("%d",EC.getCount());
maxnagazumi 26:3adbabf7d770 209 EC.reset();
maxnagazumi 26:3adbabf7d770 210 printf("%d",EC.getCount());
maxnagazumi 24:674b011da45b 211 breaknum=1;
o2132613 27:7a8cc28eeb42 212 shot_but = 0;
maxnagazumi 24:674b011da45b 213 }
maxnagazumi 24:674b011da45b 214 }
maxnagazumi 26:3adbabf7d770 215 break;
maxnagazumi 26:3adbabf7d770 216
maxnagazumi 26:3adbabf7d770 217 case 2:
maxnagazumi 26:3adbabf7d770 218 if(breaknum ==1) {
maxnagazumi 26:3adbabf7d770 219 out1=1;
maxnagazumi 26:3adbabf7d770 220 wait(1);
maxnagazumi 26:3adbabf7d770 221 out2=0;
maxnagazumi 26:3adbabf7d770 222 wait(0.5);
maxnagazumi 26:3adbabf7d770 223 breaknum++;
maxnagazumi 26:3adbabf7d770 224 }
maxnagazumi 26:3adbabf7d770 225 f=0.1;
maxnagazumi 26:3adbabf7d770 226 b=0;
maxnagazumi 26:3adbabf7d770 227 printf("moving to remove servo\r\n");
maxnagazumi 26:3adbabf7d770 228 if(EC.getCount()>200) {
maxnagazumi 26:3adbabf7d770 229 printf("servo move\r\n");
maxnagazumi 24:674b011da45b 230 f=0;
maxnagazumi 24:674b011da45b 231 b=0;
maxnagazumi 26:3adbabf7d770 232 servo.set_degree(id, first_ball);
maxnagazumi 26:3adbabf7d770 233 EC.reset();
o2132613 19:510b87211851 234 break;
o2132613 19:510b87211851 235 }
o2132613 27:7a8cc28eeb42 236 shot_but= 0;
maxnagazumi 26:3adbabf7d770 237 break;
maxnagazumi 26:3adbabf7d770 238 case 3:
maxnagazumi 26:3adbabf7d770 239 X_count=0;
maxnagazumi 26:3adbabf7d770 240 double m=0;
maxnagazumi 26:3adbabf7d770 241 while(1) {
maxnagazumi 26:3adbabf7d770 242 count=EC.getCount();
maxnagazumi 26:3adbabf7d770 243 i =count%500;
maxnagazumi 26:3adbabf7d770 244 if(m<1.0) {
maxnagazumi 26:3adbabf7d770 245 m=m+0.05;
maxnagazumi 26:3adbabf7d770 246 }
maxnagazumi 26:3adbabf7d770 247 if(m>1) {
maxnagazumi 26:3adbabf7d770 248 m=1;
maxnagazumi 26:3adbabf7d770 249 }
maxnagazumi 26:3adbabf7d770 250 f=0.35*m;//速度一定
maxnagazumi 26:3adbabf7d770 251 b=0.0;
maxnagazumi 26:3adbabf7d770 252 if(X_count>2) {
maxnagazumi 26:3adbabf7d770 253 if(i > 345 && i < 355) {//離す角度を決める
maxnagazumi 26:3adbabf7d770 254 out1=1; //ボールを離す
maxnagazumi 26:3adbabf7d770 255 f=0;
maxnagazumi 26:3adbabf7d770 256 b=0;
maxnagazumi 26:3adbabf7d770 257 printf("shot\r\n");
maxnagazumi 26:3adbabf7d770 258 led1=1;
maxnagazumi 26:3adbabf7d770 259 led2=1;
maxnagazumi 26:3adbabf7d770 260 led3=1;
maxnagazumi 26:3adbabf7d770 261 led4=1;
maxnagazumi 26:3adbabf7d770 262 break;
maxnagazumi 26:3adbabf7d770 263 }
maxnagazumi 26:3adbabf7d770 264 }
maxnagazumi 26:3adbabf7d770 265 }
maxnagazumi 26:3adbabf7d770 266 X.rise(&Xcount);
maxnagazumi 26:3adbabf7d770 267 count=EC.getCount();
maxnagazumi 26:3adbabf7d770 268 i =count%500;
maxnagazumi 26:3adbabf7d770 269 f=0;
maxnagazumi 26:3adbabf7d770 270 b=0;
maxnagazumi 26:3adbabf7d770 271 led1=0;
maxnagazumi 26:3adbabf7d770 272 led2=1;
maxnagazumi 26:3adbabf7d770 273 led3=1;
maxnagazumi 26:3adbabf7d770 274 led4=0;
maxnagazumi 26:3adbabf7d770 275 shoot=0;
maxnagazumi 26:3adbabf7d770 276 breaknum=0;
o2132613 27:7a8cc28eeb42 277 shot_but=0;
maxnagazumi 26:3adbabf7d770 278 break;
o2132613 17:348c660ea6f6 279 }
o2132613 19:510b87211851 280 }
maxnagazumi 26:3adbabf7d770 281
o2132613 19:510b87211851 282 void catch_ball()
o2132613 19:510b87211851 283 {
o2132613 22:f0e17f3129cc 284 switch (ball) {
o2132613 22:f0e17f3129cc 285 case 1: //ball servo
o2132613 22:f0e17f3129cc 286 if(ball_count ==0) {
maxnagazumi 24:674b011da45b 287 printf("pass\r\n");
maxnagazumi 24:674b011da45b 288 servo.set_degree(id,pass);
maxnagazumi 20:dd4634500bb3 289 wait(0.5);
o2132613 23:0c6bc29c8f86 290 ball_count =1;
o2132613 23:0c6bc29c8f86 291 ball = 0;
o2132613 22:f0e17f3129cc 292 } else if(ball_count ==1) {
maxnagazumi 24:674b011da45b 293 printf("glab\r\n");
maxnagazumi 24:674b011da45b 294 servo.set_degree(id, first_ball);
maxnagazumi 24:674b011da45b 295 wait(0.5);
maxnagazumi 24:674b011da45b 296 ball_count = 2;
maxnagazumi 24:674b011da45b 297 ball =0;
maxnagazumi 24:674b011da45b 298 } else if(ball_count ==2) {
maxnagazumi 24:674b011da45b 299 printf("first");
o2132613 22:f0e17f3129cc 300 servo.set_degree(id, grab_ball);
maxnagazumi 20:dd4634500bb3 301 wait(0.5);
o2132613 23:0c6bc29c8f86 302 ball_count = 0;
maxnagazumi 20:dd4634500bb3 303 ball =0;
maxnagazumi 20:dd4634500bb3 304 }
maxnagazumi 20:dd4634500bb3 305 break;
o2132613 22:f0e17f3129cc 306 case 2://ball air
maxnagazumi 20:dd4634500bb3 307 if (out1==0) {
maxnagazumi 20:dd4634500bb3 308 out1=1;
o2132613 23:0c6bc29c8f86 309 ball=0;
maxnagazumi 26:3adbabf7d770 310 wait(0.5);
maxnagazumi 20:dd4634500bb3 311 } else if (out1 == 1) {
maxnagazumi 20:dd4634500bb3 312 out1=0;
o2132613 23:0c6bc29c8f86 313 ball=0;
maxnagazumi 26:3adbabf7d770 314 wait(0.5);
maxnagazumi 20:dd4634500bb3 315 }
maxnagazumi 24:674b011da45b 316 break;
o2132613 19:510b87211851 317 }
o2132613 19:510b87211851 318 }
o2132613 19:510b87211851 319
o2132613 19:510b87211851 320 void catch_box()
o2132613 19:510b87211851 321 {
o2132613 22:f0e17f3129cc 322 switch(box) {
o2132613 22:f0e17f3129cc 323 case 1:// box servo
o2132613 22:f0e17f3129cc 324 if(box_count ==0) {
maxnagazumi 24:674b011da45b 325 printf("Box first");
maxnagazumi 26:3adbabf7d770 326 servo.set_degree(id2,first_box);
o2132613 22:f0e17f3129cc 327 wait(0.5);
o2132613 23:0c6bc29c8f86 328 box_count =1;
maxnagazumi 24:674b011da45b 329 box = 0;
o2132613 22:f0e17f3129cc 330 } else if(box_count ==1) {
maxnagazumi 24:674b011da45b 331 printf("Box grab");
maxnagazumi 26:3adbabf7d770 332 servo.set_degree(id2,grab_box);
o2132613 22:f0e17f3129cc 333 wait(0.5);
o2132613 23:0c6bc29c8f86 334 box_count = 0;
o2132613 23:0c6bc29c8f86 335 box =0;
o2132613 22:f0e17f3129cc 336 }
maxnagazumi 24:674b011da45b 337 break;
o2132613 22:f0e17f3129cc 338 case 2: //box air
o2132613 22:f0e17f3129cc 339 if (out3==0) {
o2132613 22:f0e17f3129cc 340 out3=1;
o2132613 23:0c6bc29c8f86 341 box = 0;
maxnagazumi 26:3adbabf7d770 342 wait(0.5);
o2132613 22:f0e17f3129cc 343 } else if (out3 == 1) {
o2132613 22:f0e17f3129cc 344 out3=0;
o2132613 23:0c6bc29c8f86 345 box = 0;
maxnagazumi 26:3adbabf7d770 346 wait(0.5);
o2132613 22:f0e17f3129cc 347 }
maxnagazumi 24:674b011da45b 348 break;
o2132613 22:f0e17f3129cc 349 }
hirokimineshita 0:736c76a75def 350 }