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