Arduinoマシン学習実戦入門(下)


Arduinoマシン学習実戦入門(下)
前文回顧:Arduino機械学習実戦入門(上)
Arduino IDEの設定
推理モデルを基板にアップロードし、次のセクションで基板からトレーニングデータをダウンロードするArduino IDEアプリケーションを設定します.Arduino IDEで特定のボードとライブラリをダウンロードしてインストールする必要があるため、Arduino Create web editorを使用するよりもいくつかのステップが必要です.
  • からhttps://arduino.cc/downloadsArduino IDE
  • をダウンロードしてインストール
  • インストールしたArduinoアプリケーションを開く
  • Arduino IDEメニューからツール>ボード>ボードマネージャを選択...
  • 「Nano BLE」を検索し、インストールボタン
  • を押す
  • インストールには数分かかる
  • 完了後、Boards Managerウィンドウ
  • を閉じます.
  • ライブラリ管理ツール>ライブラリ管理...
  • Arduino_の検索とインストールTensorFlowLiteライブラリ
  • Arduino_を検索してインストールします.LSM 9 DS 1ライブラリ:
  • 最後に、micro USBをマザーボードとコンピュータ
  • に挿入します.
  • 選択ボードツール>ボード>Arduino Nano 33 BLE
  • ポート選択ツール>ポート>COM 5(Arduino Nano 33 BLE)
  • コンピュータの実際のポート名が異なる場合があります.
    ヘルプが必要な場合は、ArduinoのWebサイトにより詳細なエントリーとトラブルシューティングガイドがあります.
    センサデータをArduinoボードから転送
    まず、いくつかの訓練データを取得する必要があります.USBケーブルでArduinoボードからセンサーデータログを取得し、ノートパソコンやパソコンでボードをプログラミングすることができます.
    Arduinoボードは、.ino形式のArduinoソースコードからコンパイルされた小さなアプリケーション(略図とも呼ばれる)を実行し、Arduino IDEまたはArduino Createを使用してボード上でプログラミングします.
    事前に作成したスケッチIMUを使用します.Capture.ino、次の操作を行います.
  • モニタ回路基板の加速度計とジャイロ
  • は、検出回路基板の著しい線形加速度のサンプリングウィンドウ
  • をトリガする.
  • は119 Hzで1秒サンプリング、CSV形式データ
  • をUSBで出力する.
  • ループを戻し、次のジェスチャー
  • を監視する.
    ボードから読み込んだセンサ、サンプリングレート、トリガしきい値、およびデータをCSV、JSON、バイナリまたはその他のフォーマットに出力するかどうかを選択します.これらはArduinoで実行される概略図でカスタマイズできます.ログにデータを出力する前に、デバイス上で信号の前処理とフィルタリングを実行することもできます.この点は別のブログで議論できます.スケッチをアップロードしてサンプリングを開始するだけです.
    Arduino IDEでこのスケッチを使用して回路基板をプログラミングするには、次の手順に従います.
  • inoをダウンロードし、Arduino IDEで
  • を開きます.
  • はSketch>Uploadでコンパイルしてボードにアップロードする
  • Arduinoボードからのリアルタイムセンサデータログの可視化
    これらを完了すると、黒板のデータが表示されます.私たちはまだデータをキャプチャしていません.これは、センサデータのキャプチャがどのようにトリガーされたのか、サンプルウィンドウがどのくらい長いのかを感じさせるだけです.これは訓練サンプルの収集に役立つだろう.
    Arduino IDEで、シリアルプロッタツール>シリアルプロッタを開きます.
    マザーボードで使用できないエラーが発生した場合は、ポートを再選択します.
    ツール>ポート>ポート名(Arduino Nano 33 BLE)
    板を取って、あなたの打撃と曲げ動作を練習します.
    ウィンドウの例は1秒しか表示されず、次のアクションを待つことができます.
    センサデータ取得のリアルタイム図が表示されるはずです(以下のGIFを参照).
    ボードから出力されたCSVデータのリアルタイムグラフィックスが表示されます.
    完了したら、シリアルグラフィックスウィンドウを閉じてください.これは重要です.そうしないと、次のステップは動作しません.
    ジェスチャートレーニングデータの取得
    CSVログとして取得してTensorFlowにアップロードするには、Arduino IDE>Tools>Serial Monitorを使用してデータを表示し、コンピュータのデスクトップにエクスポートします.
  • パネル上部の白いボタンを押すパネル
  • をリセットする.
  • 片手でプレートを持ち上げる(後でプレートを持ち上げるとサンプリングがトリガーされる)
  • .
  • Arduino IDEで、シリアルポートモニタリングツール>シリアルポートモニタリング
  • を開く
  • マザーボードが使用できないエラーが発生した場合は、ポートを再選択してください:
  • ツール>ポート>ポート名(Arduino Nano 33 BLE)
  • 手で板を持って拳を出すジェスチャー(やるときは気をつけて!)
  • は、スナップ
  • をトリガするために十分な速度で外部に打撃を与える.
  • は、スナップ
  • が再びトリガーされないように、ゆっくりとニュートラル位置に戻る.
  • ジェスチャーキャプチャステップを10回以上繰り返し、より多くのデータを収集する
  • .
  • シリアルコンソールからcsvという新しいテキストファイルにデータをコピーして貼り付ける
  • コンソールウィンドウの出力をクリアし、上記のすべての手順を繰り返します.今回はcsvというファイルでflexジェスチャー
  • を使用します.
  • は、捕獲をトリガするために内部への曲げを十分に速くし、毎回
  • にゆっくりと戻る.
    2つのcsvファイルの最初の行には、フィールドaX、aY、aZ、gX、gY、gZが含まれるべきであることに注意してください.
    Linuxヒント:必要に応じて、センサログ出力をArduinoからコマンドラインの.csvファイルに直接リダイレクトできます.シリアルプロッタ/シリアルモニタウィンドウを閉じて使用:
    $ cat /dev/cu.usbmodem[nnnnn] > sensorlog.csv

    トレーニングTensorFlow
    Google Colabを使用して、前節でArduinoボードから収集したデータを使用した機械学習モデルを訓練します.ColabはJupyter notebookを提供し、WebブラウザでTensorFlowトレーニングを実行することができます.
    Colabでは、次の手順に従います.
  • Python環境設定
  • csvとflex.csvデータ
  • をアップロード
  • データの解析と準備
  • モデル
  • の構築と訓練
  • 訓練後のモデルをTensorFlow Lite
  • に変換する
  • モデルをArduinoヘッダファイルに符号化する
  • colabの最後のステップは、ダウンロードするmodel.hファイルを生成し、次のセクションのArduino IDEジェスチャー分類器プロジェクトに含めることです.
    Colabのノートパソコンを開き、ユニットの手順を実行します.
    arduino_tinyml_workshop.ipynb
    IMUデータ分類
    次に、Arduino IDEプロジェクトで使用する前の章で訓練し、Colabからダウンロードしたmodel.hファイルを使用します.
    1.Arduino IDEでimu_を開くclassifier.ino.
    2.IDEにmodel.hという新しいタブを作成します.
    3.model.hタブを開き、Colabからダウンロードしたバージョンを貼り付けます.
    4.スケッチのアップロード:スケッチ>アップロード
    5.シリアル・モニタを開く:ツール>シリアル・モニタ
    6.ジェスチャーをする
    7.各ジェスチャーの信頼度をシリアルモニタに印刷する(0=低信頼度、1=高信頼度)
    おめでとうございます.Arduinoのために最初のMLアプリケーションをトレーニングしました.
    楽しみを増やすために、emoji_button.inoの例では、LinuxおよびMacOSでemoji文字を印刷するUSBキーボードを作成する方法を示します.emoji_を試してみるbutton.inoの例とimu_classifier.inoスケッチを組み合わせて、ジェスチャー制御のemojiキーボードを作成します.
    結論
    これは人の心を奮い立たせる時で、多くのものがTiny MLの中で勉強して探求することができます.私たちはこの文章があなたにその潜在力を理解させ、自分のプロジェクトでそれを応用し始める起点になることを望んでいます.
    テキストリンク:
    https://medium.com/tensorflow/how-to-get-started-with-machine-learning-on-arduino-7daf95b4157 https://cloud.tencent.com/developer/article/1534292