GoPro+RPI

2019年11月9日 - 未分類

GoPro Hero7をRaspberry Piに接続して利用する方法です。GoProは、屋外で利用することを前提としたアクションカメラです。解像度は高く、4000X3000Pixelもの写真が撮れます。GoProをRaspberry Piに接続して、リモートで画像取得を行うには、ちょっとした工夫が必要です。GoProをUSB接続すると、バッテリーが充電されるので、電池切れの心配がありませんが、USB接続すると、MTPクライアントになってしまい、写真を撮影したりする制御ができません。

そこで、

1.USB Hubの電源供給を止める。すると、MTPクライアントが解除される。

2.WiFiで、GoProに接続する。

3.gopro-py-api で写真を撮影する。

4.WiFiを元のアクセスポイントに戻す。

といった一連の作業が必要です。

 

先ず、Raspberry PiのUSB電源供給を止めるには、hub-ctl をインストールします。


$ wget http://www.gniibe.org/oitoite/ac-power-control-by-USB-hub/hub-ctrl.c
$ gcc -O2 -o hub-ctrl hub-ctrl.c -lusb
$ sudo chown root:$USER hub-ctrl
$ sudo chmod +s hub-ctrl
$ mv hub-ctrl /usr/local/bin

Raspberry Pi3 B+では、ポートごとの制御ができないようです。ポート2をOFFにすれば、すべてのUSBポートで電源供給が止まります。

$ sudo hub-ctrl -h 0 -P 2 -p 0

これで、GoProは、USB接続されていない状態になります。ただし、これを実行すると、Raspberry PiのUSBポートに接続されているマウスやキーボードも使えなくなるので、ご注意ください。必ず、他のPCからsshでログインしてから行ってください。

次に、WiFiのアクセスポイントを切り替えるには、

$ sudo vi /etc/network/interface.d/wifi

auto lo
iface lo inet loopback

#allow-hotplug eth0
iface eth0 inet manual

allow-hotplug wlan0
mapping wlan0
script /usr/local/bin/apscan.sh
map SSID,home
map GPXXXXXXX,gopro

iface home inet manual
post-up service dhcpcd restart
post-down service dhcpcd restart

iface gopro inet manual
post-up service dhcpcd restart
post-down service dhcpcd restart

として、WiFiでGoProに接続します。

$ sudo ifdown wlan0

$ sudo ifup wlan0=gopro

で切り替わります。しかし、切り替えに少し時間がかかるので、sleep 10を入れます。

$  takephoto.sh

#!/bin/sh
sudo hub-ctrl -h 0 -P 2 -p 0
sudo ifdown wlan0
sudo ifup wlan0=gopro
sleep 10
python3 take_photo_1sec.py > message.txt
sudo hub-ctrl -h 0 -P 2 -p 1
sudo ifdown wlan0
sudo ifup wlan0=home

$ cat message.txt

HERO7 Black
HD7.01.01.70.00
Camera successfully connected!
http://10.5.5.9/videos/DCIM/100GOPRO/GOPR0015.JPG

 

Translate »