2.4 動くマウス

今日はポテンショメータで制御するマウスのおもちゃを作ります。

緑の旗がクリックされると、ステージ上のマウスが前進し、ポテンショメータを回転させると、マウスが移動方向を変えます。

../_images/6_mouse.png

必要な部品

このプロジェクトには、以下のコンポーネントが必要です。

全キットを購入すると便利です。こちらがリンクです:

名前

このキットのアイテム

リンク

ESP32 Starter Kit

320+

ESP32 Starter Kit

下記のリンクから個別に購入することもできます。

コンポーネントの紹介

購入リンク

ESP32 WROOM 32E

BUY

ESP32カメラ拡張ボード

-

ブレッドボード

BUY

ジャンパーワイヤ

BUY

ポテンショメータ

BUY

学べること

  • ポテンショメータの原理

  • アナログピンの読み取りと範囲

  • 一つの範囲から別の範囲へのマッピング

  • スプライトの動きと方向の変更

回路の構築

ポテンショメータは3つの端子を持つ抵抗素子で、側面の2つのピンは5VとGNDに、中央のピンはピン35に接続されます。ESP32のADCコンバータによる変換後、値の範囲は0-4095になります。

../_images/5_moving_mouse_bb.png

プログラミング

1. スプライトの選択

デフォルトのスプライトを削除し、スプライトエリアの右下にある Choose a Sprite ボタンをクリックし、検索ボックスに mouse と入力してからクリックして追加します。

../_images/6_sprite.png

2. 変数の作成

ポテンショメータの読み取り値を保存するために、 value という変数を作成します。

作成すると、 Variables パレット内に value が表示され、チェック状態になります。これはこの変数がステージ上に表示されることを意味します。

../_images/6_value.png

3. ピン35の値を読む

ピン35の読み取り値を変数 value に格納します。

  • [set my variable to 0]: 変数の値を設定します。

  • [read analog pin ()]: 0-4095の範囲のピンの値を読み取ります。

../_images/6_read_a0.png

常に読み取りを行うためには、[forever]ブロックを使用する必要があります。このスクリプトを実行してポテンショメータを両方向に回転させると、値の範囲が0-1023であることがわかります。

../_images/6_1023.png

4. スプライトを動かす

[move steps]ブロックを使ってスプライトを動かし、スクリプトを実行すると、スプライトが中央から右に移動するのが見られます。

../_images/6_move.png

5. スプライトの方向を変える

今度はピン35の値によってスプライトの移動方向を変えます。ピン35の値は0-4095の範囲ですが、スプライトの回転方向は-180~180なので、[map]ブロックを使用する必要があります。

また、最初に[緑の旗がクリックされたとき]を追加してスクリプトを開始します。

  • [point in direction]: スプライトの操縦角度を設定します。 Motion パレットから。

  • [map from to]: 一つの範囲を別の範囲にマッピングします。

../_images/6_direction.png