「ものづくり:make」を楽しみながら学ぶ人へ向けた独習サポートサイト。

micro:bit Lab.【マイクロビット】

micro:bit Lab.では、micro:bit【マイクロビット】に関する情報を紹介しています。

機械学習モデルを使ったプログラミング
17-2

micro:bit CreateAI(プログラミング編)

2024-11-252024-11-25

AI(Artificial Intelligence/人工知能)の一つである「機械学習モデル」を、micro:bitで手軽に扱えるようにした「micro:bit CreateAI」の使い方を紹介します。本記事では、機械学習モデルを作成したあとのプログラミングについて解説します。機械学習モデルの作成については「17-1.micro:bit CreateAI(加速度センサー編)」で解説しています。

1.サンプルコードの実行

機械学習モデルの作成

本記事は、機械学習モデルの作成が完了していることが前提となります。まだの場合は「17-1.micro:bit CreateAI(加速度センサー編)」をご覧ください。

micro:bit CreateAIツールから「Edit in MakeCode」をクリックして遷移してきた直後はサンプルコードが表示されています。このサンプルコードは、それぞれの動作を認識したときにアイコンを表示するものです。まずは、このサンプルコードをmicro:bitへダウンロードして実行してみましょう。

17-2-1-1.サンプルコード
17-2-1-1.サンプルコード

「Download」をクリックします。

17-2-1-2.ダウンロードの開始
17-2-1-2.ダウンロードの開始

ダウンロードするプログラムに機械学習モデルが含まれ、micro:bitがmicro:bit CreateAIツールと接続されていなくても単体で動作する旨のメッセージが表示されます。「Next」をクリックします。

17-2-1-3.メッセージの確認
17-2-1-3.メッセージの確認

どのmicro:bitにダウンロードするか選択画面が表示されます。現在接続されているmicro:bitを選択する場合は左側のアイコン、別のmicro:bitの場合は右側のアイコンをクリックします。本記事では、同じmicro:bitを選択します。

同じmicro:bitを選択した場合

同じmicro:bitを選択した場合、データー収集用のプログラムが上書きされるため、micro:bitとmicro:bit CreateAIツールの接続が切れます。データーの再取得などを行う場合は再接続が必要です。

17-2-1-4.ダウンロード先の選択
17-2-1-4.ダウンロード先の選択

ダウンロードが完了するまで、しばらく待ちます。

17-2-1-5.ダウンロード中
17-2-1-5.ダウンロード中

ダウンロードが完了したら、micro:bitを動かしてアイコンの表示が変わることを確認しましょう。

17-2-1-6.動作の確認
17-2-1-6.動作の確認

サンプルコードに「不一致(unknown)」を追加してみましょう。ツールボックスの「Machine Learning」をクリックして「on ML start」ブロックを選択します。

17-2-1-7.「on ML start」ブロックの追加
17-2-1-7.「on ML start」ブロックの追加

「show icon」ブロックを追加して、アイコンを選びます。

17-2-1-8.「show icon」ブロックの追加
17-2-1-8.「show icon」ブロックの追加

ダウンロードして動きを確認しましょう。「不一致(unknown)」は、すべての動作において確信度が「Recognition point」未満の状態を示しています。

17-2-1-9.不一致(unknown)
17-2-1-9.不一致(unknown)

2.シミュレーター

シミュレーターには「ML event」というプルダウンメニューが追加されています。

17-2-2-1.ML event
17-2-2-1.ML event

プルダウンから動作を選ぶと...

17-2-2-2.動作の選択
17-2-2-2.動作の選択

その動きを確認できます。

17-2-2-3.動作の確認
17-2-2-3.動作の確認

3.「Machine Learning」カテゴリーのブロックの使い方

micro:bit CreateAIツールから遷移してきたMakeCodeでは、あらかじめ「Machine Learning」と「Machine Learning Runtime」という二つの拡張機能が組み込まれ、ツールボックスには「Machine Learning」というカテゴリーが表示されています。さきほどのサンプルコードはこのカテゴリーのブロックを使っていました。

17-2-3-1.「Machine Learning」カテゴリーのブロック
17-2-3-1.「Machine Learning」カテゴリーのブロック

では、「Machine Learning」カテゴリー内のブロックを見てみましょう。

on ML start【認識したとき】

機械学習モデルが、動作を認識したときに実行されます。認識の対象はプルダウンリストからデーターの収集時に付けた名前を選択します。

17-2-3-2.「on ML start【認識したとき】」ブロック
17-2-3-2.「on ML start【認識したとき】」ブロック

サンプルコードです。それぞれの動作を認識したとき、中のブロックが実行されます。

