2
Dependencies: RemoteIR TextLCD
Diff: main.cpp
- Revision:
- 71:192af47a260d
- Parent:
- 70:04798984630c
- Child:
- 72:d389adc0c780
--- a/main.cpp Wed Sep 09 08:26:32 2020 +0000 +++ b/main.cpp Fri Sep 11 00:49:21 2020 +0000 @@ -4,8 +4,8 @@ */ /* - Version 0.12 - Date 2020/09/09 + Version 0.13 + Date 2020/09/10 Uploader Tomotsugu Ogawa 更新するときにここも変える! @@ -194,6 +194,7 @@ int flag_a = 0; // 障害物有無のフラグ int limit = 25; // 障害物の距離のリミット(単位:cm) int backlimit = 20; +int sidelimit = 18; int far; // 最も遠い距離 int houkou; // 進行方向(1:前 2:左 3:右) int t1 = 0; @@ -339,6 +340,23 @@ viewTimer.reset(); // タイマーリセット display(); // ディスプレイ表示 } + switch(flag_sp){ + case 1: + limit = 25; + backlimit = 20; + sidelimit = 18; + break; + case 2: + limit = 30; + backlimit = 18; + sidelimit = 21; + break; + case 3: + limit = 35; + backlimit = 15; + sidelimit = 24; + break; + } ThisThread::sleep_for(90); // 90ms待つ } } @@ -350,20 +368,20 @@ if(mode != LINE_TRACE){ // スピード変更フラグが2より大きいなら flag_sp %= 3; // スピード変更フラグ調整 } - switch(flag_sp){ - case 1: - limit = 25; - backlimit = 20; - break; - case 2: - limit = 28; - backlimit = 18; - break; - case 3: - limit = 32; - backlimit = 15; - break; - } + //switch(flag_sp){ +// case 1: +// limit = 25; +// backlimit = 20; +// break; +// case 2: +// limit = 30; +// backlimit = 18; +// break; +// case 3: +// limit = 35; +// backlimit = 15; +// break; +// } switch(run){ /* 前進 */ case ADVANCE: @@ -550,7 +568,7 @@ run = STOP; } watchsurrounding5(); - if(SC < 25 && SLD < 37 && SL < 30 && SRD < 37 && SR < 30){ // 全方向に障害物がある場合 + if(SC < 27 && SLD < 38 && SL < 31 && SRD < 38 && SR < 31){ // 全方向に障害物がある場合 run = A1LEFT; // 左折 cnt_kyori = 0; kyori = watch(); @@ -695,7 +713,7 @@ servo.pulsewidth_us(1930); // サーボを左に40度回転 ThisThread::sleep_for(100); SLD = watch(); - if(SLD < 18){ // 左前20cm以内に障害物がある場合 + if(SLD < sidelimit){ // 左前20cm以内に障害物がある場合 run = STOP; ThisThread::sleep_for(90); run = BACK; @@ -727,7 +745,7 @@ servo.pulsewidth_us(920); // サーボを右に40度回転 ThisThread::sleep_for(100); SRD = watch(); - if(SRD < 18){ // 右前20cm以内に障害物がある場合 + if(SRD < sidelimit){ // 右前20cm以内に障害物がある場合 run = STOP; // 停止 ThisThread::sleep_for(90); run = BACK; @@ -854,7 +872,7 @@ /* バッテリー残量更新関数 */ void bChange(){ //pc.printf(" bChange1\r\n"); - b10[k++] = (int)(((battery.read() * 3.3 - MIN_V)/0.7)*10+0.5)*10; + b10[k++] = (int)(((battery.read() * 3.3 - MIN_V)/0.8)*10+0.5)*10; if(k == 10){ k = 0; } @@ -863,6 +881,9 @@ if(b<b10[i] && b10[i]<=100){ b = b10[i]; } + else if(b10[i] > 100){ + b = 100; + } } if(b <= 0){ // バッテリー残量0%なら全ての機能停止