私はボランティアで、小中学生に電子回路とマイクロビットプログラミングを教えるワークショップを実施しています。
リンク
このワークショップで、私があらかじめ独自の「拡張機能」を準備しておき、それを生徒に利用してもらいたいという機会がありました。
調べたところ、つくった拡張機能を「GitHub」に公開しておくことで、それを他者に利用してもらうことができるようになるとのことです。
今回は、実際にその作業を実施してみることにしました。
拡張機能として公開したいのは、以前つくったこちらのカスタムブロックです(カスタムブロックのつくりかたは こちら)。
/**
* マイクロビットロボカー
*/
//% weight=50 color=#32c032 icon="\uf1b9" block="ロボカー"
namespace robotCar {
//% block="停止"
export function 停止() {
右モーター停止()
左モーター停止()
}
//% block="左回り"
export function 左回り() {
右モーター正回転()
左モーター正回転()
}
//% block="右回り"
export function 右回り() {
右モーター逆回転()
左モーター逆回転()
}
//% block="後進"
export function 後進() {
右モーター逆回転()
左モーター正回転()
}
//% block="前進"
export function 前進() {
右モーター正回転()
左モーター逆回転()
}
function 右モーター正回転() {
pins.analogWritePin(AnalogPin.P12, 384)
pins.analogWritePin(AnalogPin.P13, 0)
}
function 右モーター逆回転() {
pins.analogWritePin(AnalogPin.P12, 0)
pins.analogWritePin(AnalogPin.P13, 384)
}
function 右モーター停止() {
pins.analogWritePin(AnalogPin.P12, 0)
pins.analogWritePin(AnalogPin.P13, 0)
}
function 左モーター正回転() {
pins.analogWritePin(AnalogPin.P15, 384)
pins.analogWritePin(AnalogPin.P16, 0)
}
function 左モーター逆回転() {
pins.analogWritePin(AnalogPin.P15, 0)
pins.analogWritePin(AnalogPin.P16, 384)
}
function 左モーター停止() {
pins.analogWritePin(AnalogPin.P15, 0)
pins.analogWritePin(AnalogPin.P16, 0)
}
}
こちらをGitHubに公開し、他者が利用できるようにしてみたいと思います。
- あらかじめGitHubのアカウントをつくっておきます。
- MakeCodeエディタで新しいプロジェクトをつくります。プロジェクト名は「pxt-xxx」としておきます。今回公開するのはマイクロビットロボカー用のカスタムブロック群なので「pxt-robotcar」とします。

- 画面上部のバーで「JavaScript」を選択します。

- 先ほどのカスタムブロックのプログラムを貼り付け、画面下部のプログラム名入力欄の右横にある「GitHub」アイコンをクリックします。

- 「リポジトリ名」はプロジェクト名になっています。また、つくった拡張機能は他者に公開するので、「公開リポジトリ」のままにしておきます。この状態で「つづける」をクリックします。

- 「GitHub」アイコンにチェックマークがつきました。再度この「GitHub」アイコンをクリックします。

- このような画面が表示されるので「拡張機能のテスト」をクリックします。

- 「テスト pxt-robotcar」というプロジェクトができ、今回公開する拡張機能が追加されています。ここで拡張機能の動作確認を行います。

- 先ほどの画面で「ライセンス条項を追加」をクリックすると、このプロジェクトにMITライセンスを追加する画面が表示されるので、画面右の「Review and submit」をクリックします。

- 「Commit changes」を2回クリックします。


- 先ほどの画面で「リリースを作成」をクリックすると、以下のウィンドウが表示されます。今回は新規に拡張機能をつくったので「1.0.0」を選択して「リリースを作成」をクリックします。

以上で独自の拡張機能を公開することができました。
本当に使えるか、ためしてみたいと思います。
- MakeCodeエディタで新しいプロジェクトを開き、ツールボックスで「拡張機能」をクリック、検索ウィンドウに「https://github.com//pxt-robotcar」と入力し、表示された「robotcar」をクリックします。

- ツールボックスに「ロボカー」拡張機能が追加されます。

独自につくった拡張機能を、ワークショップの生徒にも利用してもらえるようになりました。
なお、私がマイクロビットの使い方を習得するのにあたっては、以下の書籍を参考にさせていただきました。
リンク
初心者向けから、比較的高度なものまで、さまざまな情報が記載されているだけでなく、子供向けの作例も多数掲載されていますので、「プログラミング教育」のための題材さがしなどにもおすすめです。
リンク