ひとしれずひっそり

主にソフトに関することをメモしていきます。過程をそのまま書いていたりするので間違いが含まれます。鵜呑みしない様に。

M5Stamp TimerPower

暫く前にM5Stamp TimerPowerを買っていたが放置していたのを試してみた。

公式ドキュメントを見るタイミングでメンテナンスになっていたのか404でどうしょう?ってなったけど次の日には復旧していた。

docs.m5stack.com

サンプルコードはこちらにある。

github.com

M5Atomでの例なのでM5Atom Liteと接続する。
配線はこの様にする。

TimerPower M5Atom Lite 備考
SCL G21(SCL) 4.7KΩプルアップ
SDA G25(SDA) 4.7KΩプルアップ
5V OUT 5V
GND GND
HOLD G19
3V3EN G23
BAT IN リチウムバッテリープラス側
GND リチウムバッテリーのマイナス側

BAT INは3.7Vを想定している様でとりあえずエネループ3本を使用した。

TimerPowerがGROVEコネクタ対応だったのでGROVEコネクタで試したがWireはG21, G25の組み合わせになっていてはまった。
おまけにプルアップしてなくて通信がうまくいってなかった。

動作

動作は次の様になっている。

  • TimerPowerのボタンを押す。
    • これでバッテリーからDC-DCコンバータで5Vが供給されM5Atom Liteが動作する。
    • M5AtomのIO出力がされるまで押さないと電源が切れてしまう。
    • M5AtomがRTCとI2C通信できるとLEDが緑色になる。
    • 通信が失敗するとLEDが紫に色になる。
  • M5Atomのボタンを押す
    • LEDが青色になる。
    • 3V3ENをLOWにするので3V3 OUTの出力が停止し0Vになる。
  • M5Atomのボタンを押す
    • LEDが白色になる。
    • 3V3ENをHIGHにするので3V3 OUTの出力がでて3Vになる。
  • M5Atomのボタンを押す
    • RTCに2秒後にWAKE UPする様にセットしHOLDをOFFにし5V OUTが停止しM5Atomの電源が切れる。
  • 2秒後
    • RTCからTimerPowerがWAKE UPされ再びM5Atomの電源が入る。
  • M5Atomのボタンを長押し
    • LEDが赤色になる。
    • ボタンを離すと電源が切れる。次の起動はTimerPowerのボタンで投入する必要がある。

TimerPowerの出力が切れるので今までM5Atomをdeep sleepさせてもぶら下がっているセンサーやデバイスのせいで待機電流が下がらないのを解決できそう。

TimerPowerのボタンを押して最初の電源を投入したが、WAKE入力があるのでそこから引き出してスイッチと接続して電源投入スイッチとして使うのがよさそう。

5VINから供給するとバッテリーを充電してくれる。多分。

                        rtc.WakeAfterSeconds(2);

の秒数を変えるとインターバルを変更できる。