模型撮影用カメラを作っている 2

前回からの続き

本体作成

プラ板を切って本体側面を作成。

切ったところでそのまま組み立てると電源周りが組み立てられないことに気づき、DCDCコンバータを注文。

DCDCコンバータには、Strawberry LinuxさんのTPS61230A 昇圧型DC-DCコンバータモジュール(5V 2.5A)を使用。あまりの小ささにびっくりしたけど、頑張ってはんだ付けした。

これはんだ付けしてから気づいたんだけど、もうモバイルバッテリーから給電できない。DCDCコンバータのVoutに5V行っちゃうから壊れるかも……

その後で前面と背面を切り出して組み立て。

ただどうも乾電池2本からだと電力が足りないのか、動作が安定しなかったので、乾電池2本セロハンテープで止めてクリップで無理やり繋いだ4.5Vで起動。とりあえずsshはつながるようになったので、一旦カメラのプログラムを起動しないように設定。明日単3乾電池3本用の電池ボックスを買ってきて繋ぎ変える予定。

プログラムの修正

キャプチャしてからLCDに映るまでがあまりに遅かったので色々調査。

まず最初にレンダリングを疑って時間測定したけど、毎フレーム240×240転送で60ミリ秒(15FPS)でかかってた。でも実際にはそんな全域転送する必要もなかったので、1フレーム前との差分を見て転送する範囲を絞るように修正。結果44ミリ秒(22FPS)ほどになった。

それでもまだ秒単位で遅れてたので今度はキャプチャ側を調査。

どうもOpenCVは内部でキャプチャした画像をバッファリングして送出してるようなので、バッファリングしないように修正。

this->capture.set(cv::CAP_PROP_BUFFERSIZE, 1);

これでほぼリアルタイムでLCDに表示できるようになった。

あとは撮った写真を取り出せるように、nginxとfancyindexを構成。fancyindexの作るテーブルをパースしていい感じに作り変えるjsを読み込むようにした。

コメントを残す

メールアドレスが公開されることはありません。