Skip to main content

Seeed Studio XIAO nRF52840 Sense Edge Impulse 入門ガイド

Seeed Studio XIAO nRF52840 SenseでEdge Impulseを使用するためのクイックスタートwikiへようこそ!このガイドでは、オンボードIMUセンサーを使用して人間の動きを検出し、異なる動作を分類する方法を探求します。経験豊富な開発者でも、始めたばかりの方でも、このチュートリアルはXIAO nRF52840 SenseボードでEdge Impulseを始めるために必要な知識とスキルを提供します。それでは、早速始めましょう!

入門

このwikiでは、Seeed Studio XIAO nRF52840 Senseの加速度センサーをEdge Impulseと組み合わせて利用し、モーション認識を可能にする方法を紹介します。ここで紹介するコードは、最新バージョンのSeeed nRF52 Boardsでサポートされています。

組み込みAIアプリケーションに関しては、「Seeed nrf52 mbed-enabled Boards Library」の使用を強く推奨します。

ハードウェア

このwikiでは、以下の材料を準備する必要があります:

pir

ハードウェアセットアップ

  • ステップ1. はんだごてを使用してGrove - OLED Display 0.66"のGroveベースを取り外します

  • ステップ2. ワイヤーカッターを使用してDupontケーブルを約3cmの長さに加工し、両端で約2mmの内部ケーブルを露出させます

  • ステップ3. ファイバーを前面の小さな穴に通し、端部をLEDに配置します

  • ステップ4. 以下の図に従って、Seeed Studio XIAO nRF52840 Senseを他の要素とはんだ付けします:

pir

pir

note

溶接部を補強するためにホットメルト接着剤を使用するとより良いでしょう。

  • ステップ5. すべてのコンポーネントを組み立てます:

    1. ファイバーをシェル前面の小さな穴に通します
    2. スクリーンを固定位置に取り付けます
    3. バッテリーをSeeed Studio XIAO nRF52840とスクリーンの間に挟みます
    4. ワイヤーを慎重に処理します
    5. 導光プラスチックファイバーの端をSeeed Studio XIAO nRF52840のRGBライトに配置し、余分な部分を切り取ります
    6. ケースを組み立てます

pir

組み立て後:

pir

ソフトウェア

必要なライブラリは以下の通りです。ハードウェアが正常に機能しているかどうかを確認するために、ここのコードを使用することを強く推奨します。ライブラリのインストールに問題がある場合は、こちらを参照してください。

Edge ImpulseでSeeed Studio XIAO nRF52840 Senseをセットアップするには、以下のソフトウェアをインストールする必要があります:

  1. Node.js v12以上。
  2. Arduino CLI
  3. Edge Impulse CLIとシリアルモニター。コマンドプロンプトまたはターミナルを開いて以下を実行してインストールします:
npm install -g edge-impulse-cli 
note

CLIのインストールに問題がありますか?詳細についてはインストールとトラブルシューティングをご確認ください。

Edge Impulseへの接続

すべてのソフトウェアが準備できたら、開発ボードをEdge Impulseに接続します。

  • ステップ1. Seeed Studio XIAO nRF52840 SenseをUSB Type-Cケーブルでコンピューターに接続します。

pir

  • ステップ2. Edge Impulseで新しいプロジェクトを作成します

pir

  • ステップ3. 「Accelerometer data」を選択し、「Let's get started!」をクリックします

pir

データ取得とトレーニング

note

このステップでは、Seeed Studio XIAO nRF52840 SenseオンボードのIMUから「加速度計データ」を収集してデータセットを構築し、その後EdgeImpulseプラットフォームでモデルをトレーニングします。

  • ステップ4. 「Accelerometer Raw Data」スケッチをSeeed Studio XIAO nRF52840 Senseにアップロードします。

Seeed_Arduino_LSM6DS3ライブラリをダウンロードしてzipファイルとして保存します

pir

Arduino IDEを開き、Sketch > Include Library > Add .ZIP Library...に移動して、ダウンロードしたzipファイルを開きます。

pir

以下のコードをアップロードし、シリアルモニターを開きます

// XIAO BLE Sense LSM6DS3 Accelerometer Raw Data 

#include "LSM6DS3.h"
#include "Wire.h"

//Create a instance of class LSM6DS3
LSM6DS3 myIMU(I2C_MODE, 0x6A); //I2C device address 0x6A

#define CONVERT_G_TO_MS2 9.80665f
#define FREQUENCY_HZ 50
#define INTERVAL_MS (1000 / (FREQUENCY_HZ + 1))

static unsigned long last_interval_ms = 0;


void setup() {
Serial.begin(115200);
while (!Serial)
;

if (myIMU.begin() != 0) {
Serial.println("Device error");
} else {
Serial.println("Device OK!");
}
}


void loop() {
if (millis() > last_interval_ms + INTERVAL_MS) {
last_interval_ms = millis();
Serial.print(myIMU.readFloatAccelX() * CONVERT_G_TO_MS2, 4);
Serial.print('\t');
Serial.print(myIMU.readFloatAccelY() * CONVERT_G_TO_MS2, 4);
Serial.print('\t');
Serial.println(myIMU.readFloatAccelZ() * CONVERT_G_TO_MS2, 4);
}
}


