2018」の8日目の記事です。皆様こんにちは、開発部の増田(仮)です。Pi上でどこにDPS310が刺さっているかをi2cdetectで確認しますと・・・77番ですね。プログラムを書いていき・・・・ました。これはヒドイ(笑)検証用ですので見事な雑コードですが、ざっと説明すると90行目から100行目でDPS310の設定をしています。今回は高精度モードで設定していますが、速度や消費電力を優先したモードもDPS310には用意されています。続けて気圧データを読みだしていますが、実データの読み出しが8行目から28行目です。この辺りは普通のセンサからの読み出しとなんら変わりはありません。DPS310なのですが、取得した気圧データと温度データを元に係数をかけて計算することで気圧情報が取得できるタイプのセンサでして、その係数を取得している箇所が、31行目から85行目です。ちなみにこの係数の取得はこのソースコードでは毎回取得していますが、データシートのP16にあるフローを見ると最初に一回取得すれば良いようです。その辺は検証用なので気にしてはいけません、製品として作る際にキッチリ作れば良いのです。QCDという言葉を勘違いして、[Q]ualityは全てに優先されると思っている偉い人がたまにいますが、[Q]ualityと[C]ostと[D]eliveryのバランスを取り、求められる最適な対応をしましょう。今回は[C]ostと[D]elivery優先です。最後に取得した気圧情報と温度情報、係数から値を計算しているのが87行目です。ちなみに、コメントアウトしている86行目がArduino用のサンプルコード(ライブラリ?)で使われていた計算式、87行目がデータシートに乗っていた計算式(データシートのP14参照)です。いい感じに取れています、ちなみにこれは静止状態での取得結果で1Pa程度はぶれる(精度)感じでしょうか、カンマの右側が取得したデータで単位はパスカルです。1hPaで8.3m位ですので、1/100で大体8cm位の精度といったところですカタログスペック通りですね。ワカンネというところもあるかとは思います。私は何に使うのだろう?と思いました。いう感じで待ちに待った計測タイムです。5cm上げ、5cm下げ、10cm上げ、10cm下げと60cmまで上げ下げを繰り返した結果のグラフです。5cmは今ひとつ見えない感じではありますが、10cmはキッチリ取れるといった感じです。次はこれを手で持って階段を降りて上がってみました。そのときの結果のグラフがこちらです。綺麗な富士山が出来上がりましたこちらですが、ズームしてみていくとこのように階段の踊り場がはっきりとわかります。ズームして行くとお分りいただけただろうか。センサは階段の1段1段までしっかりとトレースしていたのである・・・まぁ、何分手で持っての計測ですので手ブレという誤差があるわけなのですが、それでもそれなりにはっきりと階段の1段を捉えていることがわかるかと思います。2日間に亘り長々と書いてまいりましたが今回はこの辺でお別れとなります。まとめといきましょう。気圧センサというと気象情報としての気圧がまず頭に浮かぶ方も多いかと思いますが、今回の検証で確認したかったのは行動検知という観点となります。行動検知・監視と言いますと、正直キモチワルイという印象もあるかと思いますし、私自身も常日頃からこの精度で検知・監視されたらキモチワルイなぁというのが本音ではあります。この精度で行動を検知できるというのは有用な場面も多々あるかと思います。工場や建設現場で使われるヘルメットにこのようなセンサを取り付け、作業員の方が立っている、座っている、もしくは倒れてしまっているという情報を取ることで安全管理という観点での利用も可能です。広いフィールドであれば、Wi-SUN等のサブギガで発信・収集が妥当でしょうか。2018年年末現在ではそのようなソリューションはまだ出回っていないかと思いますが、弊社ではプロトタイプからの開発についても承っておりますので何卒よろしくお願いいたします。