ドローンにカメラを搭載して海を空撮したいという需要はあり、しばしば実行されている例を見かけます。
しかし水上をドローンで撮影しても、海中はほとんど見えません。
最近はアクションカメラでそのまま水中に持ち込むことが可能な機種がいくつかあります。
ここでは世界的に使われていて、例も豊富なGoProを使うことにします。
GoProのリモート設定
GoProをUSB接続するという案もあるでしょう。でもUSBの口を防水にするくらいならケースで完全密閉したほうがラクです。なのでWiFi接続します。
GoProはWIFIもしくはBluetoothで接続可能ですが、やってみるとルールがありました。
手順です
GoPro Wifiを使用可能にする
GoProは最初は必ずBluetoothで接続します。スマホにQUIKを使って接続します。
接続されたらプレビューを使用するとWiFi接続を開始します。
接続前にAP名が表示されます。
カメラの「接続」メニューの「カメラ情報」からも得られますし、パスワードもここで表示されます。
GoPro側がアクセスポイントになります
パソコンから接続するためには、上記でのAP名を選んでパスワードを入力します。Raspiからつなぐ場合は/etc/network/interfacesに設定するとみんな書いていますが、ここにはなにもありません。おかしいよね。
すでにWiFiの設定がRaspi Imagerで作って、最低ひとつは設定されているハズ。
調べるとおなじみwpa_supplicantに設定するようです。
/etc/wpa_supplicant/wpa_supplicant.conf
に
network={
ssid="ssid"
psk="password"
}
書きます。ssidは” “で囲みます。パスワードは平文の場合、” “で囲みます。
リブートして繋がるか確認しましょう。うまくいかない時は正しいssidをひとつだけにしてみます。
wifiネットワークの切り替え
これがなかなか見つかりません。
wpa_supplicantでネットワークを2個登録しているとします。私の場合は自宅のWiFiのSSIDとGoProのSSIDを登録しています。これをコマンドで切り替えたいですよね?
wpa_cliというコマンドを使います。このコマンドは対話形式でも一行形式でも動作します。詳細はマニュアル見てください。
ここでは一行形式だけについて記載します。
wpa_supplicant.confに登録したSSIDは
wpa_cli -i wlan0 list_networks
でリスト出力できます。接続されている方には[CONNECT]と出ます。
切り替える時には、このコマンドで出てきた最初のIDを指定することで可能です。
wpa_cli -i wlan0 select_network 1
といった形式で変更します。
ただねー、このコマンドネットワークが繋がっていなくてもOKを返してくるんだよなー。
ネットワークが使用可能(要するにGoProのWiFiがスタート)してから、もう一度、select_networkすれば繋がります。
SSID名で切り替えたい場合、ちょっと面倒ですが
wpa_cli -i wlan0 select_network $(wpa_cli -i wlan0 list_networks | grep 切り替えたいSSID |cut -f 1)
で可能です。
ふたつしかネットワークがなく切り替えるだけならばPythonプログラムでも可能です。
#!/bin/bash word=$(wpa_cli -i wlan0 status |grep -w "id") id_num=${word:3:3} if [[ $id_num == "1" ]]; then wpa_cli -i wlan0 select_network 0 else wpa_cli -i wlan0 select_network 1 fi
(出典: Changing Wifi networks from the command line interface)
切り替えた後、しばらく様子を見て切り替わらないようだったら、インターフェースをリセットします。(必須ではありません)
sudo ifconfig wlan0 down
sudo ifconfig wlan0 up
ifdownコマンドはすでにRaspian OSではつかえません。
これらのコマンドはすべてOKが帰ってきます。
GoProアクセスポイントに繋がったかどうかは、ifconfigコマンドなどでIPアドレスが割り振られているか、確認の必要があります。
必ずつながるネットワークが必要
このようにGo Proを使う場合、Raspberry PiのWiFiネットワークは必要に応じて接続を変更します。Rapberry Piのメンテナンスをするためにはインターネットに接続しないといけないので、ふたつはAP定義が必要ではないでしょうか。
すると、別にパソコンと接続する方法が欲しくなります。
実はRaspberry Piは”USB-On-The-Go”というUSBをネットワークとして扱う方法があります。
しかし、なにぶん古くWindows11では使うためのデバイスドライバーのインストールはできませんでした。
やはり、Raspberry PIにドカンとついているイーサネットアダプターをせっかくなので利用しましょう。PC側はMacでもWindowsでもデバイスドライバーをインストールしなくてもいいLANアダプターが安価に売られていますので、ひとつ買っておきましょう。私が使っているのはこちら。MacではAX88179Aとして表示されます。イーサーネットですが、表示はイーサーネットではないのでご注意。
すでに他の記事でも書きましたが、Raspberry PI, パソコン、それぞれのアダプターのIPアドレスを固定しておけば間違いなく動作します。
Raspberry PiのイーサーネットのIPアドレスは以下で設定します。
/etc/dhcpcd.confに
interface eth0 static ip_address=192.168.100.1/24
WIndows側は「デバイス マネージャー」の「ネットワークとインターネット」でイーサーケーブルを差し込んでいれば、「イーサネット」のエントリーが見えているはずです。
そこで「IPv4アドレス」の「編集」を押し、上記と同じセグメントのアドレスをセットします。
(例:IPアドレス 192.168.100.2 サブネットマスク255.255.255.0)
Macの場合は接続すると、「システム設定」「ネットワーク」に「Ethernetサービス」とか「AX88179A」と出ますから「詳細」「TCP/IP」「IPv4の設定」と進み、やはりIPアドレスを設定します。
接続したら、sshで192.168.100.1に繋ぎにいきましょう。これがあれば安心。
(Windowsっていつから複数NICが使用可能になったんだろ?昔はこんなことしてたら動作しなかったぞ。)