.. note:: こんにちは、SunFounderのRaspberry Pi & Arduino & ESP32愛好家コミュニティへようこそ!Facebook上でRaspberry Pi、Arduino、ESP32についてもっと深く掘り下げ、他の愛好家と交流しましょう。 **参加する理由は?** - **エキスパートサポート**:コミュニティやチームの助けを借りて、販売後の問題や技術的な課題を解決します。 - **学び&共有**:ヒントやチュートリアルを交換してスキルを向上させましょう。 - **独占的なプレビュー**:新製品の発表や先行プレビューに早期アクセスしましょう。 - **特別割引**:最新製品の独占割引をお楽しみください。 - **祭りのプロモーションとギフト**:ギフトや祝日のプロモーションに参加しましょう。 👉 私たちと一緒に探索し、創造する準備はできていますか?[|link_sf_facebook|]をクリックして今すぐ参加しましょう! .. _sh_test: 3.1 車をテストする ==================== このセクションでは、車を前進させるためのスクリプトの書き方を学びますが、まずは :ref:`car_projects` を参照して車の組み立て方や基本的な理解を得る必要があります。 プロジェクトを開始する前に、:ref:`upload_mode` で PictoBlox を使用する手順を知っておく必要があります。 必要な部品 --------------------- このプロジェクトでは、以下の部品が必要です。 キットでまとめて購入すると便利です。以下にリンクを掲載しています。 .. list-table:: :widths: 20 20 20 :header-rows: 1 * - 名前 - このキットのアイテム - リンク * - 3 in 1 Starter Kit - 380+ - |link_3IN1_kit| 以下のリンクから、部品を個別に購入することもできます。 .. list-table:: :widths: 30 20 :header-rows: 1 * - コンポーネントの紹介 - 購入リンク * - :ref:`cpn_uno` - |link_Uno_R3_buy| * - :ref:`cpn_l9110` - \- * - :ref:`cpn_tt_motor` - \- 回路の作成 ----------------------- L9110モータードライバーモジュールは、DCおよびステッピングモーターを駆動するための高電力モータードライバーモジュールです。L9110モジュールは、最大4つのDCモーター、または2つのDCモーターの方向および速度制御を制御できます。 以下の図に従って、L9110モジュールとR3ボードの間にワイヤーを接続します。 .. list-table:: :widths: 25 25 50 :header-rows: 1 * - L9110 Module - R3 Board - Motor * - A-1B - 5 - * - A-1A - 6 - * - B-1B(B-2A) - 9 - * - B-1A - 10 - * - OB(B) - - 右モーターの黒ワイヤ * - OA(B) - - 右モーターの赤ワイヤ * - OB(A) - - 左モーターの黒ワイヤ * - OA(A) - - 左モーターの赤ワイヤ .. image:: img/car_2.png :width: 800 プログラミング ------------------------ **1. 車を前進させる** 上記の配線に基づいて、ピン5と6は右モーターの回転を制御するために使用され、ピン9と10は左モーターの回転を制御するために使用されます。では、車を前進させるスクリプトを書いてみましょう。 ボードをArduino Unoに選択した後、:ref:`upload_mode` に切り替え、次の図に従ってスクリプトを書きます。 .. image:: img/1_test1.png **Upload Code** ボタンをクリックして、コードをR3ボードにアップロードします。完了したら、車の両方のモーターが前進します(車を地面に置いている場合、まっすぐ前進しますが、両方のモーターの速度が少し異なるため、車は曲がるかもしれません)。 もし両方のモーターが前進しない場合、次の状況が発生した場合、両方のモーターの配線を再調整する必要があります。 * 両方のモーターが同時に後方に回転する場合(左モーターは時計回りに回転し、右モーターは反時計回りに回転する)、左モーターと右モーターの配線を同時に交換します。OA(A)とOB(A)を交換し、OA(B)とOB(B)を交換します。 * 左モーターが後方に回転する場合(時計回りに回転)、左モーターのOA(B)とOB(B)の配線を交換します。 * 右モーターが後方に回転する場合(反時計回りに回転)、右モーターのOA(A)とOB(A)の配線を交換します。 **2. ブロックを作成** スクリプトをよりクリーンで使いやすくするため、前進の動作を制御するすべてのブロックを1つのブロックにまとめ、使用するときはこのブロックを直接呼び出します。 **My Blocks** パレットの **Make a Block** をクリックします。 .. image:: img/1_test31.png ブロックの名前を **forward** に設定し、 **Add an input** にチェックを入れ、入力名を **speed** に設定します。 .. image:: img/1_test32.png 車を前進させるためのブロックを **forward** にドラッグ&ドロップします。pin6とpin9にパラメーター **speed** を追加する必要があります。 .. image:: img/1_test33.png 作成したブロックを [Forward] ブロックの **forward** で呼び出します。Uploadモードでは、最初に [When Arduino Uno starts up] ブロックを追加する必要があります。 * モーターの回転速度の範囲は100~255です。 .. image:: img/1_test3.png **3. モーターの速度を調整** 2つのモーターの速度にわずかな違いがあるため、車がまっすぐ進むことができない場合、車ができるだけまっすぐ進むように、左と右のモーターに異なる速度を設定します。 私の車は右前方にゆっくりと進むので、左のモーターの速度を少し下げます。 .. image:: img/1_test2.png