17-2-3-3.「on ML start【認識したとき】」ブロックのサンプルコード
17-2-3-3.「on ML start【認識したとき】」ブロックのサンプルコード

on ML stop【認識を終えたとき】

機械学習モデルが、動作の認識を終えたときに実行されます。認識の対象はプルダウンリストからデーターの収集時に付けた名前を選択します。

17-2-3-4.「on ML stop【認識を終えたとき】」ブロック
17-2-3-4.「on ML stop【認識を終えたとき】」ブロック

サンプルコードです。それぞれの動作を認識した後、その認識を終えたとき(他の動作を認識、またはunknownとなったとき)、中のブロックが実行されます。

17-2-3-5.「on ML stop【認識を終えたとき】」ブロックのサンプルコード
17-2-3-5.「on ML stop【認識を終えたとき】」ブロックのサンプルコード

on ML stop【認識を終えたとき(継続時間あり)】

機械学習モデルが、動作の認識を終えたときに実行されます。認識の対象はプルダウンリストからデーターの収集時に付けた名前を選択します。このブロックには、認識していた時間(継続時間)が「duration」という変数に入ります。

17-2-3-6.「on ML stop【認識を終えたとき(継続時間あり)】」ブロック
17-2-3-6.「on ML stop【認識を終えたとき(継続時間あり)】」ブロック

サンプルコードです。小刻みに揺れている状態が終わったとき、小刻みに揺れていた時間をミリ秒で表示します。

17-2-3-7.「on ML stop【認識を終えたとき(継続時間あり)】」ブロックのサンプルコード
17-2-3-7.「on ML stop【認識を終えたとき(継続時間あり)】」ブロックのサンプルコード

is ML detected【認識中なら】

機械学習モデルが、動作を認識しているかどうかを真偽値で返します。認識の対象はプルダウンリストからデーターの収集時に付けた名前を選択します。

17-2-3-8.「is ML detected【認識中なら】」ブロック
17-2-3-8.「is ML detected【認識中なら】」ブロック

サンプルコードです。それぞれの動作を認識したとき、アイコンを表示します。いずれにも一致しない「unknown」の場合は×を表示します。

17-2-3-9.「is ML detected【認識中なら】」ブロックのサンプルコード
17-2-3-9.「is ML detected【認識中なら】」ブロックのサンプルコード

certainty (%) ML【確信度】

確信度を返します。認識の対象はプルダウンリストからデーターの収集時に付けた名前を選択します。

17-2-3-10.「certainty (%) ML【確信度】」ブロック
17-2-3-10.「certainty (%) ML【確信度】」ブロック
このブロックの注意点

このブロック単体では、機械学習モデルの推論が実行されないため、確信度が取得できません。下のサンプルコードのように他のブロックと組み合わせて使います。

サンプルコードです。静止している状態の確信度を表示します。このブロック単体では、機械学習モデルの推論が実行されないため「on ML start【認識したとき】」ブロックを使ってトリガーしています。

17-2-3-11.「certainty (%) ML【確信度】」ブロックのサンプルコード
17-2-3-11.「certainty (%) ML【確信度】」ブロックのサンプルコード

4.データーの再収集

どうしてもうまく動かないなどデーターの再収集が必要な場合は、MakeCodeの画面左上にある「<」をクリックします。

17-2-4-1.データーの再収集
17-2-4-1.データーの再収集

micro:bit CreateAIツールのテスト(推論)画面に戻るので「Edit data samples」をクリックします。

17-2-4-2.micro:bit CreateAIツールのテスト(推論)画面
17-2-4-2.micro:bit CreateAIツールのテスト(推論)画面

データー収集画面に戻るので再収集を行います、micro:bitとmicro:bit CreateAIツールの接続が切れている場合は「Connect」をクリックして、画面の指示に従います。

17-2-4-3.micro:bit CreateAIツールのデーター収集画面
17-2-4-3.micro:bit CreateAIツールのデーター収集画面

5.サンプルコードの初期化

どうしても最初のサンプルコードに戻したくなった場合は、初期化することができます。ただし、作成中のプログラムは消去されます。MakeCodeの画面左上にある「<」をクリックします。

17-2-4-1.サンプルコードの初期化
17-2-4-1.サンプルコードの初期化

micro:bit CreateAIツールのテスト(推論)画面に戻るので、画面右下の「︙」をクリックして「Reset to default blocks」を選択します。

17-2-4-2.Reset  to default blocks
17-2-4-2.Reset to default blocks
この記事を読んだ人は、こんな記事にも興味があります。
スポンサーリンク
TOPへ移動
目次へ移動