(追記2020-11-01) 現在のBusterのものでは動かないっぽいので、こちらを.
[メモ] Raspberry Pi Zero + CSI-Camera を USB WebCamとして使う(2020年夏版)
Raspberry Pi Zero + Camera を USB WebCam (UVC)として使う
-
Win10のChromeにて、MediaDevices.getUserMedia()を使用して、UVCカメラにアクセス
概要
- RPi Zero + Cameraで、UVCなWebCamとして使う。
-
g_webcam
koモジュール +uvc-gadget
を使用する - 参考: StackExchange:: How do you configure the Pi Zero to act as a USB webcam using the plug in camera? から、パッチを作られてるいる方のコードへ https://github.com/jdonald/uvc-gadget
-
uvc-gadget
のビルド済みバイナリ https://github.com/mt08xx/uvc-gadget/raw/dev/mt08/bin/uvc-gadget.armhf
環境
-
Raspberry Pi Zero W + Camera Module v1.3 (5MP)
-
Raspbian:
2018-04-18-raspbian-stretch-lite
-
Windows 10 x64 : WebCamのテスト
手順概要
-
/boot/config.txt
に 'dtoverlay=dwc2'を追加 -
/boot/cmdline.txt
にmodules-load=dwc2,g_webcam
を追加 -
/etc/modules
にbcm2835-v4l2
を追加 -
raspi-config
で、Camera ModuleをEnabledして、有効化 - uvc-gadgetを
/usr/local/bin
にいれて、自動起動用のsystemdの設定をする
手順
-
Raspbianを焼く
- 必要に応じて、
ssh
ファイルやら、設定済みwpa_supplicant.conf
をbootパーティションに置く
- 必要に応じて、
-
起動 (PWRから電源供給)
-
ログイン
- Wifiから
- UART-USBケーブルから
- テレビに繋いで、直接キーボードから
-
/boot/config.txt
に 'dtoverlay=dwc2'を追加シェルにこぴぺ
echo dtoverlay=dwc2 | sudo tee -a /boot/config.txt
5. `/boot/cmdline.txt`に `modules-load=dwc2,g_webcam`を追加
```bash:シェルにこぴぺ
sudo sed -i -e 's/rootwait$/rootwait modules-load=dwc2,g_webcam/g' /boot/cmdline.txt
-
/etc/modules
にbcm2835-v4l2
を追加シェルにこぴぺ
echo -e 'bcm2835-v4l2' | sudo tee -a /etc/modules
7. `raspi-config`で、Camera ModuleをEnabledして、有効化
```bash:シェルにこぴぺ
sudo raspi-config nonint do_camera 0
-
uvc-gadgetを
/usr/local/bin
にいれて、実行属性を付けて、シェルにこぴぺ
sudo curl -sL https://github.com/mt08xx/uvc-gadget/raw/dev/mt08/bin/uvc-gadget.armhf -o /usr/local/bin/uvc-gadget
sudo chmod a+x /usr/local/bin/uvc-gadget
9. 自動起動用のsystemdの設定をする
```bash:シェルにこぴぺ
cat << 'EOF' | sudo tee /etc/systemd/system/uvc-gadget.service
[Unit]
Description = uvc-gadget
After=local-fs.target
[Service]
ExecStart=/usr/local/bin/uvc-gadget -u /dev/video0 -v /dev/video1
Restart=no
Type=simple
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable uvc-gadget
```
10. 再起動
```bash:
sudo reboot
```
# 動作確認
## その1: Skype のWindowsのデスクトップ版のカメラ設定を開く
## その2: Chrome にて
- https://mt08xx.github.io/webcam.html にアクセス
```html:webcam.html
<!DOCTYPE html>
<html>
<head>
<title>Webcam Test</title>
</head>
<body>
<video id="videoIn" autoplay></video>
<script type="text/javascript">
var p = navigator.mediaDevices.getUserMedia({ video: true });
p.then(function(stream){document.getElementById("videoIn").srcObject = stream;});
</script>
</body>
</html>
# httpsでアクセスしないと、カメラが使えないっぽい.
その他
- 640 x 360 のみ動作。
- カメラの接続と動作テストは、先にやっといたほうがいいと思う。
- RPi Zero V1.3 など、ネット環境がすぐに使えないもので使用する場合は、ネットにすぐに繋がるラズパイを使って、microSDを設定しまえば、いいんじゃないかと思う。