【小学8年生|F503i】embotとの連携方法【ジョイスティック編】

※当サイトには広告が掲載されています。ご了承くださいm(_ _)m

以前レビューした「F503i」は同じメーカーのembotエムボットというロボットと連携することができます。

本記事の内容
  • 【小学8年生|F503i】embotの連携 ~ジョイスティック編~

これまではF503iの光センサーやキー入力を使ってembotを操作しましたが、今回はembotからF503iを操作したいと思います。

プログラミングの始め方がわからない方は「【小学8年生】F503iのプログラミング方法を詳しく解説【簡単】」を先にご覧ください。
スポンサーリンク

【小学8年生|F503i】embotの連携 ~ジョイスティック編~

F503iとembotの関係

おさらいですが、F503iとembotを連携するときの構造は下記のとおりで、アプリにそれぞれを接続し、アプリを介してF503iとembotが連携します。

今回はembotに接続したジョイスティックを入力とし、F503iのライト(LED)を出力にします。

入力と出力の解説は「【小学8年生】F503iのプログラミング方法を詳しく解説【簡単】」の記事にも書いています。

embotの追加

embotをアプリに追加する手順はF503iを追加した手順と同様です。F503iの代わりにembotを使うだけです。

以前の記事(F503iを追加したときの手順)を参考にしてください。

ジョイスティックの仕組みと使い方

embotにジョイスティックを接続して使用する方法は下記をご覧ください。

ちなみに、embot公式動画で紹介されるほどわかりやすいと評判です!

F503iとembotの連携例① ~ジョイスティックとライトの連携 デジタル編~

完成品の仕様

具体的なプログラムを作っていきます。今回の仕様は下記のとおりです。

  • ジョイスティックを右:ライト(LED)1を点灯
  • ジョイスティックを中央:ライト(LED)2を点灯
  • ジョイスティックを左:ライト(LED)3を点灯

上記のとおりです。ライト1~3は下記のとおりです。

プログラムの設計

プログラムはシンプルでして、ジョイスティックの横(X)方向の値に応じて点灯させるライトを決めます。ジョイスティックの値とライトの関係は次の通り。

ジョイスティック 0~85 86~170 171~255
ライト1 消灯(0) 消灯(0) 点灯(255)
ライト2 消灯(0) 点灯(255) 消灯(0)
ライト3 点灯(255) 消灯(0) 消灯(0)
スクロールできます

図にするとこんな感じです。

ジョイスティックを左に倒すと0なので、グラフも左側に0があります。

プログラム例

具体的なプログラムは下記のとおりです。

実行結果は下記のとおりです。

ジョイスティックに連動してライトが点灯しています!

F503iとembotの連携例② ~ジョイスティックとライトの連携 アナログ編~

完成品の仕様

先程のプログラムをもう少し改良します。ジョイスティックの傾き具合に応じてライトの明るさを変えるようにします。

仕様は下記のとおりです。

  • ジョイスティックを右:ライト(LED)1を最大の明るさで点灯
  • ジョイスティックを中央:ライト(LED)2を最大の明るさで点灯
  • ジョイスティックを左:ライト(LED)3を最大の明るさで点灯
  • それ以外はジョイスティックの傾きに応じて明るさを変更

上記のとおりです。

ジョイスティックは倒す/倒さないの2値ではなく、少し倒す、大きく倒すのように段階があります。それを活用してジョイスティックの傾き具合でライトの明るさを変えます。

プログラムの設計

ジョイスティックの横(X)方向の値に応じて、点灯させるライトと明るさを決めます。ジョイスティックの値とライトの関係は次の通り。

ジョイスティック 0~85 86~128 129~170 171~255
ライト1 消灯
(0)
消灯
(0)
消灯
(0)
点灯
(0~255)
ライト2 消灯
(0)
点灯
(0~255)
点灯
(255~0)
消灯
(0)
ライト3 点灯
(255~0)
消灯
(0)
消灯
(0)
消灯
(0)
スクロールできます

図にするとこんな感じです。

ちょっとややこしいですが、ライト2はジョイスティックが中央(128)のときに明るさを最大(255)にし、左右に傾けるとその分、暗くなるようにしています。

プログラム例

具体的なプログラムは下記のとおりです。

ひき数はparamから設定します。

実行結果は下記のとおりです。

ジョイスティックの傾きに連動してライトの明るさが変わってます!

ポイント解説

プログラムがかなり複雑だったので少し解説します。ポイントは写像関数です。

写像とは指定された範囲の値を別の範囲に変換する関数です。

今回はジョイスティックの値をライトの値に変換します。これをプログラムにしたのがfunction4です。

今回のプログラムでは4箇所も写像をする必要があるので、写像関数を作成し、その関数を4箇所から呼び出すことでプログラムがシンプルになるようにしています。

例えば、ジョイスティックが0~85の場合にライトの値を255~0に変換するには

  • 最小(元):85 → 最小(新):0
  • 最大(元):0 → 最大(新):255

で計算します。なので、ひき数1に85、ひき数2に0を設定し、写像関数を呼び出します。

ちょっとややこしいですが、ジョイスティックを一番右(0)のときに明るさを最大(255)にする必要があるので、最小(元)が85で最大(元)が0です。
こんな感じで、写像関数を呼び出すたびに変わるのは最小(元)と最大(元)なので、それをひき数にして各関数から呼び出しています。

まとめ

本記事のおさらいです。

  • embotのジョイスティックでF503iのLEDを変えられる
  • 写像を使うと指定の範囲を別の範囲に変換できる
  • 関数呼び出しを使うと何個も同じ関数を作らなくて良い
  • 関数呼び出しを使うときにひき数を使うとその値で計算できる

上記のとおりです。

今回はembotを入力装置として使い、F503iを出力装置として使いました。

もちろん逆も可能なので、色々考えてみてください。

他の使い方

他の使い方は下記の記事にまとめています。

それでは、F503iを楽しんでください(^_^)/~

created by Rinker
ノーブランド品
¥9,680 (2025/04/03 22:16:23時点 Amazon調べ-詳細)
created by Rinker
小学館
¥2,317 (2025/04/04 14:12:08時点 Amazon調べ-詳細)
タイトルとURLをコピーしました