2011/06/13追記:このシステムを使って、福島まで放射線を計測に言ってきました→”東京日本橋から福島第一原発周辺まで車で放射線計測をしてきた(その1)”
************ 以下本分 *************
ちょっとした計測実験を予定しています。車にGPSを載せて走った位置のロギング(logging = 保存)+あるセンサーの値をその時間・位置をタグつけて保存する実験です。
ある程度長時間実験が想定されるため、車のシガーライターからDC/ACインバーターを介してACにして、そのACからその実験装置を動かさなければなりません。
そうなると、システム全体の消費電力を極力下げる必要があります。(使用予定のDC/ACインバーターは最大200W, 定格100W)。持っているSony Vaio Type Zは強烈なCPUのため、ノートの癖に最大100W越えという大電力でこれはパス。そこで、低消費電力ノートパソコン+計測システムを構築することにしました。
GPSは、秋月のGPSモジュールを購入。便利な時代になりました。
・GPSモジュール:RS232Cレベルコンバータ内蔵GPSモジュールGT-720F | 3200円
・RS232C – USBコンバータ:GPS用USB変換ケーブル | 1200円
4400円でGPS位置計測が出来てしまうという恐ろしい時代。USB変換ケーブルを通して、Baudrate 9600bpsで接続すれば、NMEAフォーマットで吐き出します。なんて簡単。
上記のGPSセットのUSBコンバータは、内部チップがProlific PL2303なのでLinuxでも認識可能だと判断し、計測PCは、Linuxにすることにしました。
さて、Linuxが動きそうなノートPCで消費電力が少ない物・・。とういうことでIntel Atom搭載のネットブックを探し始めました。
ネットブック向けのAtomも、N550というデュアルコア(TDP 8.5W)がリリースされているのでそれが搭載されているネットブックを物色。
一番安くて35000円位。価格コムで値段の安い順でソートを掛けると、その隣にLenovo G560eというノートPCを発見。
公式サイト:Lenovo エッセンシャルノートパソコン G560e
Thinkpadという名前は付けてもらえなかった格安シリーズのGシリーズ。その中でも最も安いノートPC
CPU : Intel Celeron T3500 2.1GHz (2Core/HTなし)
Mem : 2GB(PC3-8500 DDR2 SDRAM) : 最大8GB, 1スロット空き
HDD : 320GB(5400rpm) @ 2.5inch
DVD : DVDスーパーマルチドライブ
OS : Win7 Home Premium (6t4bit)
Video : GM45 統合4500MHD : 1366×768 px
Wireless 802.11b/g/n
Wired Ethernet : Atheros AR81 : 10BASE-T / 100BASE-T (Gigabitに対応していないのに注意)
内蔵カメラ:30万画素
カードスロット:5 in 1
質量:2.6kg
寸法:376x249x17.3-34.9mm
という仕様で34000円。同価格のAtom N550機よりも圧倒的に魅力でした。
といういわけでノートPCは、このLenovo G560eに決定。即納で次の日到着@NTT-X購入
なんとテンキー付き。Atom機ネットブックに比べたらかなりデカイです。
Windows7がプリインストールされています。最初で最後の起動なので記念撮影(笑
リカバリー領域(専用パーティション)にこのWin7が入っていて、メディアによるリカバリーDVDなどは付属していません。
付属ソフトにてこのリカバリー領域をDVDブランクメディアに落とせますが、2~3時間掛かりそうだったので面倒なので却下。
というわけでこのPCに付属していたWin7のライセンスはなくなりました・・。
Linuxは、RHEL6 (RedHat Enterprise Linux6)クローンのScientific Linux6(以下SL6)です。今注目のディストリビューションですね。
Centos6がいつまで経っても出ないので、私はこの2ヶ月くらい前からこのSL6に移行しています。使い勝手はCentosと一緒(当たり前か・・・)
・Win7などの最初のパーティションは全て破棄してフォーマット
・Ext4パーティションとswapを切り出してBase + Development Toolインストール(X環境は入れず:消費電力低減の為)
・つまりCUIベースLinuxとして使います。起動プロセスが少なくて極めて快適です。Celeronでも全く問題なし。
・起動中22W (最大ピーク27W)
・ログイン画面待機:17W (ランモード3 : X/GNOMEなど起動なし。CUIベース)
・While(1) :デッドロックプログラムを実行:1個 : 21W
・While(1) : デッドロックプログラムを実行:2個 : 26W *Dual Core CPUなので2つ実行させればCPUが完全テンパっている状態です。
*留意:バッテリー満タンのため、バッテリー充電は止まっています。よって充電中であればもっと上がるでしょう。
なかなか低消費電力でした。
あとは色々な雑感を。
・GPSセットのUSB変換(Prolific PL2303)は、何のドライバも入れずにそのまま認識(デバイスファイル/dev/ttyUSB0に現れる)。
・uucpパッケージに入っているはずのシリアルターミナルソフトcuがなぜかuucpを入れてもインストールされない。その為、cuをソースコードで拾ってきて手動インストールした。# cu -l /dev/ttyUSB0 -s 9600で、GPSは取得可能。なんて簡単。
・今回の計測システムは、cuで取得される全GPSログをまずファイルにそのままダンプ保存。そのファイルに対してtailとgrepを使って最新のGAGGA列を抜き出す。phpのスクリプトでGAGGA列カンマ区切り取得をして、経度・緯度・高度・時間を取得。その数値をSL6内に立ちあげたmysqlサーバにinsert。このPHPスクリプトをcron + sleepを使って約15秒に1回立ちあげてGPSデータをmysqlサーバに保存してゆきます。なんて簡単。phpのコードを書いただけなので、ここまで作業時間約1時間。なんて単純なGPSロギングシステム。自転車で使っているGarminとか使えば良いじゃんとかのツッコミはなしで(Mysqlに入っていないと、もう一つのセンサーとの時間同期処理が後で面倒なので)
・Scientifix Linux6インストーラーは無駄にマウスを使うのですが、付属のトラックパッドマウスはドライバーがなく動きませんでした。USBの普通のマウスをさして対応可能です。もともとCUIインストールなので、インストール終了後は不要ですし。
・デフォルト起動状態では、NIC Atheros AR81は認識しません。moogme開発記録さんのブログ:Atherosのネットワークドライバをインストールなどを参考に(ドライババージョンが上がっているので適時読み替えて)対応。インストールはすんなり行ったけど認識しない。あれれ?と思ったけど、ifcfg-eth0のスクリプトが無かった。適当に書いて/etc/init.d/network restartで認識。Ethernetも問題なし。
・XウィンドウなしのCUIモード(ランモード:3)は不便と思われるかもしれませんが、ALT+F1,F2,F3でターミナルも切り替えられるのでマルチタスクも可能です。データのロギング程度はこれで十分かなと。
というわけで、GPSなどのセンサーを併せて常時約20W程度のロギングシステムが出来ました。なかなか良い感じです。
* /proc/cpuinfoを一応アップしておきました。興味があれば。cpuinfo
追記:こんなの組み込みでやれば10W以下は余裕とツッコミを受けましたが、もちろんそれはその通りですが、まぁ使い勝手や開発のし易さから今回はPC + Linuxベースで。