2022年10月29日

Webシリアルプロッター

以前にWebシリアルAPIとUSBシリアルI2C変換基板を用いてI2Cデバイスをブラウザから制御、取得したデータからChart.jsで可視化するデモツールを紹介しました。今回はUSBシリアルI2C変換基板に限らず、ArduinoやRP2040等のUSBシリアル通信のデータをグラフとして可視化するシリアルプロットツールを実装してみました。ツールはこちらから利用できます。

例えばセンサデータ等を下記のようなフォーマットでUSBシリアル通信から出力させると最大8つのカンマ区切りのセンサデータをグラフに可視化できます。

XX.XX,YY.YY,ZZ.ZZ,\r\n
XX.XX,YY.YY,ZZ.ZZ,\r\n
XX.XX,YY.YY,ZZ.ZZ,\r\n
XX.XX,YY.YY,ZZ.ZZ,\r\n
※X,Y,Zは各センサ数値文字列


実際に2つの適当なデータを可視化してみました。

SerialPlotter.jpg

ボーレート設定の他、csvとしてダウンロードする機能、グラフをクリアする機能を実装してみました。ArduinoのIDEのシリアルプロッタ機能のように簡単にシリアル通信のデータを可視化することが可能です。WebシリアルAPIを使用しているため、ソフトのインストールなしでWebブラウザ(Edge、Chromeのみ対応)から本ツールにアクセスするだけで簡単に利用できます。また、ブラウザ単体とChart.jsライブラリで実現できるため、一度、ページを読み込んで表示すればオフライン環境でも動作可能です。なお、WebシリアルAPIの部分等のjsコードやcss含めてすべてhtml内に記述しているため、本ツールにアクセスして右クリックで「ページのソース表示」でソースを確認することができます。今後は他にも応用的な機能を実装したいと思います。
posted by Crescent at 00:00| Comment(0) | TrackBack(0) | 電子工作 | このブログの読者になる | 更新情報をチェックする

2022年10月15日

USBカメラ変換基板 白黒ビットマップ保存モード

今回はUSBカメラ変換基板に追加した新機能について紹介したいと思います。

ちょっとした機械学習等で画像データを利用する場合、データ処理を軽くするため、2値化した画像を用いることが多くあります。実際に160x120のビットマップ画像を保存すると16ビットカラーで1ファイル37.5kB程度となります。一方、同じ160x120のビットマップ画像でも白黒ビットマップの場合、1ファイル2.4kBと1/10以下にファイル容量自体も減らすことができます。

そのような用途にも容易に導入できるようにUSBカメラ変換基板側で白黒ビットマップの保存ができる機能を追加してみました。機能としてはUSBカメラで取得したカラービットマップ画像を大津の2値化を用いて閾値を求め、白黒ビットマップに変換し、SDカード等に保存できる機能です。


実際に白黒ビットマップ保存機能を実装して取得したイメージを紹介したいと思います。

221004_191332_0.bmp

160x120のカラービットマップ画像


221004_191342_0.bmp

白黒モード有効時に160x120の白黒ビットマップ画像

光の反射や陰の部分等、2値化によって少しカラー画像と比べて変化している部分がありますが、大津の2値化として上手く働いており、概ね意図した白黒変換ができていることが確認できました。今回追加した白黒ビットマップ保存の新機能はgithub上のv1.1.0以降のファームウェアにSDカードを用いてアップデートすることで利用可能です。なお、白黒ビットマップ保存はデフォルトでは無効化されています。monコマンドで白黒ビットマップ保存を有効化した場合でも電源再投入やリセット等で設定が無効化されるため、利用する場合は再度、有効化する必要があります。今後も機会を見つけてUSBカメラ変換基板の応用例や機能等紹介したいと思います。
posted by Crescent at 00:00| Comment(0) | TrackBack(0) | 電子工作 | このブログの読者になる | 更新情報をチェックする