2014/05/25

WeatherFlow製WindMeterがAQUOS PHONE SH-04Eで使えない

テストフライト時の風況把握や人力飛行機の対気速度計に使えることを期待してWeatherFlow製のWindMeterを買ってみたのですが、手持ちのAndroid端末SH-04Eで試してみたところ、正常な動作が確認できませんでした。
購入したWeatherFlow製WindMeter
対応Andoroidアプリの評価は5か1の真っ二つに割れていて、うまく使えれば便利なツールであるものの、全く使えないこともあることを想像させる結果です。

せっかく買ったものが使えないのは悔しいので、原因を調べてみました。
アプリのダウンロードページにある動画からわかる通り、センサはAndroid端末のイヤホンジャックに挿入して使います。
センサから出るパルスをマイク端子に入力し、その周波数から風速を求めるものと動作原理を予想して実験を行いました。

実験には以下のようなケーブルを使いました。

実験用のケーブル。1kOhmの抵抗でマイク挿入検知をごまかし、PCから出力したパルスを入力する
マイク入力<->GND間に1kOhmの抵抗をつなぎマイク検出をごまかし、PCのヘッドフォン出力からWaveGeneを使って生成したパルスをAndroid端末のマイク端子に入力します。
その結果、
  • パルス入力直後はWindMeterアプリに数値が表示される
  • しばらくすると表示が0.0m/sになる
という挙動が観測できました。

おそらくこれはマイク入力に自動ゲイン調整(AGC)がかかっているためだと思われます。
マイク端子に入力された波形を表示するAndroidアプリ 音声波形を使い、WageGeneで生成したパルスがAndroid端末でどのように見えるかを確かめてみましたが、過大な入力を与えた場合でも一定時間で波形がクリップすることがない程度まで入力アンプのゲインが落ちることがわかりました。
一部のSharp製端末の場合、マイク入力のAGCはアプリ側から制御できないようで、この類の端末を使っている場合にはWindMeterアプリ側からの対策はできないということになります。

また、数人の方に協力していただいて、いくつかの端末でWindMeterがうまく動くか検証してみました。
結果は下の表なります。

端末名 Androidバージョン マイク端子電圧
(1kOhm負荷時)
動作可否
Nexus 7 (2013) 4.3 0.99V ×
AQUOS PHONE
SH-04E
4.1.2 0.80V ×
Xperia Z
SO-02E
4.2.2 0.82V ×
AQUOS PHONE
ISW16SH
4.0.4 0.80V

公式アプリのページには「オーディオジャックを通して十分な電力を提供する任意のAndroidデバイスで動作します」という文言がありますが、この結果から電力以外の原因でも動作しなくなることがあることがわかります。

以上より、WeatherFlow製WindMeterのセンサにはAndroid端末との相性問題があり、ソフトウエア側からの対策も不可能な場合があることがわかりました。
WeatherFlow製WindMeterの購入を考えている方は、事前に情報収集を行って動作しそうかどうかを確認することをおすすめします。

2014/05/24

ublox製GPS-XBee変換基板

様々な用途に使えると一部で評判ublox製GPSですが、未評価のNEO型モジュールが手元にたまってきたので手軽に使えるXBee型の変換基板を起こしてみました。

似たような基板にはSeeedStudioGPSBeeがありますが、
  • USB接続可
  • バックアップバッテリ搭載
  • 設定記録用EEPROM搭載
という点で、作製したモジュールのほうが高機能になる予定です。

発注した基板のパターンを以下に示します。
ほぼモジュールのデータシート通りの回路ですが、部品の取り付け方を変えることでublox6, 7, 8の各世代で使えるようになっています。

評価しようと考えているのは、
  • NEO-6M (格安かつ搬送波位相出力のhackあり)
  • NEO-7P (キャリアスムージングによる(?)精密単独測位)
  • NEO-M8N (GPS/GLONASS/QZSS/BeiDou/(Galileo)のGNSS対応)
の3種類のモジュールです。
特に搬送波位相とGNSS対応周りの性能を重点的に評価したいと考えています。

2014/05/13

GPSのバックアップバッテリ

手元に未評価の(ublox製/NEOフォームファクタの)GPSモジュールがたまってきたので、そろそろ腰を上げて評価用基板を作製しようと考えています。
評価用基板には各種コネクタ等の他にもバックアップ用の電源を取り付けるつもりですが、ボタン電池と電気二重層コンデンサが主な候補です。

電気二重層コンデンサには電池交換の手間も省けるというメリットがありますが、容量とバックアップ電流によってはバックアップ時間が十分に取れないことも考えられます。
そこで、バックアップ時間がどの程度取れるのか測定してみることにしました。

実験はHPA_Navi(無印)で行いました。
バックアップ回路は、電気二重層コンデンサ(0.22F)を逆流防止用のダイオード1ss400を通して3V3につないだだけの単純なものです。
以下に測定の様子を示します。

測定の様子。Agilent U1253Bの入力インピーダンスは10MOhmなので、測定系に流れ出る電流は無視できる程度
充電・放電時のバックアップキャパシタの電圧変化
使用したGPSモジュールNEO-6Pのバックアップ端子の最低電圧は1.4Vなので、1.5時間程度のバックアップ時間が確保できることがわかります。
また、放電開始直後には急に電圧が降下しており、その後ほぼ定電流で放電する様子が見て取れます。
この傾きから(バックアップ回路全体の)消費電流は32uA程度と求まります。
データシートによればNEO-6Pのバックアップ電流は典型値で22uAなので、ダイオードや測定系に流れ出る分を考えてもこの値は少し大きめと言えそうです。

通常の運用であれば1.5時間程度のバックアップ時間が取れれば十分なので、製作する評価基板のバックアップ系には0.22Fの電気二重層コンデンサを採用したいと思います。