0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

micro:bit Makecodeにカラーセンサー用の拡張機能を追加する

Posted at

浜松ホトニクスのカラーセンサーS11059-02DTでmicro:bitのロボットカーを制御してみましたが、このセンサーはI2Cで制御するため、子どもにはプログラミングに難解な部分があります。
s13683-makecode.png
そこでI2C周りを隠蔽したカスタムの拡張機能を作ってみることにしました。

micro:bitのMakecodeで拡張機能を作る方法は公式のドキュメントBuilding your own extensionに載っています。方法は2つ紹介されていて
・コマンドラインツールを使う方法
・Makecodeのオンラインエディタを使う方法
があります。
コマンドラインを使う方法はWindows上の環境構築が面倒なので、オンラインエディタを使います。

Makecodeエディタを使う場合も、作った拡張機能を共有するにはGitHubアカウントが必要で、以下はアカウントがすでにあるという前提です。

新規のプロジェクトを作成する

まずMakecode上に新規のプロジェクトを作成します。
Makecodeエディタのホーム画面の「読み込む」をクリックし、「あなたのGitHubリポジトリ」を選択します。
newrepo.png
初回はGitHubへのサインインを求められますので必要な情報を入力します。
つぎに「新規作成」をクリックします。
newrepo2.png
リポジトリ名などを入力すると、自分のGitHub上に公開リポジトリが作られ必要なファイル類がコピーされます。
newrepo3.png

拡張機能ブロックの作成

ブロックの作り方は公式のDefining blocksにあります。このドキュメントにも紹介されていますが、サンプル集として用意されているPlaygroundにコード例がありますので、参考になります。

MakecodeのブロックのプログラムはTypeScriptで記述します。Makecodeエディタを使う場合はJavaScriptモードを使用します。
pxt1.png
上述の設定によりGitHubに関連付けられていますので、画面左のエクスプローラーに関連ファイル名が表示され、同じものがGitHubリポジトリに同期されます。いくつかファイルがありますが、プログラムを書くファイルはmain.tsですのでこれを選択します。

既にブロックで作ったプログラムがある場合は、JavaScriptモードに変換してから多少修正するだけです。
拡張ブロックを作成するのに最低限必要な修正は以下の項目です。

拡張機能全体の名前

ブロックのカテゴリーに表示される名前です。これをプログラム全体のnamespaceとします。この例だと、「カラーセンサー」というnamespaceでプログラムの全体を囲みます。
カテゴリーに表示される名前の色やアイコンを定義するため、namespaceの前に「//% 」で始まる行を入れます。詳細は公式Defining blocksを参照してください。
mkcd2.png

ブロックのプログラム

ブロックにしたいプログラムは関数で記述し、関数は外部参照できるようにexportをつけ、さらに「//% block」という修飾をつける必要があります。
ブロックには関数名が表示されますが、他の名称にした場合は「//% block = "名称"」とします。
mkcd3.png
これも詳細は公式のDefining blocksを参照してください。

ブロックの形(イベント、引数、戻値)などはプログラムごとに自動的に決定されます。今回の例のように値を返す場合は、関数に戻値の型を指定して、return文をいれておくだけです。このあたりも公式ドキュメントとサンプルに例があります。
下はRGBのRの値を返す例です。
mkcd4.png

mkcd5.png

使い方・参考

完成したら、使用したいMakecodeエディタの、拡張機能画面の検索・URLの欄にGitHubリポジトリのURLを入れます。公開設定になっているので、だれでも機能を追加できます。

GitHubとリンクしていますので、定期的にPushしてやればGitHubともローカルのGitとも同期できます。
ローカルのエディタのほうが使いやすい場合は、ローカルで編集してから、テストの時はGitHubにPushして、逆にMakecodeエディタにPullする使い方もできます。
mkcd6.png

参考文献

micro:bitでお手軽にGroveモジュールを利用するための独自拡張機能を作ってみる
付録1-8 2020年リリース(サヌキテックネット)

以上

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?