Ambientとは
本当にすばらしいサービス。
Ambient – IoTデーター可視化サービス
データをテキストでダウンロードできるということで、今回使用させていただくことを決めた。
データーのダウンロード機能をリリースしました – Ambient
PowerCとは
M5StickCと接続できるバッテリー充電モジュール。
16340バッテリー(3.7V/700mAh)を2個搭載できる。
USB Type-A端子から、外部へ電源供給(5V/1.5A)ができる。
Ambientを使ってバッテリーの電圧を記録する
今回はAmbientの使い方の勉強を兼ねて、PowerCを使ってバッテリーの情報を記録する。
PowerCは電源管理IC IP5209 が付いており、I2C通信によってバッテリーの情報を確認できる。
IP5209から取得できる情報
PowerCのサンプルスケッチをみると、電圧値と電流(電気量)を取得できるらしい。
スイッチサイエンスの紹介ページには
M5StickCと接続すると、I2C(アドレス0x75)を通じて、電圧、電流、その他の情報を確認できます。
とあり、その他も取得できるとあるので、他にどんな情報を取得できるかIP5209の以下のデータシートを読んでみた。
IP5209-Injoinic.pdf
このデータシートには
The built-in 14bit ADC in IP5209 measures battery voltage and current accurately. ADC data are available on I2C interface. IP5209 has integrated a fuel gauge algorithm, acquiring battery’s state of charge precisely.
とあり、バッテリーの電圧と電流が測定できるとしか書かれていない。
私が見つけたこのデータシートにはレジスタの情報が(私が読んだ範囲では)見つからなかった。
もうちょっと探せば他の形式のデータシートがあるかもしれない。
少し調べてみると、M5Stackで使われている電源IC IP5306 はカスタム品で、出回っているデータシートにはレジスタの情報がないらしい。
以下のようなTweetを見つけたので引用させていただく。
IP5209もこのパターンなのかもしれない。IP5306は本来I2C未対応ですが、M5Stackで使用しているのはカスタム品だそうです。
— しお (@o_sio) February 26, 2019
今回はとりあえずサンプルコードに従って、電圧と電流を記録する。
測定環境
充電時は以下のように接続し、
放電時は以下のように接続した。
記録結果
1分ごとに電圧と電流の値を記録したところ、結果は以下のようになった。
グラフの横軸は記録時刻(hh:mm)。
Ambientでもデータを公開している。
PowerCの電圧推移 -Ambient
満充電状態から、今回は8時間程バッテリーがもった。
充電時の電流値が少し気になる挙動をしているが、PowerCの回路構成をあまり把握していないし、ハードの知識がないので、理由はよく分からない。
今回使用したプログラムは以下に置いてある。
(補足)M5StickCの内蔵バッテリー周りについて
M5StickC側の電源回りも少し調べた。
M5StickCは電源管理ICとしてAXP192というものがついており、このICが色々よしなになってくれているらしい。
Arduino Libraryに実装されているM5.Axp
クラスを通してAXP192からの情報が色々取れるらしいので、内蔵バッテリの情報がほしい場面が今後あったら有用かもしれない。
以下を参考にさせていただいた。
- M5Stack Docs-The reference docs for M5Stack products.
- M5StickCのAXP192で外部電源を使う – Lang-ship
- M5StickCのバッテリー管理AXP192を図にまとめる – Lang-ship
アフィリエイト