___/How to making a proxy server for Olympus Air A01

Open Platform Camera Olympus Air A01 のプロキシーサーバの作り方

2019.07.30 柏木 明博

1. 概要

2015年に発売された Open Platform Camera 「Olympus Air A01」 のプロキシーサーバの作り方を説明します。発売当初は、私は製品の存在に気が付かず、つい最近、2018年か 2017年に知り、ヨドバシカメラの店員さんに見せてくださいと頼んだところ、オンライショップでしか販売していないので、現物を触って見ることができませんでしたが、最近、購入しました。しかし、既に生産終了(2018.03.31)となっていました。Open Platform Camera として訴求する客層を間違えたのではないでしょうか。Camera 趣味の方には、いまいち魅力のない Camera であることは確かです。Net 上の Voice of customer を見ると分かる通り、改良するべきちょっとした所がたくさんあります。これらを修正&アップデートしていくだけで、随分いい Camera に仕上がると思うのですが、昨今の市場の状況を考えると、Air A01 にそれだけのリソースを割く余裕がないのも、用意に推測できることです。そこで、私が行った改良(というか、使い方のアイディア)をご紹介します。これは、購入して最初にメーカーのサポート窓口に問い合わせたことでもあるのですが、「複数の Smart Phone から同時に接続して利用できないのでしょうか。」と言うものです。サポートの返事は、「できません」と言うもので、確かにサポートされていません。Air A01 のファームウェアを変更して、Wi-Fi Router に接続できるようにして、Smart Phone 側アプリケーションするとソフトウェア・アップデートだけで対応できそうなのですが、2019.07.30 現在、機能追加はされていません。

商品ページ:https://olympus-imaging.jp/product/opc/a01/

販売終了のお知らせ:https://digital-faq.olympus.co.jp/faq/public/app/servlet/qadoc?QID=005796

2. 内容

2-1. 必要なもの

簡単に説明すると、まず、Olympus Air A01 と直接接続する Server となる Smart Phone を一つ用意します。iOS でも Android でも大丈夫ですが、Air A01 が対応している Version の Smart Phone が必要です。また、VNC を使用して Smart Phone の画像共有を行うので、Smart Phone 上で VNC Server を実行できる機種が必要です。iOS の場合は、VNC Server で画像共有する為には、いわゆる「脱獄」を行う必要があります。Android の場合は、「root 化」を行わなくても VNC Server を動かすことのできるアプリケーションが 「Google Play」にありますので、こちらを使用すると容易です。私は、秋葉原のジャンクで見つけた 「SH-05F(Android 4.2.2)」(2,000円)を使用しました。古い iPhone は、使っていないものが皆さんのお家にも転がっているかも知れません。そのような端末は、脱獄してしまっても問題ないでしょう。Android も同様です。少し注意しなければならないのは、Air A01 は Android 4.0 以降に対応しているとアナウンスされていますが、2019.07.30 現在、「Google Play」 から利用できるアプリケーションは、Android 4.4 以降となっています。4.4 よりも古い機種を利用する場合は、「APKPure」など、他のウェブサイトからアプリケーションを入手する必要があります。VNC Server も、利用する端末で動作するものでいいのですが、私は、「VMLite VNC Server」(1,220円)を利用しました。それからもう一つ、「Raspberry PI Zero WH」(2,160円)(あるいは、3B、3B+、4B)が必要です。そして野外で使用する場合は、Raspberry PI 用に Smart Phone 用の補助バッテリーや接続ケーブル、Raspberry PI の設定には Keyboard、Mouse、Display 、Micro SD などが必要です。

2-2. Proxy Server 用 Smart Phone と Raspberry PI、端末の接続方法

と、必要なものを説明した時点で、もうお分かりと思いますが、一つ、Air A01 と直接接続した Smart Phone を VNC Server 化し、それを他の端末(Smart Phone でも、PCでも、Tabletでも、VNC 接続のできるものなら何でも可)から共有するという方法で、Proxy Server 化します。ここで一つ問題がありました。コントロール用の他の端末から、VNC Server 化した Smart Phone へ直接接続したいところですが、Air A01 と Smart Phone は ad hoc 接続のようで、Proxy Server にしている Smart Phone の Wi-Fi を専有してしまいます。Smart Phone には通常、Wi-Fi Port は一つしかない為、他の端末から接続することができません。Wi-Fi 以外の接続手段としては、Bluetooth が考えられます。実際、Bluetooth の tethering でも接続ができましたが、2.4[GHz]帯の Wi-Fi とは干渉を起こす為、Wi-Fi と Bluetooth 両方を最大出力で利用すると、短時間で切断されてしまいます。 − そうです、残るは、USB 接続です。USB には、device mode と host mode の二種類があり、Smart Phone は通常、device mode となっています。USB tethering で接続するには、Proxy Server とした Smart Phone を device mode、もう片方を host mode として接続する必要があります。Smart Phone 同士を USB 接続しても通信が行えないのはこの為です。そこで、「Raspberry PI Zero WH」を使用します。Raspberry PI Zero WH から Proxy Server である Smart Phone へ VNC 接続し、そこへ端末から Wi-Fi 接続することにします。そうすると、Wi-Fi と Bluetooth の干渉を回避して Proxy Server としている Smart Phone の画面を共有することができます。

2-3. Proxy Server 用 Smart Phone(SH-05F Android) の準備

