Crescentスマートフォン専用ページを表示Crescentあると毎日がハッピーになるちょっと未来なデバイスやモノづくりのノウハウを発信、提案します。組込系機械学習ライブラリ今回はマイコン等に組込可能な機械学習ライブラリを調査してみました。マイコン等の組込系で使用するため、C/C++で利用可能な代表的なライブラリの特徴を調べてみました。Lite最も良く使用される組込系機械学習ライブラリです。組込系の場合、ARMのライブラリと依存関係があるため、ARM以外のPICやAVRといったCPUではそのままでは利用できません。RISCV等をターゲットにしたARM以外に実装した例もありますが、ライブラリが非常に大きく、ポーティングに難ありなようです。AISTM32マイコンに実装する場合にCubeMXと統合されたUIで利用できる機械学習ライブラリです。KerasやTensorFlow等の学習結果を簡単に組み込むことが可能です。学習結果の圧縮やテスト等が容易にできるため、STM32マイコンであれば非常に便利です。STM32マイコン以外では使用できなく、昨今の半導体不足の影響をモロに受けているため、当面は安定した入手が難しい可能性があります。・emlearnscikit-learnもしくはKerasの学習結果をC/C++に変換することができます。Pythonで学習結果を読み込ませると自動的にC言語でヘッダーファイルが生成され、そのままマイコンのプロジェクトソースに組み込むことが可能です。1つのヘッダーファイルをプロジェクトソースに組み込むだけて利用できるため、他のライブラリのように複数のソースコードをプロジェクトに追加する必要もなく、非常に簡単に組み込むことが可能です。ライブラリ自体非常に軽量なため、小規模なモデルであれば8ビットマイコン等にも組込可能です。利用可能なモデルに制約があります。・ELLマイクロソフトが提供する組込向けの機械学習ライブラリです。C++で実装されています。piといったSBC等をターゲットにしているようです。ここ数年の開発ペースは落ちているようです。Lite、emlearnを使ってみました。Liteはネット上に情報が多く、利用しやすいと思いました。利用可能な機械学習モデルに制約があるものの、どのようなマイコンにも簡単に組み込むことができ、C言語で移植性が高いという面ではemlearnがお勧めでです。個人的にはSTM32、RP2040、PIC32マイコン等の様々な環境で利用することを想定し、今後はemlearnをより使ってみたいと思いました。BGX13シリーズとして2018年から提供されていました。先日、2022年8月に生産完了予定(生産終了は2023年3月予定)が発表されました。BGX13シリーズは発売から4年程度経過しており、生産完了もやむを得ずという状況ですが、BGX13シリーズの上位として発売されたBGX220シリーズは2021年に発表されてから1年ほどでBGX13シリーズと一緒に生産終了となりました。WiFiモジュールでも生産完了になっており、方針変更で無線系のXpressシリーズから撤退となったようです。上位版のBGX220シリーズも生産完了となり、後継機種も販売されないことから既存のユーザに対する影響を考慮し、BGXシリーズについてはLaird社からLyraシリーズとしてBGXシリーズと同じハードウェアとXpressファームウェアが提供されることが分かりました。今回はBGXシリーズとLyraシリーズの違いについて調査した結果(アンテナ内蔵Pシリーズを対象)を紹介したいと思います。Guideとして公開されています。詳細はそちらを参考にしてください。■ハードウェアハードウェアとしてフットプリントは同じため、そのまま同じフットプリントとして利用できます。ピンアサインはBGXシリーズとLyraシリーズで互換性がありません。LyraシリーズのピンアサインはBGX220に合わせたようで、BOOTピンが異なります。BGX13とはBOOTピンの他、電源やUARTのピンも異なります。電源電圧については1.8V~3.3Vとなっており、最低2.4VのBGX13よりもより低電圧で動作できる仕様となっています。■ソフトウェアソフトウェアについては互換性有ということのようです。BGXシリーズでは出荷時から既にXpressファームウェアが書き込まれた状態でしたが、Lyraシリーズは出荷時にXpressファームウェアは書き込まれておらず、ユーザ側で公開されているXpressファームウェアを書き込む必要があります。ファームウェアはBOOTピンをGNDにした状態で電源投入させることでUARTから書き込むことが可能です。Github上でWindowsのコマンドラインからシリアルUARTを介してファームを書き込むための書き込みツールuart_dfu.exeが公開されています。uart_dfu.exeはUART-DFU_XXX-XXXXX.zipとして圧縮ファイルとして提供されています。コマンドライン上から例えば下記のようにコマンドを実行するとファーム書き込みが可能です。RXの他にCTS、RTSの配線も必要な点です。RXだけのUSBシリアル変換アダプタでは動作しませんでした。RXの他にCTS、RTS端子も備えた別のUSBシリアル変換アダプタを使用するとすんなり書き込むことができました。XpressシリーズはUARTシリアルで設定変更できるため、プロトコル実装なしでマイコン側のファーム書き換えのみで様々な機能を実現できるというのは非常に魅力的です。BGXシリーズは生産完了になったものの、Laird社からLyraシリーズとして今後もある程度入手できるようで安心しました。Writer(09/14)シーリングカバー(08/17)TkEasyGUIへの移行(07/20)pico-sdkディレクトリ変更時のポイントCrescentあると毎日がハッピーになるちょっと未来なデバイスやモノづくりのノウハウを発信、提案します。モーションコントロール、ロボット製作、ロボット制御、組込機器等の研究、開発を専門として行っております。販売プロダクト一覧はこちらで紹介しています。下記でもご紹介しておりますProjectionBall公式WebFacebookPageGitHubProjectionBallの質問や購入相談は下記にお願いいたします。2.0Seesaaブログ。