Skip to content

活動

AIスポーツデータ記録装置

上級 | MakeCode | LED表示, データロギング, 加速度センサー | AIの理解, データの収集, データの整理, パフォーマンス計測ツール, 機械学習

micro:bit CreateAIでAIスポーツデータ記録装置を作成し、自分や他の人が走ったり、歩いたり、静止したりしている時間を記録しましょう。

やさしいプロジェクトガイド

ステップ 1: 理解する

どんな仕組み?

このプロジェクトでは、走っているとき、歩いているとき、静止しているときを認識するように、機械学習(ML)モデルを訓練します。

このモデルを、micro:bitのデータ記録機能を使用して毎秒のアクションを記録するMakeCodeプログラムと組み合わせます。

このプロジェクトは、特定の選手の活動量を解析する必要のある、サッカーやネットボールなどのスポーツに役立つ可能性があります。 また、学校が休みの期間やワークアウト中に、ランニングまたはウォーキングに費やした時間をモニタリングすることもできます。

機械学習とは何ですか?

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

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

必要なこと

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

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

必要なもの

  • micro:bit V2、USBケーブル、単4電池2本が入ったバッテリーパック
  • micro:bit CreateAIウェブサイトにアクセスでき、ChromeまたはEdgeウェブブラウザを使用しているコンピュータ(デスクトップ、ノートパソコン、Chromebookなど)
  • コンピュータにBluetoothが搭載されていない場合は、micro:bit V2が別途必要になります。
  • ストラップとホルダー、またはmicro:bitを手首に装着する別のもの(例: やわらかい手芸用の棒やゴムバンド)
  • 当社のmicro:bit CreateAI指導のヒントもご覧ください

データサンプルの収集

micro:bit CreateAIでプロジェクトを開くと、「走る」、「歩く」、「静止」アクションのデータサンプルがいくつか表示されます。

micro:bitの運動センサーまたは加速度センサーを使って、独自の運動のサンプルを追加できます。

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

左手首に、時計のようにロゴを上向きにしてデータ収集micro:bitを装着します。 最初のアクション「歩く」をクリックし、「記録」をクリックして、独自のデータサンプルを記録します。 間違えた場合は、不要なサンプルを削除できます。 micro:bit のボタン B を押して記録を開始することもできます。

10秒間連続で記録して10個のサンプルを取得したい場合は、記録ボタンの横にある三点リーダーをクリックし、当該オプションを選択します。

次に、「走る」アクションと「静止」アクションでも、独自のデータサンプルを記録します。ただし「静止」アクションでは、上向きや下向きなど、異なる姿勢でサンプルを収集するようにしてください。

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

「モデルのトレーニング」(Train model)ボタンをクリックしてモデルをトレーニングし、テストします。 歩いてみて、「歩く」アクションが推測されたかを確認し、その後走ってみて「走る」アクションが推測されたかを確認します。 じっとして、「静止」と推測されるかを確認します。micro:bitを他の人にも装着してもらい(同じ手首に同じ向きで装着することを確認してください)、同様に作動するか確認します。

モデルの改善

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

適合しないと思うデータサンプルを削除したり、自分や他の人のサンプルをさらに追加したりできます。

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

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

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

プログラムを修正してもいいですし、そのままで試すこともできます。 USBケーブルでmicro:bitを接続し、MakeCode画面の 「ダウンロード」ボタンをクリックして、指示に従ってAIモデルとコードブロックをmicro:bitに転送します。

バッテリーパックをmicro:bitに取り付けて装着すれば、テストの準備は完了です。

データを収集する

まず、ボタンAとボタンBを同時に押して、micro:bitから古いデータ記録を削除します。 micro:bitの背面にあるリセットボタンを押してタイマーをリセットします。 ボタンAを押して記録を開始し、ボタンBを押して記録を停止します。

電池を取り外したりリセットボタンを押したりしても、データはmicro:bitに残ります。

データの分析

バッテリーパックを外し、micro:bitをコンピュータに接続し直します。 micro:bitはMICROBITというUSBドライブのように表示されます。 MICROBITドライブの中のMY_DATAファイルをウェブブラウザで開いて、データの表を見てみましょう。

AIスポーツデータ記録装置からのデータ表

記録内のタイムスタンプは、micro:bitの電源を入れてから、またはリセットしてからの経過時間を表します。

「視覚的プレビュー」をクリックしてデータのグラフを表示します:

CreateAIスポーツデータ記録装置によって生成されたグラフ

また、コピーボタンをクリックし、データをスプレッドシートに貼り付けることもできます。

プログラムの仕組み

このプログラムは、「logging」という変数を使用します。 コンピュータプログラムにおける変数とは、プログラムの実行中にアクセスおよび更新できる、データを格納するためのコンテナです。 このプログラムでは、変数「logging」はmicro:bitが記録するかどうかをコントロールし、「true」または「false」に設定できます。 この2つの値に設定できる変数は、「ブーリアン」変数と呼ばれます。

プログラムの起動時に、変数「logging」は「false」に設定されています。 表示アイコンブロックは、micro:bitが記録中でないことを示すため、LEDディスプレイに「no」アイコンを表示するために使用されます。 「set columns」ブロックと「set timestamp」ブロックは、micro:bitが生成するデータ記録表のラベルを作成します。

「on button A pressed」ブロックは、loggingを「true」に設定し、LEDディスプレイに「yes」アイコンを表示するために使用されます。 「on button B pressed」ブロックは、loggingを「false」に設定し、LEDディスプレイに「no」アイコンを表示するために使用されます。 さらに、「on buttons A + B pressed」ブロックは、loggingを「false」に設定し、頭蓋骨マークを表示し、ログを削除します。

最後に、「every」ブロックは、micro:bitが記録を行っているかを、1,000ミリ秒、つまり1秒ごとにチェックします。 記録が行われている場合、「is ML detected」ブロックと「log data」ブロックを用いた「if then else」ブロックを使用し、静止時は0、歩いているときは1、走っているときは2を、データ記録表に記録します。 micro:bitがユーザーの動きを検知できない場合、表に-1を記録します。 より活発なアクションにはより大きな数値が使用されます。その結果、生成されるデータ記録グラフでは、活動レベルが明確に目に見える記録として出力されます。

評価

AIスポーツ記録装置の運動追跡精度はどうですか? 精度を向上させるにはどうすれば良いですか? どんな人がこの装置を特に役立つと感じるでしょうか? 歩数計や運動データ記録装置プロジェクトと比べるとどうですか?

ステップ 3: 拡張する

  • ネットボールやテニスなどのスポーツ向けに「投げる」などの第4のアクションを追加しましょう。

アクティビティ1(歩く)をカウントする数式を含むExcelスプレッドシートのAIスポーツデータ記録装置からのデータ

特定のアクティビティセルをカウントするための数式を含むExcelスプレッドシート

  • 各アクティビティに費やした時間を足して算出します。 これは、データをCSVファイルとして保存し、スプレッドシートで開いて、=COUNTIF(B2:B70,1)のような数式を使用すると可能になります。この数式において、B2:B70はアクティビティセルの範囲、1は「歩く」を意味するアクティビティ番号です。