OSOYOOから購入 Buy from US Buy from UK Buy from DE Buy from IT Buy from FR Buy from ES Amazon日本~


このプロジェクトでは、障害物センサー(超音波距離検出器)を使って障害物を検出し、衝突を回避して自動運転します。

このプロジェクトを完成させるために、以下の部品を用意してください。
注意事項
1.積み木の色は実際の製品によりますが、使用には影響ありません。
2. すべてのosoyoo製品はarduinoと完全に互換性のあるサードパーティボードです。

このロボットカーをブロックで組み立てる前に、OSOYOO Magic I/Oシールドの下にOSOYOO Arduino用ベーシックボードを以下のように取り付けてください(注意:I/Oシールドのピンをまずベーシックボードのポートに合わせてから、シールドをボードにしっかりと押し付けてください)。

このロボットカーを組み立てるには、組み立て手順に従ってください。明確な組み立て手順のPDFを入手したい場合は、https://osoyoo.com/picture/Building_Robot_Car/lesson4/LESSON4.pdf からダウンロードしてください。

注意:レッスン1でロボットカーを組み立てた方は、このPDFのステップ35まで読み飛ばしてください。


lesson1と同じようにモーターと9V電池ケースを接続してください。

次に、SG90サーボモータをOSOYOOマジックI/OシールドのD4ポートに、超音波モジュールセンサをマジックI/OシールドのD7D8ポートに4ピンPNPケーブルで以下のように接続する:

注:このキットでは、プログラミングツールとしてmblockを使用します。mblockについてもっと知りたい方は、https://osoyoo.com/ja/2021/12/01/preparation-before-class-1へどうぞ!

Step 1) mBlock PC版をhttps://mblock.makeblock.com/en-us/download/、お使いのコンピュータのOSタイプに合わせてダウンロードファイルを選択してください(ブラウザ版は使用しないでください):


Step 2) https://osoyoo.com/driver/mblock/osoyoo_uno.mext から OSOYOO_UNO.mext デバイスファイルをダウンロードします。

Step 3) 可愛いパンダのアイコンをダブルクリックして、mBlock PCソフトウェアを実行します。赤い丸の中の十字をクリックして、デフォルトのデバイスCyberPiを削除してください。

Step 4) ステップ2でダウンロードしたosoyoo_uno_mextファイルをmBlockソフトにドラッグ&ドロップします:

これでmBlockに新しいデバイスファームウェアが表示されます:

これでmBlockソフトウェアとOSOYOO_UNOデバイスファームウェアがPCにインストールされました!

それでは、ブロックを使って上記のアイデアを実現する方法を紹介します。

Step 5: Eventsをクリックし、when Arduino Uno starts upブロックを一番上に追加します:

Step 6: Controlをクリックし、Foreverブロックをプログラミングエリアにドラッグ&ドロップします:

Step 7: Actionをクリックし、set servo pin angle asブロックをプログラミングエリアにドラッグ&ドロップします。

Step 8: Controlをクリックし、Wait secondsブロックをプログラミングエリアにドラッグ&ドロップします:

Step 9: “set servo pin angle as block “を右クリックし、ドロップダウンマニュアルから “duplicate “をクリックします。
複製されたブロックができますので、それをwait secondsブロックの後ろに配置します。
下図のように45を135に、90を90に設定します。

Step 10: Controlをクリックし、foreverブロックを下図のようにプログラミングエリアにドラッグ&ドロップします:

Step 11: Actionをクリックし、set servo pin angle asブロックをプログラミングエリアにドラッグ&ドロップします;

Step 12: Controlをクリックし、wait secondsブロックをプログラミングエリアにドラッグ&ドロップします:

Step 13: 「Control」をクリックし、「if then else」ブロックをプログラミングエリアにドラッグ&ドロップします:

Step 14: 「Operation」をクリックし、「0<0」ブロックをプログラミングエリアにドラッグ&ドロップします:

Step 15: Sensor をクリックし、read ultrasonic sensor trig pin echo pin ブロックをプログラミングエリアにドラッグ&ドロップします;

Step 16:変数(Variable)をクリックし、変数(Variable)ブロックの作成(make a Variable block)をクリックする。左と中央の変数も同じように作成します;

Step 17: 変数をクリックし、中心をプログラミングエリアにドラッグ&ドロップします、
値を0から1に変更します:

Step 18: 前のステップを繰り返し、次のように1を0に変更します:

Step 19: サーボピンの角度をブロックに設定するを右クリックし、デジタル書き込みピンからブロックに複製をクリックします。 複製されたブロックができ、それを秒待ちブロックの後ろに配置します。
下図のように、45から135と90の値を設定し、右から左と中央に変更します。

Step 20: Controlをクリックし、ifとelseのブロックを下図のようにプログラミングエリアにドラッグ・アンド・ドロップします:

