今年一年お世話になりました。良いお年を! [徒然日記]
今年はブログをさぼりまくりの1年でした(って、毎年言っている気がする)。SPRESENSEのおかげで後半少しだけ盛り返しましたが…。
息子がまだ受験生ということもあるのと、今日の今日まで家で仕事をしまくっていたので、まったく年末気分ではないのですが、、、、っと、またブログを書かない言い訳をしてるなぁ。こういうところがダメなんだよなぁ。オレ。
ここ数年のこの悪癖は、いい加減断ち切らなくては。来年はペテルギウスが超新星になりそうだし(関係ないけど)、ここは私も心を入れ替えてマメ男くんに生まれ変わらねば!(以上、独り言でした)
ということを、今ごろ年賀状を作りながら思う年の瀬でした。トホホ。なんでも先回りしてテキパキこなせる素敵な人に私はなりたい…。
皆様、今年一年お世話になりました。
来年もたまに覗きにきてくれると嬉しいです…。
息子がまだ受験生ということもあるのと、今日の今日まで家で仕事をしまくっていたので、まったく年末気分ではないのですが、、、、っと、またブログを書かない言い訳をしてるなぁ。こういうところがダメなんだよなぁ。オレ。
ここ数年のこの悪癖は、いい加減断ち切らなくては。来年はペテルギウスが超新星になりそうだし(関係ないけど)、ここは私も心を入れ替えてマメ男くんに生まれ変わらねば!(以上、独り言でした)
ということを、今ごろ年賀状を作りながら思う年の瀬でした。トホホ。なんでも先回りしてテキパキこなせる素敵な人に私はなりたい…。
皆様、今年一年お世話になりました。
来年もたまに覗きにきてくれると嬉しいです…。
タグ:年の瀬
Marry Christmas! 2019 [徒然日記]
早いもので、もうクリスマスイブですね。あっという間に一年が経ってしまったという感じです。去年はクリスマスに何をアップしたかなと思ったらポプテピピック。今年はネタがないなー。
ということで、先ほどAmazon Prime Video で見た本場フィンランドのムーミン映画「ムーミン谷のウィンターワンダーランド」をバックにメリークリスマス!
この映画、味があるというか雰囲気があやしくてなんとも言えない映画です。ストーリーはなんでもない内容ですが、とにかく絵柄が怪しい。
西洋の暗い雰囲気を味わいたい人にはお勧めです!
(^^)/~
ということで、先ほどAmazon Prime Video で見た本場フィンランドのムーミン映画「ムーミン谷のウィンターワンダーランド」をバックにメリークリスマス!
この映画、味があるというか雰囲気があやしくてなんとも言えない映画です。ストーリーはなんでもない内容ですが、とにかく絵柄が怪しい。
西洋の暗い雰囲気を味わいたい人にはお勧めです!
(^^)/~
クラシック・ムーミン絵本 ムーミン谷のクリスマス (児童書)
- 作者: アレックス・ハリディ
- 出版社/メーカー: 徳間書店
- 発売日: 2019/11/08
- メディア: 単行本
タグ:クリスマス
SPRESENSE LTE 拡張ボードが発売! [SPRESENSE]
SPRESENSE LTE拡張ボードがついに発売されます。12月20日ですので来週ですね。
ソニー、LTE-Mに対応したSPRESENSE用拡張通信ボード発売
https://fabcross.jp/news/2019/20191210_sonyspresense_lteboard.html
”ついに”と言っているのは、実は貸し出しキャンペーンですでに借りていたのですよね~。
SPRESENSE LTEボード リリース前モニターキャンペーン
https://developer.sony.com/ja/posts/spresense-lte/
IIJさんからお借りしたSIMは残念ながら期限切れになってしまったので、IIJ mio の トラベルSIMを試してみたところ、なんと動作しました。ちょっと試すには手ごろな値段と容量なのでこれはうれしいですね。
]
デバイスが直接クラウドにつながるのは試してみると結構楽しいものですね。SPRESENSE Arduino ライブラリのネットライブラリが事前リリースのものは少し貧弱だったので、リリース版でどうなるか楽しみです。
(^^)/~
ソニー、LTE-Mに対応したSPRESENSE用拡張通信ボード発売
https://fabcross.jp/news/2019/20191210_sonyspresense_lteboard.html
”ついに”と言っているのは、実は貸し出しキャンペーンですでに借りていたのですよね~。
SPRESENSE LTEボード リリース前モニターキャンペーン
https://developer.sony.com/ja/posts/spresense-lte/
IIJさんからお借りしたSIMは残念ながら期限切れになってしまったので、IIJ mio の トラベルSIMを試してみたところ、なんと動作しました。ちょっと試すには手ごろな値段と容量なのでこれはうれしいですね。
]
デバイスが直接クラウドにつながるのは試してみると結構楽しいものですね。SPRESENSE Arduino ライブラリのネットライブラリが事前リリースのものは少し貧弱だったので、リリース版でどうなるか楽しみです。
(^^)/~
SPRESENSE の Low Power ライブラリをバッテリー給電で試してみた! [SPRESENSE]
前回はUSB給電で試してみたので、今回はバッテリー給電を試してみました。USBの場合は、電圧変換が必要なので、そこで若干ロスが発生するためバッテリー給電なら、さらに消費電力が下がるのではないかと考えた次第です。
バッテリーには、だいぶ前にドローン検討用に購入した1セルのLiPoバッテリーを使ってみます。
バッテリーを装着するにはバッテリー端子にピンをつけなければなりません。最初は給電できなくて焦りましたが、GNDのハンダがきちんとのっていなかったのが原因でした。
GNDはかなりしっかりしていて、熱が伝わりにくく、ハンダのノリが悪くて四苦八苦したのですが、なんとかつけることができました。
電流測定には、前回同様デジボルを電源ラインの間に入れて測定しました。安全のため配線の途中にスイッチをつけておきました。
前回と同じスケッチで測定をしてみました。
測定結果です。156MHz は USB給電よりも消費電流が高い結果となりました。しかし、32MHz以下では、想定通りUSB給電のときよりも若干消費電力が低い結果が出てきました。
次に、一秒のsleep を入れて消費電力がどう変化するか見てみました。シリアル出力は意味がないので省いています。
こちらも 156MHz では若干高い値となっていますが、32MHz以下ではUSB給電よりもよい値が出ています。
LED点滅も試してみました。
やはりLEDは2mA弱消費してしまいますねぇ。SPRESENSE本体が 十数 mA ~ 数 mA ということを考えると無視できないレベルです。
最後に本命のGPS機能を試してみました。前回とは少しコードを変えて測定しやすいように、衛星探索中はLED点灯、捕捉をするとLED消灯するようにしました。
前回と同じく、バッテリー給電でも 32MHz と 8MHz の大きな差は見られなかったので、GPSは 32MHz で使うのがよさそうですね。長い間の積算をとるとそこそこ差は出てくるのかもしれませんが。
今回はがんばってバッテリー用のピンをSPRESENSEにつけてみました!( ー`дー´)キリッ
測定した結果、バッテリー駆動のほうが消費電力という面ではかなり有利という結果が出ました。空ループ時の値を電力値に換算してみました。
32MHz 以下だと消費電力は半減近いです。GPSトラッカーを作るならバッテリ給電が正解ですね!(^^)/~
バッテリーには、だいぶ前にドローン検討用に購入した1セルのLiPoバッテリーを使ってみます。
バッテリーを装着するにはバッテリー端子にピンをつけなければなりません。最初は給電できなくて焦りましたが、GNDのハンダがきちんとのっていなかったのが原因でした。
GNDはかなりしっかりしていて、熱が伝わりにくく、ハンダのノリが悪くて四苦八苦したのですが、なんとかつけることができました。
電流測定には、前回同様デジボルを電源ラインの間に入れて測定しました。安全のため配線の途中にスイッチをつけておきました。
前回と同じスケッチで測定をしてみました。
#include <LowPower.h> //#define LOWPOWER_32MHz //#define LOWPOWER_8MHz void setup() { LowPower.begin(); #ifdef LOWPOWER_32MHz LowPower.clockMode(CLOCK_MODE_32MHz); #elif defined(LOWPOWER_8MHz) LowPower.clockMode(CLOCK_MODE_8MHz); #endif } void loop() { /* do nothing */ }
測定結果です。156MHz は USB給電よりも消費電流が高い結果となりました。しかし、32MHz以下では、想定通りUSB給電のときよりも若干消費電力が低い結果が出てきました。
周波数 | 消費電流 |
156MHz | 9.0 mA |
32MHz | 3.7 mA |
8MHz | 3.1 mA |
次に、一秒のsleep を入れて消費電力がどう変化するか見てみました。シリアル出力は意味がないので省いています。
#include <LowPower.h> //#define LOWPOWER_32MHz //#define LOWPOWER_8MHz void setup() { LowPower.begin(); #ifdef LOWPOWER_32MHz LowPower.clockMode(CLOCK_MODE_32MHz); #elif defined(LOWPOWER_8MHz) LowPower.clockMode(CLOCK_MODE_8MHz); #endif } void loop() { sleep(1); }
こちらも 156MHz では若干高い値となっていますが、32MHz以下ではUSB給電よりもよい値が出ています。
周波数 | 消費電流 |
156MHz | 7.6 mA |
32MHz | 3.6 mA |
8MHz | 3.0 mA |
LED点滅も試してみました。
#include <LowPower.h> //#define LOWPOWER_32MHz //#define LOWPOWER_8MHz void setup() { LowPower.begin(); #ifdef LOWPOWER_32MHz LowPower.clockMode(CLOCK_MODE_32MHz); #elif defined(LOWPOWER_8MHz) LowPower.clockMode(CLOCK_MODE_8MHz); #endif } void loop() { static int led_switch = HIGH; sleep(1); led_switch = (led_switch == HIGH) ? LOW : HIGH; digitalWrite(LED0, led_switch); }
やはりLEDは2mA弱消費してしまいますねぇ。SPRESENSE本体が 十数 mA ~ 数 mA ということを考えると無視できないレベルです。
周波数 | 消費電流(LED無灯) | 消費電流(LED点灯) |
156MHz | 7.6 mA | 9.5 mA |
32MHz | 3.6 mA | 5.6 mA |
8MHz | 3.1 mA | 5.0 mA |
最後に本命のGPS機能を試してみました。前回とは少しコードを変えて測定しやすいように、衛星探索中はLED点灯、捕捉をするとLED消灯するようにしました。
#include <GNSS.h> #include <LowPower.h> //#define LOWPOWER_32MHz //#define LOWPOWER_8MHz static SpGnss Gnss; void setup() { LowPower.begin(); #ifdef LOWPOWER_32MHz LowPower.clockMode(CLOCK_MODE_32MHz); #elif defined(LOWPOWER_8MHz) LowPower.clockMode(CLOCK_MODE_8MHz); #endif sleep(3); Gnss.begin(); Gnss.select(GPS); Gnss.select(GLONASS); Gnss.select(QZ_L1CA); Gnss.select(QZ_L1S); Gnss.start(COLD_START); } void loop() { if (!Gnss.waitUpdate(-1)) return; SpNavData NavData; Gnss.getNavData(&NavData); if (NavData.posFixMode == FixInvalid || NavData.posDataExist == 0) { digitalWrite(LED0, HIGH); } else { digitalWrite(LED0, LOW); } sleep(1); }
前回と同じく、バッテリー給電でも 32MHz と 8MHz の大きな差は見られなかったので、GPSは 32MHz で使うのがよさそうですね。長い間の積算をとるとそこそこ差は出てくるのかもしれませんが。
周波数 | 消費電流 |
156MHz | 13.0 - 14.5 mA |
32MHz | 5.7 - 6.8 mA |
8MHz | 5.6 - 6.3 mA |
今回はがんばってバッテリー用のピンをSPRESENSEにつけてみました!( ー`дー´)キリッ
測定した結果、バッテリー駆動のほうが消費電力という面ではかなり有利という結果が出ました。空ループ時の値を電力値に換算してみました。
周波数 | USB給電(5.0V) | バッテリ給電(3.7V) |
156MHz | 44 mW | 33 mW |
32MHz | 23 mW | 13 mW |
8MHz | 20 mW | 11 mW |
32MHz 以下だと消費電力は半減近いです。GPSトラッカーを作るならバッテリ給電が正解ですね!(^^)/~
SPRESENSE の Low Power ライブラリをUSB給電で試してみた! [SPRESENSE]
GPSのトラッカーを作るなら省電力が良いに決まってるよね!ということで、SPRESENSEの Low Power ライブラリを試してみました。今回はUSB給電でメインボードのみで測定してみました。
最初、簡易USB測定器で測ってみたのですが、なんと0.00Aにしかならず測定不能!さすが低消費電力をウリにしているSPRESENSEというべきか。うーん、困った。
で、手持ちのデジボルを見たら、精度はいかほどか不明ですが、μAレベルまで測れそう。
ということで、USBケーブルをバラシて、USBの電源ラインの間にデジボルを挟んで電流を測定することにしました。こんな感じです。
最初は基本性能から測定ということで、次のような単純なスケッチでを試してみました。
測定結果です。測定方法がかなりラフなので、誤差はかなりあると思いますが、周波数の設定を下げると消費電流も下がるので傾向を見ることはできそうです。
次に、一秒ごとにシリアルを出力するスケッチを試してみました。sleep を入れて消費電力がどう変化するか、また、シリアル通信の消費電力を見るのが目的です。
まずコンソールを開かない状態、つまりシリアル通信しない状態で電流値がどうなるか確認しました。
コンソールを開かない状態(シリアル通信なし)
sleep も省電力に効くようですね!8MHz になるとほぼ誤差かな??
次に、シリアル通信の消費電力を見るために、PCのコンソール(Arduino IDE の Serial Monitor)を開いて測定した数値がこちら。
コンソールを開いた状態(シリアル通信あり)
やなりシリアル通信をするとかなり電流を食いますね。+9 mA といったところです。GPSを使う場合、ATコマンドで他のホストマイコンと通信するのは消費電力面ではマイナスですね。
しかし、デバッグするには何か手段が必要ということで、LEDでどれだけ消費するか試してみました。次のスケッチで電流値がどうなるか見てみました。
LED点灯のテスト
LED一つにだいたい 2mA 程度消費するようです。結構消費しますね…。
ということで、いよいよ GPS を動かしてみようと思います。次のスケッチを試してみました。シリアル通信なしで測定したいので、衛星を補足したことを知るためにLEDを点灯するようにしました。
GNSS消費電力テスト(シリアル通信なし、LED無灯時、衛星補足時)
GNSSを使っているときは、衛星の配置や受信環境に左右されるのか、電流値がかなりバラつきますが、8MHz と 32MHz については思ったほど差が出ませんでした。
GNSSを使うときは、32MHz がよさそうです。実験はしてみるものですね。
(^^)/~
最初、簡易USB測定器で測ってみたのですが、なんと0.00Aにしかならず測定不能!さすが低消費電力をウリにしているSPRESENSEというべきか。うーん、困った。
で、手持ちのデジボルを見たら、精度はいかほどか不明ですが、μAレベルまで測れそう。
ということで、USBケーブルをバラシて、USBの電源ラインの間にデジボルを挟んで電流を測定することにしました。こんな感じです。
最初は基本性能から測定ということで、次のような単純なスケッチでを試してみました。
#include <LowPower.h> //#define LOWPOWER_32MHz //#define LOWPOWER_8MHz void setup() { LowPower.begin(); #ifdef LOWPOWER_32MHz LowPower.clockMode(CLOCK_MODE_32MHz); #elif defined(LOWPOWER_8MHz) LowPower.clockMode(CLOCK_MODE_8MHz); #endif } void loop() { /* do nothing */ }
測定結果です。測定方法がかなりラフなので、誤差はかなりあると思いますが、周波数の設定を下げると消費電流も下がるので傾向を見ることはできそうです。
周波数 | 消費電流 |
156MHz | 8.8 mA |
32MHz | 4.6 mA |
8MHz | 4.0 mA |
次に、一秒ごとにシリアルを出力するスケッチを試してみました。sleep を入れて消費電力がどう変化するか、また、シリアル通信の消費電力を見るのが目的です。
#include <LowPower.h> //#define LOWPOWER_32MHz //#define LOWPOWER_8MHz void setup() { Serial.begin(115200); LowPower.begin(); #ifdef LOWPOWER_32MHz LowPower.clockMode(CLOCK_MODE_32MHz); #elif defined(LOWPOWER_8MHz) LowPower.clockMode(CLOCK_MODE_8MHz); #endif } void loop() { sleep(1); Serial.print("."); }
まずコンソールを開かない状態、つまりシリアル通信しない状態で電流値がどうなるか確認しました。
コンソールを開かない状態(シリアル通信なし)
周波数 | 消費電流 |
156MHz | 7.3 mA |
32MHz | 4.4 mA |
8MHz | 4.0 mA |
sleep も省電力に効くようですね!8MHz になるとほぼ誤差かな??
次に、シリアル通信の消費電力を見るために、PCのコンソール(Arduino IDE の Serial Monitor)を開いて測定した数値がこちら。
コンソールを開いた状態(シリアル通信あり)
周波数 | 消費電流 |
156MHz | 16.2 mA |
32MHz | 13.4 mA |
8MHz | 12.9 mA |
やなりシリアル通信をするとかなり電流を食いますね。+9 mA といったところです。GPSを使う場合、ATコマンドで他のホストマイコンと通信するのは消費電力面ではマイナスですね。
しかし、デバッグするには何か手段が必要ということで、LEDでどれだけ消費するか試してみました。次のスケッチで電流値がどうなるか見てみました。
#include <LowPower.h> //#define LOWPOWER_32MHz //#define LOWPOWER_8MHz void setup() { Serial.begin(115200); LowPower.begin(); #ifdef LOWPOWER_32MHz LowPower.clockMode(CLOCK_MODE_32MHz); #elif defined(LOWPOWER_8MHz) LowPower.clockMode(CLOCK_MODE_8MHz); #endif } void loop() { static int led_switch = HIGH; sleep(1); led_switch = (led_switch == HIGH) ? LOW : HIGH; digitalWrite(LED0, led_switch); }
LED点灯のテスト
周波数 | 消費電流(LED無灯) | 消費電流(LED点灯) |
156MHz | 7.3 mA | 9.2 mA |
32MHz | 4.4 mA | 6.2 mA |
8MHz | 4.0 mA | 5.9 mA |
LED一つにだいたい 2mA 程度消費するようです。結構消費しますね…。
ということで、いよいよ GPS を動かしてみようと思います。次のスケッチを試してみました。シリアル通信なしで測定したいので、衛星を補足したことを知るためにLEDを点灯するようにしました。
#include <GNSS.h> #include <LowPower.h> //#define LOWPOWER_32MHz //#define LOWPOWER_8MHz static SpGnss Gnss; void setup() { Serial.begin(115200); LowPower.begin(); #ifdef LOWPOWER_32MHz LowPower.clockMode(CLOCK_MODE_32MHz); #elif defined(LOWPOWER_8MHz) LowPower.clockMode(CLOCK_MODE_8MHz); #endif sleep(3); Gnss.begin(); Gnss.select(GPS); Gnss.select(GLONASS); Gnss.select(QZ_L1CA); Gnss.select(QZ_L1S); Gnss.start(COLD_START); Serial.println("GNSS is starting"); } void loop() { if (!Gnss.waitUpdate(-1)) return; SpNavData NavData; Gnss.getNavData(&NavData); if (NavData.posFixMode == FixInvalid || NavData.posDataExist == 0) { Serial.print("No Position"); } else { static int led_switch = HIGH; sleep(1); led_switch = (led_switch == HIGH) ? LOW : HIGH; digitalWrite(LED0, led_switch); Serial.print("Lat=" + String(NavData.latitude, 6) + ", "); Serial.print("Lon=" + String(NavData.longitude, 6)); } Serial.println(""); }
GNSS消費電力テスト(シリアル通信なし、LED無灯時、衛星補足時)
周波数 | 消費電流(LED無灯時) |
156MHz | 12.3 - 15.5 mA |
32MHz | 6.9 - 9.0 mA |
8MHz | 7.2 - 8.9 mA |
GNSSを使っているときは、衛星の配置や受信環境に左右されるのか、電流値がかなりバラつきますが、8MHz と 32MHz については思ったほど差が出ませんでした。
GNSSを使うときは、32MHz がよさそうです。実験はしてみるものですね。
(^^)/~