BeagleBone BlueにとりあえずWebカメラを接続してリアルタイムで映像を送れるのかためしてみた。FPVみたいなことができればいいなと。
WiFi経由で映像を送るとどうしても遅延が気になるので解像度を下げたりしてどの程度遅延が起きるのかも含めて確認してみた。
本当はH264とかで圧縮して遠くに行って帯域が細くなっても通信できればいいかなとか思ったんだけどCPUパワーを食うし遅延も大きくなるかなとか思ったのでまずは簡単なMJPG-Streamerで試してみた。
カメラはLogicoolのC270を使用した。
MJPG-Streamerのインストール。
sudo apt-get install mjpg-streamer
BeagleBone BlueはUSB給電時はUSBポートで電力消費するデバイスが不安定になるので12VのACアダプタも接続しておく。(カメラが再起動を繰り返したりする)
そんでもって
mjpg_streamer -i "input_uvc.so -d /dev/video0 -y -r 320x240 -f 15" -o "output_http.so -p 8080 -w / usr/share/mjpg-streamer/www"
これでカメラが起動できる。
USBで接続してる場合はPCからhttp://192.168.7.2:8080に接続してStreamをクリックするとリアルタイムの映像が確認できる。
今回は320x240の15FPSで試してみたけど、このぐらいなら結構遅延もなさそう。これ以上になると明らかに遅延している…
とりあえず320x240の15FPSでの遅延を簡易的に測定してみた。
画面にストップウォッチとMJPG-Streamerを横並びに移して、その画面にカメラを向けてスクリーンショットを取る手法で遅延を測った。
この解像度だと遅延は0.17秒ぐらい。思ったよりだいぶ遅延が少ない。PCとの距離が近いからからもしれないけど。CPUの使用率は20%ぐらいだった。
WiFiで手軽にFPVカメラとして使えそう。
モータドライバとかも付いてるしこのボードだけでFPVラジコン作れそうな気がしてきた。
0 件のコメント:
コメントを投稿