Microsoft MakeCode for micro:bit の拡張機能についてあらためて情報を少し調べてみる【micro:bit】

この記事は、「[micro:bit Advent Calendar 2023](https://qiita.com/advent-calendar/2023/microbit)」の 5日目の記事です。

## 今回の内容
今回の記事の内容は、[Microsoft MakeCode](https://www.microsoft.com/ja-jp/makecode) の中の micro:bit用の開発環境である [Microsoft MakeCode for micro:bit](https://makecode.microbit.org/)に関する内容です。

具体的には、Microsoft MakeCode for micro:bit の拡張機能について、あらためてみていこうという話です。

## Microsoft MakeCode for micro:bit の拡張機能
そもそも、「Microsoft MakeCode for micro:bit の拡張機能が何か？」という話ですが、これは標準で開発に使えるブロックに加え、独自のブロックを使えるようにできる機能です。

Microsoft MakeCode for micro:bit のエディタ上では、以下の部分を押して扱う流れになります。
![拡張機能ボタン](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/6c623501-e334-483b-e821-7a3a62b5ace3.png)

### 記事執筆時点での拡張機能のリスト
このボタンを押すと、以下のように拡張機能として選べるものの一覧を見ることができます。

以下は、記事執筆時点で「おすすめ」として出てくるものの一覧です。

![拡張機能1](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/bc4640f9-c8ec-74f5-799c-e8198e3f7f2f.png)

![拡張機能2](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/20e29fef-485b-530d-b0c3-a8ac252393a3.png)

さらに、画面上部のテキストボックス下にあるボタンを押すと、デフォルトで表示されてなかった拡張機能もいろいろ表示されます。以下は、ボタンの中の「Networking」を押した時に出てくるものの一部です。

![拡張機能：Networking](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/35968e1d-dd93-a300-598a-90819285567b.png)

また、画面右上のはてなマークのボタンを押すと、拡張機能一覧を見ることもできます。

![はてなボタン](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/e7dd551b-240c-332c-3f68-d51ca18d4a2b.png)

以下は、その一覧ページの上部の一部です。

![一覧ページの上部](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/572a704b-b9d0-60f5-e4cc-59fe23fa9f87.png)

![一覧ページの上部の続き](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/4d2d3335-31b5-2198-d38a-0ff3a3c759b3.png)

なお、ここに出てこないものも、「テキストボックスに URL を直接入力して追加する」という方法で、選択する方法もあります。

### 自分がよく使うガジェット系拡張機能
ここで、自分がよう使うガジェット系の拡張機能を、一部抜粋して紹介してみます。

以下の 2つはよく利用しています。

●Grove 0.5.0 (Seeed-Studio/pxt-grove)
　https://makecode.microbit.org/pkg/Seeed-Studio/pxt-grove

●neopixel 0.7.6 (microsoft/pxt-neopixel)
　https://makecode.microbit.org/pkg/microsoft/pxt-neopixel

特に NeoPixel の拡張のほうは、簡単にレインボーに光らせることができるブロックがあったりして、LEDテープとの組み合わせで重宝しています。

#### NeoPixel の拡張を使った事例
例えば、こんなものを作るのに使いました。

<iframe width="560" height="315" src="https://www.youtube.com/embed/4PrwiB_koXQ?si=gGS69SAPOb3I5BE4" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>

<iframe width="560" height="315" src="https://www.youtube.com/embed/8-Bhf8gKN7Q?si=G5pRoAJlM4bk3ctg" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>

<iframe width="560" height="315" src="https://www.youtube.com/embed/s4auEwHEjlQ?si=jM-I2EQZ9d_IGRSF" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>

<iframe width="560" height="315" src="https://www.youtube.com/embed/lCpOJWjYxlU?si=MIwH220Qn40gIDRg" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>

### 拡張機能を自作する
この拡張機能は、自作することもできます。自作する話について、以下の公式ページにも手順などの情報が書かれています。

 ●Building your own extension
　https://makecode.com/extensions/getting-started

以下は、VSCode を使って作る場合という話や、作成に使うコマンドラインツールについて書かれた公式ページです。

●Building your own extension
　https://makecode.com/extensions/getting-started/vscode

 ●Command Line Tool
　https://makecode.com/cli

 日本語で記事を書かれた方の情報も出てくるので、「MakeCode 拡張機能 作り方」などといったキーワードで、記事を探すというのが良いかもしれません。

## おわりに
Microsoft MakeCode for micro:bit の拡張機能についてあらためて少し調べてみました。

今回の記事を書くために、拡張機能の画面をきちんと見てみたり、リストのページを一通り眺めたりして、今まで気づけてない点に気づくことができて勉強になりました。

### 余談： 気になる拡張機能（リストに出てきているもの）
最後に余談になりますが、自分が所有しているガジェット関連の拡張機能や、気になる拡張機能のリンクを掲載して終わろうと思います（上で紹介した、リストの中に出てきているものの抜粋になります）。

●pxt-DHT11_DHT22 0.0.3 (alankrantas/pxt-DHT11_DHT22)
　https://makecode.microbit.org/pkg/alankrantas/pxt-DHT11_DHT22

●pxt-kitronik-halohd 0.2.6 (KitronikLtd/pxt-kitronik-halohd)
　https://makecode.microbit.org/pkg/KitronikLtd/pxt-kitronik-halohd

●koi 0.6.8 (KittenBot/pxt-koi)
　https://makecode.microbit.org/pkg/KittenBot/pxt-koi

●Huskylens 2.0.6 (DFRobot/pxt-DFRobot_HuskyLens)
　https://makecode.microbit.org/pkg/DFRobot/pxt-DFRobot_HuskyLens

●maqueen 1.7.2 (DFRobot/pxt-maqueen)
　https://makecode.microbit.org/pkg/DFRobot/pxt-maqueen
 
●maqueenPlusV2 2.1.2 (DFRobot/pxt-DFRobot_MaqueenPlus_v20)
　https://makecode.microbit.org/pkg/DFRobot/pxt-DFRobot_MaqueenPlus_v20

●MaqueenPlus 1.5.1 (DFRobot/pxt-DFRobot-Maqueenplus)
　https://makecode.microbit.org/pkg/DFRobot/pxt-DFRobot-Maqueenplus

●pxt-kitronik-servo-lite 1.0.9 (KitronikLtd/pxt-kitronik-servo-lite)
　https://makecode.microbit.org/pkg/KitronikLtd/pxt-kitronik-servo-lite

●pxt-kitronik-motor-driver 0.0.8 (KitronikLtd/pxt-kitronik-motor-driver)
　https://makecode.microbit.org/pkg/KitronikLtd/pxt-kitronik-motor-driver

●pxt-kitronik-I2C-16-servo 0.9.4 (KitronikLtd/pxt-kitronik-i2c-16-servo)
　https://makecode.microbit.org/pkg/KitronikLtd/pxt-kitronik-i2c-16-servo

●inkybit 0.0.5 (pimoroni/pxt-inkybit)
　https://makecode.microbit.org/pkg/pimoroni/pxt-inkybit

●motobit 0.0.4 (sparkfun/pxt-moto-bit)
　https://makecode.microbit.org/pkg/sparkfun/pxt-moto-bit

●pxt-plenbit 1.0.9 (plenprojectcompany/pxt-PLENbit)
　https://makecode.microbit.org/pkg/plenprojectcompany/pxt-PLENbit

●dfplayermini 0.1.6 (51bit/dfplayermini)
　https://makecode.microbit.org/pkg/51bit/dfplayermini

●microbit-pxt-blehid 0.0.24 (bsiever/microbit-pxt-blehid)
　https://makecode.microbit.org/pkg/bsiever/microbit-pxt-blehid

●midi 2.2.0 (microsoft/pxt-midi)
　https://makecode.microbit.org/pkg/microsoft/pxt-midi

●bluetooth-midi 2.0.13 (microsoft/pxt-bluetooth-midi)
　https://makecode.microbit.org/pkg/microsoft/pxt-bluetooth-midi

●linebeacon 0.0.14 (pizayanz/pxt-linebeacon)
　https://makecode.microbit.org/pkg/pizayanz/pxt-linebeacon