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度の位置まで回転し、エレベーターは空中に持ち上がります。
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 | 購入はここをクリック |
DownLoad Url osoyoo.com