少し時間が空いてしまいましたが、Teachable Machineの結果を使ってmicro:bitを操作させるための手順を残していきます。
Teachable Machineは、機械学習を簡単に行うことができるツールです。
参考にさせて頂いたのは下記の記事です。
switch education
サヌキテックネット
まず大前提として、micro:bitのプログラムを作るMakeCodeは直接Teachable Machineの結果を読み込むことはできないので、Scratchを通してmicro:bitを操作することになります。
また、通常のScratchではなくTeachable Machineの結果を読み込むために特別なScratchを使用します。
大まかな流れとしては、下記のような感じになります。
- Teachable Machineで学習させる
- ScratchにTeachable Machineの学習結果を読み込ませる
- Scratch Link を起動 (要インストール)
- Scratchにmicro:bitを接続する
1.Teachable Machineで学習させる
Teachable Machineの使い方は、チュートリアルを見れば誰でも使えるくらいには簡単に出来ています。
一応、手順を下記に残しておきます。
新しいプロジェクトの「画像プロジェクト」をクリックします
まずは「Class1」の「ウェブカメラ」を起動します。
「長押しして記録」ボタンを押している間、記録させたい画像を映します。
枚数も大事ですが、角度や距離などを変えながら撮影することで精度が向上すると思います。
かなり速い速度で連射撮影されますので、時間にして1~2秒程度でしょうか。
今回は手を開いた状態の画像を撮影しました。
「Class2」も同様にして撮影します。
Class2は手を握った状態の画像を取得しました。
ちなみに、Class1やClass2といったクラスの名前は変更可能ですので、分かりやすい名称に変更しても良いですね。
また、3つ以上の画像を判別させたい場合は「クラスを追加」を押すと増やせます。
2種類の画像を撮影したら、「モデルをトレーニングする」をクリックします。
このようなポップアップが出てくるので、そのまま待ちます。
画像の枚数にもよりますが、今回の場合は10~20秒くらいでした。
トレーニングが終了すると、プレビュー画面にカメラの映像が映ります。
こちらで、トレーニングの結果を確認することができます。
この結果でよければ、カメラをOFFにして「モデルをエクスポートする」をクリックします。
ここでカメラがONになっていると、Scratchのカメラが起動しないので注意。
「モデルをアップロード」をクリック
「コピー」を押すと、リンク先がコピーされます。
このURLを、Scratchに読み込ませます。
2.ScratchにTeachable Machineの学習結果を読み込ませる
通常のScratchではなく、上記リンクのScratchを開きます。
こちらのScratchから、拡張機能の「TM2Scratch」を読み込ませます。
拡張機能から「TM2Scratch」を読み込ませます。
「画像分析モデルURL」のブロックに、先ほどコピーしたURLを貼り付けます。
そして、一度上記のようにブロックを接続し、動作させます。
こうすることで、先ほどの学習結果を読み込みます。
この動作は数秒かかります。
読み込みが成功すると、画像ラベルの選択肢に先ほど学習させたものが反映されます。
今回の場合は「Class1」と「Class2」が正しく反映されていることが確認できました。
もし名前を変えていれば、その名前が表示されます。
「画像ラベル」のブロックにチェックを入れておくと、動作確認しやすいのでオススメです。
3.Scratch Link のインストール
Scratch Linkは上記リンクからインストールが可能です。
まずはScratch Linkのファイルをダウンロードします。
ダウンロードしたら、インストーラーに従ってインストールします。
インストールが完了したら、Scratch Linkを起動させます。
Scratch Linkをインストールしたら、次はmicro:bitの設定を行います。
こちらもウェブサイトの指示通り、HEXファイルをダウンロードし、micro:bitに保存します。
4.micro:bitを接続する
Scratch Linkが起動して、micro:bitに電源が入っている状態で、Scratch拡張機能の「micro:bit」を読み込ませます。
拡張機能を読み込ませる際、上記のような画面が出ます。
接続先のmicro:bitが上手く見つかれば、「接続する」をクリックします。
接続先が見つからない場合は、Scratch Linkの再起動と、micro:bitへのHEXファイルの保存を再度実施してみてください。
上手く接続出来れば上記のような画面になるので、「エディターへ行く」をクリック
「画像ラベルを受け取ったとき」と「LEDを表示する」のブロックを使って、このようなプログラムを作ります。
動作確認の結果はこちら。
狙い通りに反応していることが確認できました!
動作としてはML2Scratchと似ていますが、Teachable Machineのほうが応用範囲が広いです。
画像以外にも音声の学習もできますし、ポーズの学習もできます。
機会があれば、そちらの実験もやってみようと思います。