Skip to content

アクティビティ

簡単なAI運動タイマー

中級 | MakeCode | 加速度センサー | AIを理解すること, AI設計における人の役割, データを集める, 機械学習

micro:bit CreateAI を使い始めるのに最適なプロジェクトです。 アクティブまたは非アクティブの時間を知らせるスマート運動タイマーを作成します。

ステップバイステップのプロジェクトガイド

ステップ 1: 理解する

動作の仕組み

このプロジェクトでは、運動しているときと運動していないときを認識する機械学習 (ML) モデルを訓練します。

このモデルを MakeCode プログラムと組み合わせて運動タイマーを作成し、このプロジェクトを BBC micro:bit に組み込みます。 micro:bit を装着するだけで、運動している時間と運動していない時間を計測できます。

ボタン A を押すと運動していた秒数が表示され、ボタン B を押すと運動していなかった時間が表示されます。

機械学習とは何ですか?

機械学習 (ML) は、コンピュータがデータに基づいて学習し、意思決定できる人工知能 (AI)の一種です。

ML モデルは、たとえば micro:bit をさまざまな方法で動かしたときに、さまざまな「アクション」を認識するなど、決定を下すのに役立つよう人がトレーニングします。

必要なこと

AIシステムは、人間が設計し、組み立て、テストしてから使う必要があります。 データを集めてMLモデルをトレーニングし、テストして改善しましょう。そして、プログラムと組み合わせてAIを利用したスマートデバイスを作りましょう。 これを行うには、micro:bit と micro:bit CreateAI のWebサイトを使います。

ステップ2: プログラムする

必要なもの

データサンプルの収集

micro:bit CreateAI でプロジェクトを開くと、「運動している」(exercising)と「運動していない」(not exercising)のアクションのデータ サンプルがいくつか提供されていることがわかります。

micro:bitの動きセンサー (加速度センサー)を使って独自の動きのサンプルを追加します

micro:bit CreateAI で、「接続」(Connect)ボタンをクリックして、データ収集用micro:bitを接続して指示にしたがいます。

データ収集用micro:bitを手首に取り付けます。 運動によく含まれる動作をいくつか決めます。たとえば、その場で走る、スタージャンプする、歩くなどです。 最初の動作「運動している」(exercising)をクリックし、「記録」(Record)をクリックして、独自のデータ サンプルを記録します。 間違えた場合は、不要なサンプルを削除できます。 micro:bit のボタン B を押して記録を開始することもできます。

「運動していない」アクションについても同様に実行し、異なる方向からサンプルを収集するようにしてください。

データ サンプルを調べます。すべての「運動している」サンプルでは​​動いているように見えますか? すべての「運動していない」サンプルでは​​静止しているように見えますか?

モデルのトレーニングとテスト

「モデルのトレーニング」(Train model)ボタンをクリックしてモデルをトレーニングし、テストします。 動き回ってみて、「運動している」が推定アクションとして表示されるかどうかを確認します。 動かずにいて、「運動していない」が推定されるかどうかを確認します。

モデルの改善

ほとんどのモデルは、より多くのデータを学習させることで精度を上げることができます。 アクションを認識するためにモデルの改善が必要な場合には、「← データ サンプルを編集」(← Edit data samples)をクリックします。

(同じアクションの他のサンプルとはまったく異なるため)適合しないと思われるデータサンプル を削除したり、自分自身や他の人からのサンプルを追加したりできます。

モデルを再度トレーニングし、再度テストします。

モデルとプログラムをmicro:bitに入れる

micro:bit CreateAI で、「MakeCode で編集」(Edit in MakeCode)をクリックすると、MakeCode エディターでプロジェクトのプログラムが表示されます。

他の micro:bit MakeCode プロジェクトと同じようにプログラムを変更したり、そのまま試したりできます。 USB データ ケーブルで micro:bit を接続し、MakeCode 画面の 「ダウンロード」ボタンをクリックして、指示に従って AI モデルとプログラムを micro:bit に転送します。 micro:bit を取り外し、電池ボックスを取り付けて装着し、テストします。

  • ボタン A を押すと、運動していた秒数が表示されます。
  • ボタン B を押すと、運動していなかった秒数が表示されます。
  • micro:bit の背面にあるリセット ボタンを押すか、バッテリー パックを外して再接続して、タイマーをリセットします。

プログラムの仕組み

このコードでは、運動していた時間と運動していなかった時間を追跡するために 2 つの変数を使います。 プログラムが最初に実行されると、これらのタイマー変数は 0 に設定されます。

「on ML... start」ブロックは、ML モデルが運動している/していないを開始したと判定したときにトリガーされます。 推定されたアクションに応じて、micro:bit の LED ディスプレイに異なるアイコンが表示されます。

「on ML... stop」ブロックは、ML モデルがアクションが終了したと判断するとトリガーされます。 各ブロック内のプログラムは画面をクリアし、終了したアクションの継続時間を各アクションの合計時間を格納する変数に追加します。

「ボタン...が押されたとき」ブロックには、運動していた時間と運動していなかった時間の合計を示す変数を表示するコードが含まれています。 タイマーはミリ秒 (1000 分の 1 秒) 単位でカウントされるため、表示される数値は 1000 で割られ、秒単位の合計継続時間が表示されます。

評価

運動や休息の時間を測定する精度はどの程度ですか? 誰が使っても同じように機能しますか?

次の 3 つの簡単な手順で、タイマープログラムがモデルで正常に動作しているかどうかをテストします。

  1. リセットボタンを押します。
  2. 30秒間運動します。
  3. ボタン A を押します。ディスプレイに 30 に近い数字がスクロール表示されます。
  • モデルを改善する場合は、MakeCode エディターの左上にある<矢印をクリックして、データ サンプルを追加し、モデルを再トレーニングします。

ML (機械学習): を使わない歩数計プロジェクト とシンプルなAI運動タイマーを比較します。

  • ML を使うと、どのようにしてより有用なプロジェクトを作れますか?
  • 有用なプロジェクトを作るには、常に AI / ML が必要ですか?

ステップ 3: 拡張する

  • モデルがアクションを識別できない場合に「?」を表示するプログラムブロックを追加する方法を調べてください。
  • 運動している/していないことが検出されたときに音声フィードバックを提供するサウンドブロックを追加してください。
  • AIアクティビティタイマープロジェクトを試して、 特定の運動やアクティビティを検出して時間を計測するように micro:bit を訓練しましょう。