私の環境では、Android 4.2 の Smart Phone を利用している為、Android の Smart Phone の例を用いて説明していますが、考え方は一緒です。まず、通常使う場合と同様に、Air A01 と Smart Phone をセットアップします。そして、正常に使用できることを確認し、VNC Server 用アプリケーションをインストールします。私は、「VMLite VNC Server」を利用しました。アプリケーションの説明の通り設定し、VNC Server が使用できることを確認します。自宅の Wi-Fi Router などで作業している場合は、他の Smart Phone から VNC Client アプリケーションなどから接続して確認することができます。私の場合は、Real VNC Viewer を使用しています。Wi-Fi Router に接続している他の PC や Table などでも構いません。

2-4. Raspberry PI Zero WH の準備

Raspberry PI Zero WHでは、Proxy Server としている Smart Phone へ VNC 接続して参照できる VNC Clinet と、Raspberry PI を VNC Server として画面を共有できる OS を使用する必要があります。Raspberry PI 用の OS である Raspbian はどれも VNC Client も VNC Server も動作します。Raspberry PI3B + Ubuntu MATE でも大丈夫です。私は、Raspberry PI WH + Raspbian Buster with Desktop を利用しています。通常の手順で、Raspberry PI Zero WH に Raspbian Buster with Desktop をインストールしたら、「2-3. Proxy Server 用 Smart Phone(Android) の準備」で説明したのと同じように、Proxy Server 上の VNC Server へ接続できることを確認します。Raspbian には、VNC server として、「Real VNC」が用いられていますが、複数端末からの同時接続の設定や、VNC Client との接続認証で問題がある場合は、「x11vnc」などの他の VNC Server を利用することもできます。私は、「x11vnc」を使用しています。そして、他の端末から Raspberry PI への VNC 接続ができることも確認しておきます。

2-5. Raspberry PI Zero WH と Proxy Server 用 Smart Phone(SH-05F Android) の接続

すべての端末が、Wi-Fi Router などを通して接続可能なことを確認していますから、次は、Raspberry PI Zero WH と、Proxy Server 用の Smart Phone(SH-05F Android)との接続を行います。この時、IP Address の割り当てが正しく行われるように、まず、SH-05F の Wi-Fi を OFF にしておきます。Air A01 との接続以外のプロファイル(Wi-Fi Router や tethering 用)は、削除しておくと誤接続を防ぐことができおすすめです。 Raspberry PI Zero WH の USB 端子も、SH-05F の USB 端子も、どちらも Micro B ですから、両端が Micro B の USB ケーブルで二つを接続します。私は、手元にこのケーブルがなかったので、充電やデータ転送に使用する USB ケーブルを二つ、「両端が USB A 端子の中継用コネクター」を用いて接続しました。Raspberry PI Zero WH と SH-05F を物理的に接続したら、今度はソフトウェア的に接続します。SH-05F の USB tehtering を ON にします。正常に接続できたら、VNC Server アプリケーションを起動します。私は、「VMLite VNC Server」を使用していますから、画面に VNC 接続用の IP Address が表示されます。どちらも正常に接続できたら、Raspberry PI から SH-05F へ VNC 接続を行います。

2-6. Proxy Server 用 Smart Phone(SH-05F Android)と Air A01 との接続

Proxy Server 用 Smart Phone(SH-05F Android)と、Raspberry PI Zero WH との VNC 接続が正常に行われている状態で、SH-05F と Air A01 の接続を行います。この時、私の場合、SH-05F の USB Port と Wi-Fi Port の間で、データの転送が行われませんでした。そこで、設定の中にある「モバイルネットワーク設定」を ON にしてやることで、転送が行われるようになりました。各端末毎に多少、工夫が必要かも知れません。OA.Central など Air A01 用アプリケーションを起動し、 Proxy Server 用 Smart Phone の接続が正常に行われると、Raspberry Pi Zero WH の画面に Air A01 の画面が表示されます。

2-7. 他の端末から Raspberry PI Zero WH への接続

ここまで来ると、もう終わったようなものですが、他の Smart Phone や、PC、Tablet から Raspberry PI Zero WH へ VNC 接続します。Raspberry PI の VNC Server を複数接続可能なように設定しておくと、同時に Air A01 の画面を共有することができます。

3. その他

接続してみると分かりますが、速度面の問題が顕著です。元々、Air A01 は画面更新の遅延などが問題でしたが、三脚などを用いて固定すると対応できそうです。また、VNC Server 用アプリケーションや、VNC 画面のサイズを調整することで、多少、改善が見られたので、下記に示しておきます。私は、マニュアルフォーカスレンズを使用していますが、焦点合わせも慣れないと手間取るかも知れません。この点は、オートフォーカスレンズを使用すると、対応できそうです。Micro Four Thirds Lens には、手ブレ防止機能の内蔵されたものもあるようなので、こちらを利用できるかも知れません。

3-1. 速度の向上

一番のボトルネックは、Proxy Server 用 Smart Phone の速度のようです。高速な VNC Server アプリケーションを利用すると改善するかも知れません。私の使用している「VMLite VNC Server」では、パラメータ「Interval(ms) per step」を調整することで、多少、改善が見られました。また、Raspberry PI Zero WH 側の画面サイズを小さくすることでも改善が見られます。

3-2. 他の device の利用

上記(3-1)から、Proxy Server にソフトウェア・ハードウェア共に高速なものを使用し、Raspberry PI の代わりに高速な device を使用することで速度の向上が可能なことが、推測されます。また今回は、2.4[GHz]帯 Wi-Fi と Bluetooth の干渉の為に、Raspberry PI を介して接続していますが、Wi-Fi Port を複数使用可能なシングルボードコンピュータや、x86 Android、BlueStack などの Emulator を使用すると、簡潔に高速化可能かも知れません。

以上