2022年10月1日土曜日

Data Streamer

自宅にて測定を続けていると、窓から入る色々な匂い?にも反応していることがわかりました。全く匂わないときにもセンサーが反応することがあるので、ドリフトの影響を受けているのかもしれません。ひとまず対象を絞ることにしました。

まずは、タバコ。
隣家が換気扇を回している場合にタバコ臭が室内まで届くことがあるようで、この換気扇の音を利用する目論見です。

FactoryTest から音の FFT 部分を取り出します。整理しながらコードを見ていたのですが、サンプリング周波数がよくわかりません。FFTにかけるデータ数を指定できるのですが、それらが何秒ステップで採取するのか指定するところを把握できませんでした。include したライブラリの中に書かれているのかもしれませんが、ひとまず飛ばします。

抜き出したコードに FFT 結果のシリアル転送する部分を追加。これで値が PC にて見えるようになりました。が、転送結果をファイルに書き出す方法がわかりません。もしかしてないのか?

他の方法を調べてみると、簡易な方法がありました。EXCELです。Data Streamer という com アドインがありました。これで通信結果をターミナルのように取得できます。昔はVBAでしか通信できなかったのですが、いつの間にか実装されていました。Iot 時代の常識なのでしょうか。

使用してみると、少々難あり。1度目はデバイスの接続、解除に手間取り、接続できなくなりました。次はマウスとして認識されてしまい、計測中にカーソルが暴れて制御不能になりました。後者の現象と対処法は web 上でたくさん引っかかりました。Windows あるあるのようです。マウスとして認識されていたデバイスを削除し、COMポートの番号を変えてからは安定していますが、対処療法なのでいずれ復活するかもしれません。

EXCEL につなぐことができたら、データを容易に採取できます。サンプリングは0.01秒毎でも可能でした。200行分表示させていたのですが、その中身は時間とともに更新されます。その範囲で散布図を作っておくと、イコライザーとまではいきませんが、周波数領域のグラフが時間毎に更新されます(そういえば、振幅の単位もわからない)。EXCEL は表示が遅いので、データが飛んだりグラフに空白が生じたりしていましたが、手軽にここまでできるとは驚きでした。
FFT 結果は1度の処理で128行×3列のデータを流すようにしていたのですが、このままでは EXCEL 側で欠損します。そこで表示を 200 行から 5 行に変更。表示の負荷を小さくすることで欠損なく取得できました。これ、振動を図る際に都合が良いですね。次はRTCと振動かな。ま、時間方向にFFT結果が欠損したとしても、その数を集めてプロットすれば周波数領域での特性を把握できそうです。今回はこのまま進めます。

データを集めましょうと思いましたが、そう都合よく隣家が換気扇を回してくれるタイミングに出会えるわけではありません。自宅の換気扇でまずは試しました。
結果は上々。近いので当たり前なのですが、安いセンサーでも音が届けば分離できる可能性はあるようです。ということで、コードはひとまずこれでOK。

それでは、気長にデータを集めましょう。

0 件のコメント:

コメントを投稿