こちらの記事について、内容・翻訳・視点・長さなど、皆様のご意見をお送りください。今後の記事製作の参考にしたいと思います。
Thank you! Your feedback has been received.
There was a problem submitting your feedback, please try again later.
こちらの記事の感想をお聞かせください。
Air Qualityプロジェクトを実現するためのキーパーツである、環境センサーキット(ESDK)を紹介します!このモジュール式センサーソリューションは、Air Qualityプロジェクトが必要とする柔軟性の高いハードウェアプラットフォームを提供します。
DesignSpark 環境センサー開発キット(Environmental Development Kit, ESDK)は、カスタムセンサーソリューションのプロトタイプをできるだけ簡単に作成できるように設計された、オープンソースのハードウェアプラットフォームです。アクティブエンジニアの活動であるAir Qualityプロジェクトをサポートするために作成されましたが、他のセンシングプロジェクトにも簡単に使用することができます。さらに、タッチスクリーンやGPSなどを内蔵した小型のLinuxコンピュータを必要とする多くのIoTや幅広いアプリケーションに応用できる拡張性があります。
まず、ESDKのハードウェアを開発する際に重視していた必要要件から見ていきましょう!
必要要件
ESDKの必要な要件について:
- パワフルでありながら、低消費電力
- モジュール式で簡単に拡張可能
- 比較的安価(エキゾチックな部品が無い)
- 多数のセンサーを読み取ることができる
- 複数の出力に対応可能:
- ローカルディスプレイ
- ローカルデータロギング
- リモートデータロギング
- 固定式/携帯式(モバイル)に対応
- ハッカー/メーカーフレンドリー
開発模索の初期段階ではマイクロコントローラのプラットフォームも検討しましたが、最終的にはESDKをRaspberry Piプラットフォームで構築することに決定しました。これなら、Linuxのフルシステムでローカルストレージも豊富、プログラミング言語やフレームワークの選択肢にも事欠きませんし、その他にも多くのメリットがあります。
確かにマイクロコントローラベースのソリューションを深く組み込めば、長時間のバッテリー駆動や、ソーラー発電も可能になります。しかし、その場合プログラム方法や使用できる周辺機器に大きな制約が生じますし、より専門的な開発スキルを必要とするため、導入障壁が高くなる恐れがあります。
では上記の他の点についての要件・構成要素を紹介していきます。
ESDKシステム
ESDKは次の重要な点を持っています:
- 一貫したファームファクターを持つモジューラーシステム
- 相互接続のための単一のコネクタタイプとピンアウト
- デイジーチェーン・バストポロジーをサポートするインターフェース
上記の背景から当初のモジュールサイズは2種類に絞られました。シングルワイドユニット(1U)とダブルワイドユニット(2U)です。(*どちらも同じ長さ)
最初のセンサーモジュールは全てこの2つのサイズのいずれかを使用し、将来的には必要要件に応じて3倍幅(3U)のモジュールも用意する予定です。
相互接続には2列の2.54mmピッチのボックスヘッダーを使用することにしました。オスコネクターはピンを保護するために、プリント基板エッジからセットバックされ、メスコネクターはオーバーハングされます。すべてのセンサーモジュールはデイジーチェーン接続をサポートするためにそれぞれ1つずつ、反対側の端に取り付けられてすべてのピンがバス接続されています。
I2Cはアドレッシングをサポートし、相互接続された多くのモジュールに必要な距離を走らせることができます。さらに特筆すべき点として、I2Cインターフェースは様々なタイプのセンサーに対応しなおかつそれらを簡単に調達できます。I2Cに加え、コネクターには2本のGPIOピンもあり、PIRなどよりシンプルなセンサーに使用することができます。
次にシステムの構成要素について説明します。
構成要素
ESDKメイン
メイン基板はRaspberry Piに差し込みますが、HAT仕様で規定されているファームファクターよりも少し大きいため、正確に言うとHAT基板ではありません。ですが、これはあまり気にする必要はなくファームウェアの干渉は無く、拡大部分にID EEPROMを内蔵するなど、機能を盛り込むことができています。
このボードには小型で明るいIPSディスプレイが搭載されており、静電容量方式のタッチスクリーンが付いています。さらに、4つのハードウェアボタンがあり、クリーンシャットダウンのトリガーなど、タッチスクリーンでない方が便利なアクションを行うことができます。
電源はメイン基板のUSB-Cコネクターから供給され、基板上の回路や付属のセンサーチェーン、接続されたRaspberry Piに電力を供給するために使用されます。
メイン基板には独自の3V3レギュレータがあり、Raspberry Piの3V3レールに過負荷をかけないようにし、さらにセンサーチェーンに供給する3V3及び5V電源の両方にポリヒューズとTVSダイオードで保護されています。Raspberry Pi用のリアルタイムクロック(RTC)チップと、主電源を切ったときにこれを維持するためのコイン電池が搭載されています。
最後にモバイルユースでセンサーの測定値とともに位置を正確に報告することを可能にするGPSレシーバーがあります。
ESDK-PEA
Raspberry Piとセンサーモジュールを固定式で使用する場合は通常、ミニDINレールに取り付けられ、メイン基板は高い位置に設置される想定となっています。そのため、メイン基板とセンサーボードの間を行き来するための何かしらの仕組みが必要でした。そこで、PicoBlade-to-ESDKアダプタ(PEA)基板が登場しました。その名の通り、ケーブルとPicoBladeコネクターを介してメイン基板に接続されます。
また、PEAボードにはセンサーチェーンのスタート地点の電源状態を示すために、3V3レール用と5V用の2つのLEDが搭載されています。
ESDK-THV
センサーモジュールの第一弾はTHVボードで、温度、湿度、総揮発性有機化合物(TVOC)を測定することができます。温度は一般的に有用な測定値であるだけでなく、TVOC指標アルゴリズムの入力として必要であるため、温度+湿度センサーとTVOCセンサーを組み合わせた単一モジュールを作成することは理にかなっていました。
温度と湿度のセンサーはSensirion SHT31で、上の左側に見えるのが熱伝導の可能性を減らすためにプリント基板ラミネートがこの周囲に引き回されています。右側がTVOCセンサーでこれはSensirion SGP40です。
ESDK-CO2
CO2センサーボードはSensirion SCD41をベースにしており、これはピーク電流がそれなりに大きいためモジュールには専用の3V3レギュレータが搭載されています。
ESDK-PM2
初期のモジュール群の最後を飾るのはPM2で、これはレーザー散乱を利用して粒子状物質を測定するSensirion SPS30をベースにしており、1.0、2.5、4.0、10ミクロンを読み取れるようになっています。
ソフトウェアサポート
ESDKハードウェアのソフトウェアサポートはDesignSpark.ESDKというPythonモジュールを介して提供されます。これは一般的なPmodの一部をサポートするために作成されたDesignSpark.Pmodモジュールを緩やかにモデル化したものです。このモジュールは基本的なハードウェア機能に簡単にアクセスでき、Air Qualityデバイスのファームウェアの基礎として使用されます。これは、アルファ版の開発段階を過ぎたら記事でより詳細に説明する予定です。
拡張性
先に述べたようにESDKは簡単に拡張できるように設計されています。今後の記事では、カスタムセンサーモジュールの設計と、そのためのソフトウェアサポートの追加について見ていきたいと思います。ESDKハードウェアとDesignSpark.ESDK Pythonモジュールの両方に関する詳細な技術情報は、作成中のリファレンスドキュメント集の一部として公開される予定です。
デザインファイルはGitHubで公開しています。