### プロジェクト12:超音波障害物回避タンク
#### **(1)説明:**
前のプロジェクトでは、超音波音声追従スマートカーを作りました。実際には、同じコンポーネントと同じ配線方法を使用し、テストコードを変更するだけで、超音波障害物回避スマートカーに変えることができます。このスマートカーは人の手の動きに合わせて動くことができます。
超音波センサーを使用して、スマートカーと前方の障害物との距離を検出し、このデータに基づいて2つのモーターの回転を制御することで、スマートカーの動きを制御します。
| 検出 | |
| :----------------------------------------------------: | :-----: |
| 前方の障害物との距離(超音波センサーで計測)
(サーボの角度を90°に設定) | a (cm) |
| 右側の障害物との距離(超音波センサーで計測)
(サーボの角度を0°に設定) | a2 (cm) |
| 左側の障害物との距離(超音波センサーで計測)
(サーボの角度を180°に設定) | a1 (cm) |
**設定:サーボの開始角度を90°に設定**
| 条件1 | 条件2 | 条件3 | 動作 |
| :---: | :------------------: | :--------------: | :------------------------------------------------------- |
| a<20 | | | 500ms停止;サーボの角度を180°に設定し、a1を読み取り、100msの遅延;サーボの角度を0°に設定し、a2を読み取り、0.1sの遅延。 |
| | a1<50
または
a2<50 | **a1とa2を比較** | |
| | | a1>a2 | サーボの角度を90°に設定し、700ms左回転(PWMを255に設定)し、前進(PWMを200に設定)。 |
| | | a1<a2 | サーボの角度を90°に設定し、700ms右回転(PWMを255に設定)し、前進(PWMを200に設定)。 |
| | a1≥50
かつ
a2≥50 | ランダム | サーボの角度を90°に設定し、500ms左回転(PWMを255に設定)し、前進(PWMを200に設定)。
サーボの角度を90°に設定し、500ms右回転(PWMを255に設定)し、前進(PWMを200に設定)。 |
| a≥20 | | | 前進(PWMを100に設定) |
#### **(2)フローチャート:**

#### **(3)接続図:**

(注意: サーボの茶色、赤色、オレンジ色のワイヤーはそれぞれ拡張ボードのG (GND)、V(5V)、D10に接続されます;超音波センサーについては、VCCピンを5v (V)に、Trigピンをデジタル12 (S)に、EchoピンをD13 (S)に、GndピンをGnd (G)に接続します;前のプロジェクトと同様です。)
#### **(4)テストコード:**
以下のようにブロックをドラッグしてコードを編集することもできます。
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
**完全なテストコード**
(**注意:** コードをアップロードする前にBluetoothモジュールを接続しないでください。コードのアップロードにもシリアル通信を使用しており、Bluetoothシリアル通信と競合が生じ、アップロードが失敗する可能性があります。)

#### **(5)テスト結果:**
テストコードのアップロードが成功したら、配線し、DIPスイッチをON側に切り替えて電源を入れます。スマートカーは前進し、自動的に障害物を回避します。
