beagleboard自身は5V1A程度の電源が必要ですが、車のシガーソケットから携帯充電用のUSB端子を接続することで簡単に動かすことができます。
そこにUSB Video Class(UVC)に対応したUSBカメラとGPSを接続することで、走行場所の位置情報を埋め込んだ写真を取るようにしてみました。
助手席に子供の目線ぐらいに付けたカメラから写真を取るとこんな感じになります。
準備作業
電源の確保
近場のオートバックスでみつけたのがAXSの キューブチャージャー デュアルでした。
これは5V2000mAが取れてヒューズもついていて、USB経由でカメラ(+100mA?)やらGPS(+300mA?)やらをつけても安定して動いています。
GPSモジュール
今回は秋月電子通商の GPSモジュール GT-730F/Lを準備しました。 消費電力がわりと高めといわれていて心配でしたが、性能自体に問題はなさそうなので値段を考えて決めました。
USBカメラ
Video4Linux2で遊んだ前回はBUFFALOの BSW13K05Hを使いましたが、今回はELECOMの UCAM-DLX300Bを使ってみました。
UCAM-DLX300Bでテストしたところ、シャッタスピードの問題なのか、2048x1536だと明る過ぎてしまい、1280x720は640x480と画角が同じで引き伸ばしただけの絵だったので、結局640x480で使っています。
画像は安定していますが、この使い方だと130万画素のBSW13K05Hと比べて違いはそれほど大きくありません。 家の中で使うには良いでしょうね。
撮影した写真の加工
GPSのデータは/dev/ttyUSB0経由で取得することができますが、今回はgpsdとntpdを動かしています。 このgpsdにTCP/IPで接続する事でデータを取得しています。
とりあえずはexiv2コマンドで時刻を修正しています。
beagleboardでの時刻同期
ntpdを-xオプションで動かしたとしても、電池でバックアップされたRTCを持っていないbeagleboardでは、ある程度の時間を調整してあげる必要があります。
これは別のスクリプトでgpsdから時刻情報を取ってきて比較することで、時差が大きい場合にはdate --utc MMDDhhmmYYYYとhwclock -wで時刻を合せています。
まとめ
まだしばらくはカメラの固定方法や取り付け位置の高さといった調整が必要そうです。
この記事で取り上げた品々
0 件のコメント:
コメントを投稿