Step 21: 「Operation」をクリックし、「0=0」ブロックをプログラミングエリアにドラッグ&ドロップします:

Step 22: Variableをクリックし、centerブロックをプログラミングエリアにドラッグ&ドロップします:

Step 23: 「Action」をクリックし、「Move forward at speed」ブロックをプログラミングエリアにドラッグ&ドロップします;次のように、1 秒を 0.5 秒に変更します;

Step 24: Actionをもう一度クリックし、Stop Movingブロックをプログラミングエリアにドラッグ&ドロップします;

Step 25:「Control」をクリックし、「if」と「else」のブロックを次のようにプログラミングエリアにドラッグ&ドロップします。

Step 26:「Operation」をクリックし、「0=0」ブロックをプログラミングエリアにドラッグ&ドロップします。

Step 27: Variableをクリックし、leftブロックをプログラミングエリアにドラッグ&ドロップします:

Step 28: 「Action」をクリックし、「Turn Left at speed」ブロックをプログラミングエリアにドラッグ&ドロップします;

 Step 29: 再びActionをクリックし、Stop Movingブロックをプログラミングエリアにドラッグ&ドロップします;

Step 30: Controlをクリックし、ifとelseのブロックを次のようにプログラミングエリアにドラッグ&ドロップします。

Step 31:「Operation」をクリックし、「0=0」ブロックをプログラミングエリアにドラッグ&ドロップします。

 Step 32: Variableをクリックし、右ブロックをプログラミングエリアにドラッグ&ドロップします:

Step 33: Action をクリックし、Turn Right for speed ブロックをプログラミングエリアにドラッグ&ドロップします;

Step 34: Actionをクリックし、Stop Movingブロックをプログラミングエリアにドラッグ&ドロップします;

Step 35: 「Action」をクリックし、「Turn Right at speed for block to programming area」をドラッグ&ドロップします、
1秒を1.5秒に変更します;

 

Step 36: 「Action」で「Stop Moving」ブロックをプログラミングエリアにドラッグ&ドロップします;

これでブロックのプログラミングは完了です。 最終的なブロックは以下のようになります:

これですべてのプログラミングブロックが完成しました!上の図から、ロジックはとても簡単です:

Arduinoが起動すると、コンピュータはデッドループに入り、ボタンの状態をチェックします。ボタンが押されていないときは、サーボは元の位置(私のサーボでは0度)で停止し、エレベーターは地面にあります。ボタンが押されると、サーボアームは0度の位置から180度の位置まで回転し、エレベーターは空中に持ち上がります。

Step 37 OSOYOOベーシックボードにプログラムをアップロードする

1) まずOSOYOOボードとPCをUSBケーブルで接続します。mBlockソフトウェアの下部にある接続ボタンをクリックすると、USBウィンドウがポップアップ表示されます、

2) 接続可能なデバイスをすべて表示するチェックボックスを選択します、
3) デバイスドロップダウンメニューからポートを選択します。
4) 接続ボタンをクリックし、PCをOSOYOOベーシックボードに接続します。

5)OSOYOO基本ボードにPCが接続された後、ソフトウェアの下部にあるアップロードボタンをクリックしてください、
OSOYOOボードにコードがアップロードされます:

このレッスンでは、次のような新しいプログラムブロックを学びます:
i) アクション カテゴリでサーボ アングル ブロックを設定します。
このブロックは、特定のデジタル ポートのサーボを特定の角度に制御します。

上のブロックを例にとると、D4 ピンのサーボを 90 度の角度に回転させ、超音波センサーが正面を向くようにします。 この場合、センサーは前方に障害物があるかどうかを検出します。
角度の値を 90 から 45 に変更すると、センサーは左に 45 度回転し、超音波センサーは左側の障害物をテストします。
角度の値を 90 から 135 に変更すると、センサーは右に 45 度回転し、超音波センサーは右側の障害物をテストします。

ii) コントロール カテゴリの黄色の待機ブロック
このブロックは、次のプログラム ブロックを実行するまでの特定の期間、現在のステータスを保持します。

上の例では、D4 のサーボが 90 度方向に回転し、そこで 2 秒間停止します。

iii)センサーセクションから超音波センサーブロックを読み取ります
このブロックは超音波センサーから距離値を読み取ります。


上の例では、ブロックは障害物距離の値を超音波センサーに読み取ります。そのセンサーのトリガー ピンは D7 で、エコー ピンは D8 です。
超音波センサーが障害物を検知すると距離値(整数)を返します。

iv) Operator カテゴリの比較ブロック

比較ブロックは比較値に基づいて True または False を返します


上記例では、超音波センサーの距離値が15(閾値)未満の場合、障害物を検知したことを意味するTrueを返します。
それ以外の場合は、この方向に障害がないことを意味する false が返されます。 しきい値を他の値に変更できます。 値が大きいほど、車はより敏感に動作します。

