.. note:: こんにちは、SunFounderのRaspberry Pi & Arduino & ESP32愛好家コミュニティへようこそ!Facebook上でRaspberry Pi、Arduino、ESP32についてもっと深く掘り下げ、他の愛好家と交流しましょう。 **参加する理由は?** - **エキスパートサポート**:コミュニティやチームの助けを借りて、販売後の問題や技術的な課題を解決します。 - **学び&共有**:ヒントやチュートリアルを交換してスキルを向上させましょう。 - **独占的なプレビュー**:新製品の発表や先行プレビューに早期アクセスしましょう。 - **特別割引**:最新製品の独占割引をお楽しみください。 - **祭りのプロモーションとギフト**:ギフトや祝日のプロモーションに参加しましょう。 👉 私たちと一緒に探索し、創造する準備はできていますか?[|link_sf_facebook|]をクリックして今すぐ参加しましょう! .. _sh_moving_mouse: 2.5 移動するマウス =================== 今日は、ポテンショメーターで制御されるマウスのおもちゃを作成します。 緑の旗がクリックされたとき、ステージ上のマウスが前進し、ポテンショメーターを回すと、マウスが移動の方向を変えます。 .. image:: img/6_mouse.png 学べること --------------------- - ポテンショメーターの原理 - アナログピンと範囲の読み取り - ある範囲を別の範囲にマッピングする - スプライトの移動と方向変更 必要な部品 --------------------- このプロジェクトでは、以下の部品が必要です。 全てのキットを購入することは確かに便利です、リンクはこちらです: .. 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_breadboard` - |link_breadboard_buy| * - :ref:`cpn_wires` - |link_wires_buy| * - :ref:`cpn_potentiometer` - |link_potentiometer_buy| 回路の作成 ----------------------- ポテンショメーターは3端子の抵抗素子で、2つの側面ピンは5VとGNDに接続され、中央のピンはA0に接続されます。ArduinoボードのADCコンバーターによる変換後、値の範囲は0-1023です。 .. image:: img/circuit/potentiometer_circuit.png プログラミング ------------------ **1. スプライトを選択する** デフォルトのスプライトを削除し、スプライトエリアの右下にある **Choose a Sprite** ボタンをクリックします。検索ボックスに **mouse** を入力し、それをクリックして追加します。 .. image:: img/6_sprite.png **2. 変数の作成** ポテンショメータの読み取り値を保存するための変数 **value** を作成します。 作成すると、 **value** が **Variables** パレット内に表示され、チェックされた状態で表示されます。これは、この変数がステージに表示されることを意味します。 .. image:: img/6_value.png **3. A0の値を読み取る** A0の読み取り値を変数 **value** に保存します。 * [set my variable to 0]: 変数の値を設定します。 * [read analog pin A0]: A0~A5の値を0-1023の範囲で読み取ります。 .. image:: img/6_read_a0.png 全体を読むためには、[forever]ブロックを使用する必要があります。このスクリプトをクリックして実行し、ポテンショメーターを両方向に回転させると、値の範囲が0-1023であることがわかります。 .. image:: img/6_1023.png **4. スプライトを移動する** [move steps]ブロックを使用してスプライトを移動します。スクリプトを実行すると、スプライトが中央から右に移動するのが見えます。 .. image:: img/6_move.png **5. スプライトの方向を変える** A0の値によってスプライトの移動方向を変えます。A0の値の範囲は0-1023ですが、スプライトの回転方向は-180~180ですので、[map]ブロックを使用する必要があります。 また、スクリプトの開始時に[when green flag clicked]を追加します。 * [`point in direction `_]: スプライトの操舵角を設定します。 **Motion** パレットから。 * [map from to]: ある範囲を別の範囲にマッピングします。 .. image:: img/6_direction.png