ふるた技工所(てっこうしょ)

ふるた技工所(てっこうしょ)

PR

キーワードサーチ

▼キーワード検索

プロフィール

Aちゃん22

Aちゃん22

フリーページ

2016.08.12
XML
カテゴリ: ソフト開発日誌
2 日間、弟夫婦の子供とポケモンGOの狩りに付き合った。延べ 3, 4 時間は外を歩いただろうか?ポケストップは 5~10 分歩いて隣接ポイントに到達する場所だ。駅や人が多い公園まで出る。

弟がモバイルバッテリーを持ちプレーを続けた。出張のために買ったのか?と聞いたら、ポケモンGOのために買ったと。Android デバイスの充電ドライバ屋だった自分はモバイル・バッテリーの減り方はどうあるべきなのだろうと、観察して考えてみた。



まぁ、なんだ。GPS ドライバ、ジャイロドライバ、 JNI 層を弄ってチートするというのは無しで。

モバイルバッテリを長持ちさせる条件はスマホの電池充電量が増えも、減りもしない状態だ。これは意外かもしれない。充電と放電をすることで損失が 1~2 割ほど発生する。

モバイルバッテリから供給した電力が全て電池充電以外の回路動作に使われている状態が理想なのだ。

モバイルバッテリ側で観測できる物理量だけで、充放電量が推測できるだろうか?供給電圧、供給電流、供給時間、それらの変化履歴、ちょっと難しそうだ。

スマホ内蔵電池の充放電を止める(上の図で I(Rsense)=0 となるように制御する)機能は多くの Charger コントローラに内蔵されている。これは低温・高温時に充電を止め、電池内部の化学反応を最小にする機能として回路実装されている。アプリケーションから "B. Control Boost On/Off" の経路で Charger を制御できる API が有れば良い。Android 標準の API には備わっていない。使い方が難しいからだろう。自分はテスト機能として実装した。/sys から潜ったノードに書き込むと充放電停止状態になる。

標準 Android を改造することなく、実装するとなると大がかりになる。"A1. R/W Battery Status" と書かれた経路で充電状態を内臓ストレージに書き込み、USB の gadget driver 経由で MSC/PTP/MTP のいずれかのプロトコルでモバイルバッテリに充電・放電状況をフィードバックする。2~3分程度の周期で、供給電圧 VBUS を変え、単位時間当たりの充放電進行が 0% になるようにする。

おおよそ VBUS 電圧を低くすれば充電速度が落ち(場合によっては充電負けし)、VBUS 電圧を高くすれば充電速度が速くなるので、拮抗する条件を探せばよい。



難点は MSC 接続の時、Storage を mount/unmount する繰り返しをすることだ。ほかのアプリに影響が出てしまう可能性が高い。

はじめは Bluetooth 経由でモバイルバッテリに充電進行をフィードバック、ステータス収集することも考えてみた。理想的なフィードバックが可能な代わりに、コストが嵩む。

親子でモバイルバッテリの電力を分け合えたら、あるいは 2 個持ち歩き、各々で楽しめたらなと。





お気に入りの記事を「いいね!」で応援しよう

最終更新日  2016.08.13 12:06:38
コメントを書く


【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! -- / --
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x

カレンダー

サイド自由欄

コメント新着


© Rakuten Group, Inc.
X
Design a Mobile Site
スマートフォン版を閲覧 | PC版を閲覧
Share by: