RaspberryPi
Raspberrypi3
fswebcam

【マメ知識】ラズパイ+ロジクールC270+fswebcamで写真撮影をする場合のエラー対策

ラズパイ + ロジクールC270 はラズパイで安価に写真撮影をするのに最適な組み合わせなのですが、デバイスドライバに問題があるのか、二度目以降の撮影に失敗することがあります。
その場合の対応方法のメモ書き。

以下のようなシェルを ~/bin/fswebcam.shとして作って、fswebcamの代わりにこちらを呼び出して使うようにします。
あちこちにwaitが入っているので、単体のコマンド起動と比較して時間はかかりますが、手元の環境で撮影エラーは起きないようになりました。

動作確認は
* Raspberry Pi 3 MODEL B
* RASPBIAN STRETCH WITH DESKTOP 2017-11-29
* ロジクール HD Webcam C270
の組み合わせで行っています。

#!/bin/bash

# 本来のコマンド読み出し
fswebcam $*
sleep 3

# ダミーでもう一度呼びます。おそらく結果はエラーになるはず
fswebcam /dev/null

rc=1
while [ $rc -eq 1 ]
do
  sleep 3
  # このコマンドを呼び出すと、いろいろとステータスが変わりつつ正常な状態になってきます
  # 異常なときは rc=1
  # rc=255になると、正常に写真撮影が可能な状態のようです。
  v4l2-ctl --all >/dev/null 
  rc=$?
done

関連リンク 【マメ知識】ラズパイに接続したロジクールC270で録音をする