合計12個の自転車ビーコンを並べる予定です。
2015年7月22日水曜日
2015年7月11日土曜日
リセットIC BD45231Gを使用した、ゆっくり充電回路
リセットICにROHMのBD45231Gを使った電源回路で、自転車ビーコンの送信機をゼロから充電してみました。回路図は下図の通り。RST#のプルアップ抵抗1Mohmは省略しています。
実験に使用したCR1220電池の無負荷状態の電圧は3.05Vでしたが、充電中は2.8V台でした。放電電流は、スタート時は約3mA、グラフの右端では約0.2mAと推定できます。
BD45231Gのリセット閾値電圧は2.3Vですが、リセットが解除された時の電圧は2.42Vでした。スタートからの経過時間は42分でした。
ラベル:
BicycleFinder,
TWE-Lite
2015年7月10日金曜日
TWE-Liteのパケットスニファ・アナライザを使ってみた
自転車ビーコンは、受信機が4秒おきにスリープから起床して短時間の受信待ちを行います。このタイミングを逃さないよう、送信機側では連続送信を4秒間以上継続します。タイミング設計については、開発を始めて間もない昨年9月に、「自転車ビーコンの電池持ち問題に対する解決案」というタイトルで考察しています。この目論見が正しかったのか、TWE SDKに含まれているパケットスニファを使って確かめてみました。
パケットを観察する無線モジュールには、TWE-Lite賞の賞品としていただいたToCoStickを使用しました。PC直結ですぐ使えるので、思い立った時に実験が出来て便利です。サイトに書いてある通りにやってみると、リモコンが発信したパケットが猛烈な勢いで表示されます。
リモコンからの電波をキャプチャし、パケット間の時間差をグラフにプロットしてみました。まずは、現状の毎秒64回+再送1回の場合。
続いて、毎秒32回+再送1回の場合。
長時間側に分布するという予想を裏切り、毎秒64回の場合とほとんど変化がありません。毎秒32回ならば31msあたりに集中するはずですが、再送が効いているせいでしょう。同じ設定で5回連続してキャプチャした場合も、同様の傾向になりました。
パケットの高密度化を狙って64回/秒の送信を行ってきましたが、32回/秒の場合と違いは見られず、効果は無かったようです。送信間隔の他に、 再送回数や再送間隔を変えてみましたが、ばらつきが増えて長間隔側に分布が寄ってしまうだけで、パケットの高密度化は達成できませんでした。
最適な待ち受け時間はどのくらいかを知るために、32回/秒の場合のパケット間隔を集計してみました。
間隔[ms] 回数 積算回数 積算割合
4 212 212 15.5%
8 1 213 15.6%
12 1 214 15.7%
16 699 913 66.9%
20 209 1122 82.2%
24 2 1124 82.3%
28 46 1170 85.7%
32 165 1335 97.8%
36 3 1338 98.0%
40 1 1339 98.1%
44 5 1344 98.5%
48 17 1361 99.7%
52 1 1362 99.8%
56 1 1363 99.9%
60 1 1364 99.9%
64 1 1365 100.0%
パケットを観察する無線モジュールには、TWE-Lite賞の賞品としていただいたToCoStickを使用しました。PC直結ですぐ使えるので、思い立った時に実験が出来て便利です。サイトに書いてある通りにやってみると、リモコンが発信したパケットが猛烈な勢いで表示されます。
リモコンからの電波をキャプチャし、パケット間の時間差をグラフにプロットしてみました。まずは、現状の毎秒64回+再送1回の場合。
![]() |
64回/秒の場合 |
- 16ms付近が最も頻度が高い
- 4ms未満、30ms前後にも相当な数がある
- 40ms以上も若干あり
続いて、毎秒32回+再送1回の場合。
![]() |
32回/秒の場合 |
長時間側に分布するという予想を裏切り、毎秒64回の場合とほとんど変化がありません。毎秒32回ならば31msあたりに集中するはずですが、再送が効いているせいでしょう。同じ設定で5回連続してキャプチャした場合も、同様の傾向になりました。
![]() |
32回/秒を複数回 |
最適な待ち受け時間はどのくらいかを知るために、32回/秒の場合のパケット間隔を集計してみました。
間隔[ms] 回数 積算回数 積算割合
4 212 212 15.5%
8 1 213 15.6%
12 1 214 15.7%
16 699 913 66.9%
20 209 1122 82.2%
24 2 1124 82.3%
28 46 1170 85.7%
32 165 1335 97.8%
36 3 1338 98.0%
40 1 1339 98.1%
44 5 1344 98.5%
48 17 1361 99.7%
52 1 1362 99.8%
56 1 1363 99.9%
60 1 1364 99.9%
64 1 1365 100.0%
32ms以下に大きな集合があり、ここを押さえれば95%以上の確立でヒットします。64回/秒でも約96%がこの範囲にありました。これなら、週5日の使用で空振りは月に1回程度しか発生しません。
36ms以上は電池もち悪化に見合うほどの効果が無いので、待ち受け時間は32msが最適と判断しました。
今後は、
今後は、
- 送信APIを呼び出す頻度は32回/秒
- 再送は1回
- 受信側のスリープ解除1回あたりの受信待ち時間は32ms
ラベル:
BicycleFinder,
TWE-Lite
雨センサーが復活
故障した雨センサーの太陽電池を交換したところ、見事に復活しました。
夜のうちに太陽電池を交換して設置。明朝5時ころから発電が始まり、夕方には満充電近くまで充電されています。今朝も、既に充電が始まっています。
![]() |
5分平均グラフ |
![]() |
週間グラフ |
交換した太陽電池は、秋月で売っている アモルファスシリコン太陽電池 AM5815CAR です。買い置きしていた 環境発電管理モジュール太陽電池セット の太陽電池だけを使いました。
ラベル:
DoorChecker,
TWE-Lite
2015年7月8日水曜日
雨センサーが故障
戸締りチェッカーシステムの一部である雨センサーの電源にトラブルです。昼間になっても、電気二重層キャパシタがほとんど充電されなくなりました。
土曜日に下がり始めたVcc(緑色)が、日曜の昼間になっても上昇していません。
テスターで調べたところ、太陽電池モジュールの出力電圧が無負荷状態でも1V程度しかありません。新品では4V以上でした。ここが原因のようです。今晩、修理します。
土曜日に下がり始めたVcc(緑色)が、日曜の昼間になっても上昇していません。
テスターで調べたところ、太陽電池モジュールの出力電圧が無負荷状態でも1V程度しかありません。新品では4V以上でした。ここが原因のようです。今晩、修理します。
ラベル:
DoorChecker,
TWE-Lite
2015年7月4日土曜日
TWE-Liteの外部リセット回路(2)
3か月余り前にTWE-Liteの外部リセット回路について書きましたが、未だに試行錯誤を繰り返しています。
最近まで試していたリセット回路は、FETでTWE-LiteとリセットICのGNDを切り離す回路になっていました。CR1220に直列に入れる抵抗は、実際には1kΩを使っています。
上のリセット回路では、リセットが解除されるまではTWE-LiteのGNDをFETで切り離しています。また、始動したTWE-LiteがDO1をLowに落としてリセットICのGNDを切り離し、再びリセットがかからないようにしています。リセットICの切り離しは、駆動電流の9μAを節約する意味もあります。
ここに至って、秋月で売っているTCM809RVNB以外のリセットICの使用をいろいろ調べた結果、このリセットICを使うこと自体が問題であるとの結論に達しました。
そもそも、TWE-Liteの始動電圧に近い閾値のリセットICを使えば、リセットICをFETで無効化する必要はありません。閾値2.3Vで駆動電流0.8μAというリセットICが普通にあるので、これを使ってTWE-LiteのRESET端子を直接制御すれば、FETを追加する必要はありません。
また、1-2μA単位の電流を惜しんでTWE-LiteのGNDを切り離すほどの省電力も必要ありません。
新たに選定したリセットICは、RohmのBD45231Gです。遅延タイマーは必要ないのですが、
- RSコンポーネンツに在庫がある
- 駆動電流が0.85μAと充分小さい(実測したらもっと少なかったです)
- マニュアルリセット用の端子がある
という理由で選びました。
このリセットICでElecrowに注文した基板の電源とリセット回路は下のようにしました。TWE-Lite(JN5164)のリセット端子には500kΩのプルアップ抵抗が内蔵されているので、外付けのプルアップ抵抗は省略したほうがいいかも知れません。
自転車ビーコンの新機能を復活!? LEDフラッシャー機能を実装
自転車ビーコンがMake: Japanのblogで紹介された際に「普段はテールランプとしてサドル下に装着しておき」と説明されていましたが、この自転車ビーコンにテールランプ機能はありませんでした。普段は、何の役にも立たない荷物でした。
その後、よく考えたら、リセット用として使っていたスイッチをGPIOで読み取るようにしたら、少しの改造でテールランプとしても使えることに気がつきました。基板の設計を変更し、
をスイッチで切り替えるようにしました。
無線を使わないとしてもCPUは電力を消費するため、フラッシャー動作中はLEDのON/OFFタイミング以外はCPUをスリープさせるようにしています。
その後、よく考えたら、リセット用として使っていたスイッチをGPIOで読み取るようにしたら、少しの改造でテールランプとしても使えることに気がつきました。基板の設計を変更し、
- リモコンからの指令を待ち受ける自転車ビーコンのモード
- 無線機能を一切使わないLEDフラッシャーモード
をスイッチで切り替えるようにしました。
無線を使わないとしてもCPUは電力を消費するため、フラッシャー動作中はLEDのON/OFFタイミング以外はCPUをスリープさせるようにしています。
ラベル:
BicycleFinder,
TWE-Lite
登録:
投稿 (Atom)