ITで遊ぶ

水中のGoproをコンピューターで操作する

去年からやっていることですが、水上ドローン(要するに無人船)で海中の写真を自動で撮影するシステムを開発しています。(うみねこカンパニー)

こう書くと探せば事例があってエラソーに「開発」なんていうものかよ?と思うでしょ。
ところが、これがまったく事例がない、もしくは企業秘密のようでインターネットでは見つからない(と思う)
そもそもカメラをコンピューターで操作しようという人がほとんどいないようです。(わかりませんが)

こんな感じの流れになります。

  1. ラジコンスイッチかパソコンの管理ソフトから写真撮影指令を船の制御コンピューターに送ります。
  2. 船の制御コンピューターはピンの電位を上げることでラズベリーパイに司令を出します。
  3. ラズベリーパイはGoProにWiFi経由で司令を送ります。

この3のラズベリーパイとGoProをWiFiで繋いでコマンドを送ることが、キーポイントです。

なぜならば私が調べた限り、GoPro以外にAPIをもったカメラはありません。すべて独自のスマホアプリかUSBケーブルをつなぐだけであり、コンピューターからの制御はハナから考えていないのです。
言い換えるとアクションカメラはまだまだマシンによって使われる例は少ないということです。

USBケーブル接続が典型的で、空を飛ぶドローンはカメラとケーブルを介してシャッターのオンオフを送る単純な方法です。
しかし、カメラを耐水ケースに入れてしまうとUSBケーブルはつなげません。穴を開ければ確実に水圧でそこから水が侵入します。ケースに穴を開けないためにケースにWiFiのアンテナを取り付けるのです。

多くの人は「WiFiの電波は水中を飛ばないんじゃないの?」

電波についてあまり知らないので、このように考えるようです。
厳密には「電波は水中で著しく減衰する」が正しい表現です。

つまりGoProにWiFiのアンテナを密着するくらいの短距離であれば、問題なく水中のラズパイとWiFiで更新できます。
巷にはWiFiのケーブルだけで強引にスマホと水中カメラを結ぶケーブルが販売されていますが、あれは電波がとても弱いはずです。
私はこのようなWiFi USBドングルをラズパイ側に取り付け、カメラまでアンテナを延長しています。

この方法だと何十メートルでも取り付けたアンテナケーブルの長さだけ、GoProに電波が届きます。

今年もようやく暖かくなり春から水中写真を取るのですが、水中写真といえばお魚さんやサンゴを撮影する例しかないようです。

海の環境を知るために、これから絶対に必要になる技術だと思っています。

詳細はgithubに書きました

 

関連記事

  1. JqueryMobileにホレボレ

  2. アプリケーションの開発では

  3. 静的HTMLに他HTMLを読み込む方法

  4. wxPython (PythonのGUI)

  5. 製品を作るおじさんの独り言

  6. 汎用プログラムPythonとeasygui(1)

  7. DockerでLAMP(Laravelが動く)環境を作る

  8. htmltemplate for PHP

記事をプリント