2ヶ月ぶりで新しい記事を書きます。
iPhoneを買うと、普通サービスでテザリングが使えます。Mac Bookを外部に持ち出すときとても便利なんですが、Edisonでこれを使えばどんなことになるんでしょうか?今回はこれをテストしてみます。
まず、iPhoneのテザリング機能でEdison とOSC通信することを実験します。これが実現できると、どうなるか? 前回までは、あくまでも家庭内の無線Lan環境だけでしか実験できなかったことが、外に出ても実行できることになるんです。それだったらBLEの方が......。と、思ってる皆さん。前にも書きましたが、僕にとっては現状BLEのハードルが高くOpenframeworksを使ったOSC接続の方がとっつきやすいからです。実現方法はいたって簡単。次のようなことを守るだけです。
初期設定iPhone側
- モバイルデータ通信を有効にして、インターネット共有をONにすること。
- 名前を単純な英数字に変えること。
iPhoneの 設定--->一般--->情報@--->名前 でiPhoneの名前を半角英数字に変更。これはiPhoneのipアドレスを変更するのと同じなのですが、Edison側で日本語環境に対応してなくて。Wifi設定が完全に狂ってしまうからです。
EdisonとSSH接続するためのターミナルソフトをアップルストアからインストールします。私は「Reflection」をインストールしました。Edisonを立ち上げた後通常通りSSH接続します。ポート番号は22番です。
初期設定Edison
- USBでConsole接続できるボードを選ぶこと。
sparkfunかHenryが使いやすいです。(WEBカメラをダイレクト接続できるので。それとバッテリー接続が比較的簡単にできるから。)intelボードはOTG接続時外部電源が必要なので使いにくい。なぜconsole接続できないとダメか?=iPheneでインターネット共有したコンピューターでしかSSH接続できなくなるから。
デザリングしているiPhoneを探して、デザリングパスワードを入力する。
ただしiPhoneのIPアドレスが日本語の場合、そのまま選択すると、その後のEdisonの挙動がおかしくなります。configure_edison --wifiを実行してもERRORで、2度と他のWifiにつながらないというとても恐ろしいことになります。
この対処方法がわからなくて、しょうがなくEdisonのOSをクリーンインストールしましたが(あのめんどくさいSimpleCVインストールをまたしなければならなくなる! !)対策がありました。次のようにします。
nano /etc/wpa_supplicant/wpa_supplicant.conf
network={
key_mgmt=WPA-PSK
pairwise=CCMP TKIP
group=CCMP TKIP WEP104 WEP40
psk="○○○○○○○○○○○○"
}
で wpa_supplicant.conf の内容の中に記述されている選択した日本語ip設定と思われる複数行を消すだけです。(上記の例ではnetwork={ から} まで)
まー iPhoneのipを英数字に変えていれば、全く問題ありませんが。
で接続方法
インターネット共有(モバイルデータ通信)がONでもEdisonからは簡単にテザリングができないようです(現在iOS9)。Wi-FiがONになっていて、かつ未接続表示になっていることが重要みたいです。いろいろ試してみましたが、テザリングで確実にEdisonと接続する方法を見つけました。なぜか分かりませんが、次のようなことを実行してみてください。
iPhone の設定で
モバイルデータ通信を オンにする
インターネット共有を選択する
一度OFFにする
再度ONにして、(インターネット共有の画面を表示したままの状態)
Edisonを立ち上げる。
Edisonを立ち上げてWifiが接続されると、iPhone側に インターネット共有:1台接続中という表示が出ます。これでもうつながっています。
ちょっとめんどくさいですが、慣れれば問題ありません(EdisonでBLEを使うことを考えれば大したことないかも)
動画で再現するとこうなります。(パスワードは、ひ・み・つ)
この状態になると、iPhoneかiPhoneにテザリングで接続したコンピューターからしかEdisonをSSH接続できません。つまりEdisonがトラブった時の対策に一応consoleコネクタを持っていて、Macとscreen接続可能なボードが必要なんです。
あとは以前のプログラムを実行してみると。(iPhoneでEdisonをSSH接続して必要なプログラムを実行。IPhoneではOpenframeworksで作ったOSCアプリを実行)
今回は
前に作った
sparkfunのIntel Edison Block +OMURON非接触温度センサーにPython部分を移植して、さらにWifi設定を変更して動かすと、このまま外に持っていっても当然ながら動きました。
実行方法はこんな感じ
それと、実行する前に懸案だったのが、iPhoneがスリープしたらどうなるのかですが、次のような挙動でした。
- 当たり前ですが、iPhone側のSSH接続は切れてしまうが、再接続すればOK。
- OSCの方は、Edison側で動く前回のPythonプログラムがよくできているので、iPhoneがスリープから目覚めて、センサー通信ソフトが立ち上がれば、自動的に接続されます。
SimpleCVを動かしてみましょうか......。当然できます。
この応用でESP8266でかなり面白いことができました。こちらは、多分趣味レベルで実現できる最小のサーモグラフィーだと思います。
では、また。