これで、シリアルモニターに加速度計とジャイロスコープのデータが次々と表示されるのが確認できます!

IMU Raw

  • ステップ 5. terminal または cmd または powershell でコマンドを実行して開始します。
edge-impulse-data-forwarder
  • ステップ 6. CLIを使用してSeeed Studio XIAO nRF52840 SenseをEdge Impulseに接続する必要があります。まず、アカウントにログインしてプロジェクトを選択します

pir

加速度計とデバイスに名前を付けます。

pir

  • ステップ 7. XIAO nRF52840 SenseをEdge Impulseに接続します

Edge Impulseの「Data acquisition」ページに移動します。接続が成功した場合、結果は次のようになります。ページの右側に「Seeed Studio XIAO nRF52840 Sense」のデバイスが表示されていることを確認できます。

  • ステップ 8. センサーを「3 axes」として選択します。ラベルにupdownという名前を付け、Sample length (ms.)を20000に変更して、start samplingをクリックします。

pir

  • ステップ 9. Seeed Studio XIAO nRF52840 Senseを上下に振り、20秒間その動作を続けます。取得結果は次のように表示されます:

pir

  • ステップ 10. 生データの右上をクリックして「Split Sample」を選択し、データを分割します。+Add Segmentをクリックしてからグラフをクリックします。これを20回以上繰り返してセグメントを追加します。Splitをクリックすると、1秒ごとのサンプルデータが表示されます。

pir

  • ステップ 11. ステップ 8.ステップ 9. を繰り返し、異なる動作データをクリックするために異なる名前でデータにラベルを付けます。例えばleftrightclockwiseanticlockwiseなどです。提供されている例では、上下、左右、円の分類を行っています。ここで必要に応じて変更できます。

pir

note

ステップ 9. では分割時間が1秒です。これは、ステップ 8. で1秒間に少なくとも1回の上下の振りを行う必要があることを意味します。そうでなければ、結果は正確になりません。同時に、自分の動作速度に応じて分割時間を調整できます。

機械学習モデルの構築

  • ステップ 12. データセットのリバランス、Dashboardをクリックしてページを下にスクロールし、Perform train / test splitを見つけます

Perform train / test splitをクリックしてYesを選択し、確認します

pir

  • ステップ 13. Impulseの作成

Create impulseをクリック -> Add a processing blockを追加 -> Spectral Analysisを選択 -> Add a learning blockを追加 -> **Classification (Keras)**を選択 -> Save Impulse

pir

  • ステップ 14. スペクトル特徴

クリックしてSet upします

pir

Spectral featuresをクリック -> ページを下にスクロールしてSave parametersをクリック -> Generate featuresをクリック

pir

出力ページは次のようになります:

pir

  • ステップ 15. モデルのトレーニング

NN Classifierをクリック -> Start trainingをクリック -> Unoptimized (float32)を選択

pir

note

トレーニングモデルの精度は最終結果にとって非常に重要です。出力されるトレーニング結果が65%未満と低い場合は、より多くの回数でトレーニングすることを強く推奨します。

Seeed Studio XIAO nRF52840 Sense へのデプロイ

  • ステップ 16. モデルテスト

Model testing をクリック -> Classify all をクリック

pir

note

精度が低い場合は、トレーニングセットを増やしてサンプル時間を延長することで、データセットを確認できます

  • ステップ 17. Arduino ライブラリのビルド

Deployment をクリック -> Arduino Library をクリック -> Build をクリック -> .ZIP ファイルをダウンロード

pir

  • ステップ 18. .ZIP ファイルの名前は非常に重要で、デフォルトで Edge Impulse プロジェクトの名前として設定されます。ここではプロジェクト名が "XIAO-BLE-gestures_inferencing" です。ファイルを選択して ".ZIP ファイル" を Arduino ライブラリに追加します

pir

pir

  • ステップ 19. こちらからコードをダウンロードします。ヘッダーファイルの名前を自分のものに変更してアップロードします。

pir

  • ステップ 20. Seeed Studio XIAO nRF52840 Sense を動かしたり保持したりして結果を確認します:

Arduino の右上角にあるモニターをクリックします。

pir

Seeed Studio XIAO nRF52840 Sense を左右方向に動かすと:

モニターは次のような出力を表示します:

pir

そして出力表示は次のようになります:

pir

Seeed Studio XIAO nRF52840 Sense を上下方向に動かすと:

モニターは次のような出力を表示します:

pir

そして出力表示は次のようになります:

pir

Seeed Studio XIAO nRF52840 Sense をアイドル状態で保持すると:

モニターは次のような出力を表示します:

pir

そして出力表示は次のようになります:

pir

おめでとうございます!プロジェクトの最後まで到達しました。より多くの方向を試して、どれが最高の出力を実行するかを確認することをお勧めします。

リソース

技術サポート & 製品ディスカッション

私たちの製品をお選びいただき、ありがとうございます!私たちは、お客様の製品体験が可能な限りスムーズになるよう、さまざまなサポートを提供しています。異なる好みやニーズに対応するため、複数のコミュニケーションチャンネルを用意しています。

Loading Comments...