プログラミングロジック全体: :

まず、プログラムは超音波センサーを 45 度から 135 度まで回転させ、90 度で 2 秒間停止します。 これにより、サーボの方向を調整することができます。 90度で2秒間センサーが正面を向いていない場合は、サーボ内のセンサーの位置を調整して90度になるようにする必要があります。
その後、センサーは永久ループに入り、車は障害物回避モードで走行します。

プログラムはサーボを 45 度回転させ、センサーが 15cm 以内の障害物を検出すると、変数 right を 1 に設定します。これは、右側に障害物があることを意味します。 それ以外の場合、変数 right は 0 に設定されます。

次に、プログラムはサーボを 135 度および 90 度に回転させ、左側の障害物と中央方向の障害物をテストします。 左側に 15 cm 以内に障害物がある場合、変数 left は 1 に設定されます。中央方向に 15 cm 以内に障害物がある場合、変数 center は 1 に設定されます。障害物がない場合、これらの変数は 0 に設定されます。

これで、左、右、中央の 3 つの変数で障害物のステータスがわかりました。 プログラムはこれらの値に基づいて車の動きを決定します。
中心方向に障害物がない場合 (中心=0)、車は前進します。
中央方向に障害物があるが、左側に障害物がない場合 (中央 = 1、左 = 0)、車は左折します。
中央方向、左側にすべて障害物があるが、右側に障害物がない場合 (中央=1、左=1、右=0)、車は右折します。
中央方向、左側、右側のすべてに障害物がある場合 (center=1 および left=1 right=1 )、車が長時間右折すると、車は後戻りします。

次の図は、プログラム ブロック内の上記のプログラミング ロジックを示しています。

超音波センサーの方向を調整します。

コードがロボットカーにロードされた後、USB ケーブルを UNO ボードから抜き、Magic I/O ボードの電源スイッチをオンにします。 その後、超音波センサーが直進方向を向くように5秒間回転します。 超音波センサーが正面を向いていない場合は、電源を切ってください。 ドライバーを使用して超音波センサーの方向を調整し、真正面を向くようにしてから、再度電源をオンにします。最初の 5 秒の間に、センサーは正面方向を向くはずです。

5 秒後、ロボットカーは運転を開始し、障害物を自動的に避けるために方向を変えます。

No. Picture Device Link
1 OSOYOO Basic R3 Board for Arduino 購入はここをクリック
2 OSOYOO Magic I/O Shield for Arduino 購入はここをクリック
3 OSOYOO Ultrasonic Detector Module 購入はここをクリック
4 OSOYOO IR Receiver Module 購入はここをクリック
5 OSOYOO Red button module 購入はここをクリック
6 IR remote controller 購入はここをクリック
7 9V Battery Box 購入はここをクリック
8 9V Battery 購入はここをクリック
9 Servo 購入はここをクリック
10 Motor 購入はここをクリック
11 OSOYOO Tracking Sensor Module 購入はここをクリック
12 OSOYOO Photoresitor Module 購入はここをクリック
13 OSOYOO DHT11 Module 購入はここをクリック
14 OSOYOO Ultrasonic Sensor Block 購入はここをクリック
15 OSOYOO ESP module 購入はここをクリック
16 3 pin 20cm PnP cable 購入はここをクリック
17 4 pin 20cm PnP cable 購入はここをクリック
18 B117 購入はここをクリック
19 B115 購入はここをクリック
20 B113 購入はここをクリック
21 B111 購入はここをクリック
22 B109 購入はここをクリック
23 B107 購入はここをクリック
24 B105 購入はここをクリック
25 B103 購入はここをクリック
26 T024 購入はここをクリック
27 T016 購入はここをクリック
28 L024 購入はここをクリック
29 X064 購入はここをクリック
30 L035 購入はここをクリック
31 X044 購入はここをクリック
32 F057 購入はここをクリック
33 T033 購入はここをクリック
34 PS11 購入はここをクリック
35 P021 購入はここをクリック
36 P011 購入はここをクリック
37 Z005 購入はここをクリック
38 Z010 購入はここをクリック
39 Z101 購入はここをクリック
40 Z1S1 購入はここをクリック
41 A024 購入はここをクリック
42 A013 購入はここをクリック
43 A050 購入はここをクリック
44 A05S 購入はここをクリック
45 A08S 購入はここをクリック
46 A060 購入はここをクリック
47 A03S 購入はここをクリック
48 Z121 購入はここをクリック
49 X275 購入はここをクリック
50 X073 購入はここをクリック
51 Y001 購入はここをクリック
52 Z102 購入はここをクリック
53 P012 購入はここをクリック
54 P011 購入はここをクリック
55 wheel 購入はここをクリック
56 universal wheel 購入はここをクリック
57 cross screwdriver 購入はここをクリック