昨年末に基板を自作しまして。まとめにも書いているように、理屈のうえでは電池のもちがよくなっているはずです。でもどのくらいよくなっているのかがわかりにくいので、実際に測定してみることに。
どうやって測るか
基板から制御する8個のLEDを全開にした(ほぼ)最大負荷の状態で何時間もつかを測ります。通常使用では全開にし続けることはないので、「最低でもこれだけもちます」という時間がわかります。
最初はiPhoneのストップウォッチでいいんじゃねえかと思いましたが、如何せん時間が長い。目を離したすきに電池が切れられても困ります。せっかくXBeeで電圧をモニタしているので、これを利用することに。Node.jsでシリアルポートを監視し、XBeeのパケットを受信したらMongoDBに放り込みます。XBeeからのパケットが途絶えた(=電池が切れた)ところでMongoDBの中身をグラフ化し、何時間動き続けたかを読み返します。
動かしてみた
コードはこんな感じに。
var mongoose = require('mongoose');
var db = mongoose.connect('mongodb://localhost/batterytest');
var Packet = new mongoose.Schema({
vol1: Number,
vol2: Number,
time: { type: Date, default: Date.now },
});
exports.Packet = db.model('Packet', Packet);
var model = require('./model_voltage');
var Packet = model.Packet;
serial_xbee.on('data', function(data){
// 受信したパケットが'Data Sample'である
if( (typeof data.bytes !== "undefined") && (data.bytes[0] == 0x92)){
// パケット中のA/D変換した読み値でオブジェクトをつくる
var newPacket = new Packet({vol1: data.samples.A0, vol2: data.samples.A1});
newPacket.save(function(err){
if(err){
console.log(err);
}
});
}
});
で、とったログをグラフ化。ここはMongoDBからCSVとしてはきだして、Numbersでグラフにしました。Numbersでグラフをつくるのは意外とめんどうでした。Excelほしいです。
5V昇圧をナシにしたFusion PCB試作のほうが、圧倒的に長いあいだ動作できることがわかります。適当なパターンで点滅させるとなれば、もっと動作時間は延びると考えられます。加えて、電池や昇圧ICの特性もみえそうという副産物も。もとの電源が十分に電圧を確保できてる場合、5V電源のほうは出力電圧がビチッと5Vで安定してますね。
おわりに
そういう用途ならばfluentdを使えばとなるのだけれど。シリアルポートがうまく読めなくて苦労しているので、なんとかなったらそこはまた。
0 件のコメント:
コメントを投稿