




このプロジェクトでは、スマート ロボットの指を作成し、それを使ってピンポン球を別の場所に移動します。 障害物センサー(超音波距離検出器)を使用してボールの飛来を検出します。 ボールが検出されると、指でボールを拾い、車はボールを別の場所に落とし、その後車は元の場所に戻って別のボールを待ちます。
このプロジェクトを完了するには、次の部品を準備してください
注意:
1. ビルディングブロックの色は実際の製品の影響を受けますが、使用には影響しません。
2. Arduino 用のすべての OSOYOO 製品は、Arduino と完全互換性のあるサードパーティ製ボードです。

ブロックでロボットを構築する前に、次のように OSOYOO Magic I/O シールドの下に Arduino 用 OSOYOO ベーシック ボードを取り付けてください (注意してください: 最初に I/O シールドのピンがベーシック ボードのポートと位置合わせされてから、 シールドは UNO ボードにしっかりと取り付けてください)。

このロボットカーを組み立てるには、組み立て手順に従ってください。分かりやすい組み立て手順のPDFを入手したい場合は、https://osoyoo.com/picture/Building_Robot_Car/lesson5/LESSON5.pdf からダウンロードしてください。
注意:built the robot car for lesson 1を作った方は、このPDFのstep35まで読み飛ばしてください。




















lesson 1と同じようにモーターと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) https://mblock.makeblock.com/en-us/download/から mBlock PC バージョンをダウンロードし、コンピューターの 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: Actionをクリックし、set servo pin angle asブロックをプログラミングエリアにドラッグ&ドロップします;

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

Step 8: Action を再度クリックし、set servo pin angle as ブロックをプログラミングエリアにドラッグ&ドロップします;
Step 9: Step7を繰り返します:
Step 10:Action をクリックし、set servo pin angle as block をプログラミングエリアにドラッグ&ドロップします;
Step 11:Controlをクリックし、Wait secondsブロックをプログラミングエリアにドラッグ&ドロップします:

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

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

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

Step 15:Sensorをクリックし、read ultrasonic sensor trig pin echo pinブロックをプログラミングエリアにドラッグ&ドロップし、pin 7とpin 8を以下のように設定する;

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

Step 17:「Control」をクリックし、「Wait seconds」ブロックをプログラミングエリアにドラッグ&ドロップします:
Step 18:Actionをクリックし、set servo pin angle asブロックをプログラミングエリアにドラッグ&ドロップします;
Step 19:Wait secondsブロックを右クリックし、デジタル書き込みピンからブロックへの複製をクリックします。複製したブロックを、Set servo pin angle as block の後ろに配置します。下図のように角度を変更します。

Step 20:Controlをクリックし、Wait secondsブロックをプログラミングエリアにドラッグ&ドロップします 次のように0.5秒を書き込みます:
:
Step 21:Actionをクリックし、Turn Left Speed forブロックをプログラミングエリアにドラッグ&ドロップします;1秒を0.4秒に変更します;

Step 22: Actionをクリックし、Stop Mowingブロックをプログラミングエリアにドラッグ&ドロップします;
Step 23:「Action」をもう一度クリックし、「set servo pin angle」ブロックをプログラミングエリアにドラッグ&ドロップします、
90を0に変更します;
Step 24:「Control」をクリックし、「wait seconds」ブロックをプログラミングエリアにドラッグ&ドロップします、
wait0.5秒に変更します:
Step 25: ステップ23を繰り返し、90を15に変更します:

Step 26:「Control」をクリックし、「Wait seconds」ブロックをプログラミングエリアにドラッグ&ドロップします、
次のように0.5秒待つ:
Step 27:再度Actionをクリックし、set servo pin angle asブロックをプログラミングエリアにドラッグ&ドロップします、
90を30に変更します;
Step 28:「Action」をクリックし、「Move Backward at speed for sec」ブロックをプログラミングエリアにドラッグ&ドロップします、
スピードを100から50に変更します;

Step 29:同じく「Action」をクリックし、「Turn Right at speed for sec」ブロックをプログラミングエリアにドラッグ&ドロップします、
スピードを100から50に変更し、1秒から0.5秒に変更します;
Step 30: 「Move Forward at speed for sec」ブロックをプログラミングエリアにドラッグ&ドロップし、スピードを100から50に変更します;
Step 31: Forward Left speed Right speedブロックをプログラミングエリアにドラッグ&ドロップし、スピードを100から30に変更します;
これでブロックのプログラミングは完了です。 最終的なブロックは以下のようになる:

これですべてのブロックのプログラミングが完了しました!上の図から、ロジックはとても簡単だ:
Arduinoが起動すると、コンピュータはデッドループに入り、ボタンの状態をチェックします。ボタンが押されていないときは、サーボは元の位置(私のサーボでは0度)で停止し、エレベーターは地面にあります。
1) まずOSOYOOベーシックボードをUSBケーブルでPCに接続してください。その後、mBlockソフトウェアの下部にある接続ボタンをクリックすると、USBウィンドウがポップアップ表示されます、
2) Show all connectable deviceチェックボックスを選択し、デバイスのドロップダウンメニューが表示されます、
3) デバイスのドロップダウンメニューからポートを選択します。
4) 接続ボタンをクリックし、PCをOSOYOOベーシックボードに接続します。


このレッスンでは、新しいプログラムブロックは使用しません。もしブロックの意味がわからない場合は、以前のレッスンを復習してください。
プログラミングロジックの説明は以下のグラフの通りです:
まず、サーボを 30 度から 0 度まで回転させ、30 度で停止させます。これで指が開いた状態から閉じた状態になり、次に開いた状態になる。指がこのように動作しない場合は、まず指を調整する必要がある。
その後、超音波センサーが永久ループに入り、車の進行方向に障害物があるかどうかをチェックする。
超音波センサーが7cm以内の障害物を検知すると、0.5秒間、車の動きを止める。サーボが開状態から閉状態へゆっくり回転し、指が障害物に引っかかるようにした後、ロボットカーは速度100で0.4秒間左旋回し、その後停止する。サーボが閉状態から開状態にゆっくり回転し、指を障害物に接触させ、ロボットカーが速度50で1秒間後進し、速度50で0.5秒間右旋回し、速度50で1秒間前進する。
超音波センサが障害物を検知しなければ、速度30で前進する。
上記のプログラムブロックは電源を切らない限り永久ループとして実行される。

指の位置を調整する:
手動:
電源を入れた後、指は開き、閉じ、再び開き、約1秒間開いた位置に留まります。フィンガーが開いた位置で止まらない場合は、電源を切ってからサーボギアを取り出し、両方のフィンガーが開いた位置になるようにしてください。
指を正しい位置に調整した後、再度電源を入れてください。そして、開いたフィンガーにボールを入れます。超音波センサーがボールを検知すると、ボールをキャッチして左手の位置に移動します。 ボールを移動した後、車は元の位置に戻ります。
コード
以下のコードをArduinoにアップロードする。電源を入れ、指が開いた状態になっているか確認してください。
指が開いていない場合は、”30 “の角度を調整し、正しい値になるまで繰り返します。

以下のコードをArduinoにアップロードしてください。電源を入れ、指が閉じた状態になっているかどうかを確認します。
そうでない場合は、”0 “を別の度数に調整し、正しい値が得られるまで繰り返します。

ロボットの指の角度を記録し、サンプルコードの角度を正しい値に置き換えてください。
動作結果
電源を入れ、車を地面に置くと、車は前進し、途中に障害物(指の大きさに応じて適切な障害物を選択してください)があると、指はそれをキャッチし、それを片付けます)その後、前進します。次のビデオのように:

| 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