読者です 読者をやめる 読者になる 読者になる

Take’s diary

Macとマイコンに関すること--ワクワクの製作日記

Intel Edison と iPhone でテザリング通信する

2ヶ月ぶりで新しい記事を書きます。

 iPhoneを買うと、普通サービスでテザリングが使えます。Mac Bookを外部に持ち出すときとても便利なんですが、Edisonでこれを使えばどんなことになるんでしょうか?今回はこれをテストしてみます。

 まず、iPhoneテザリング機能でEdison とOSC通信することを実験します。これが実現できると、どうなるか? 前回までは、あくまでも家庭内の無線Lan環境だけでしか実験できなかったことが、外に出ても実行できることになるんです。それだったらBLEの方が......。と、思ってる皆さん。前にも書きましたが、僕にとっては現状BLEのハードルが高くOpenframeworksを使ったOSC接続の方がとっつきやすいからです。実現方法はいたって簡単。次のようなことを守るだけです。

初期設定iPhone

  •  モバイルデータ通信を有効にして、インターネット共有をONにすること。
  •  名前を単純な英数字に変えること。

iPhoneの 設定--->一般--->情報@--->名前 でiPhoneの名前を半角英数字に変更。これはiPhoneipアドレスを変更するのと同じなのですが、Edison側で日本語環境に対応してなくて。Wifi設定が完全に狂ってしまうからです。

 EdisonとSSH接続するためのターミナルソフトをアップルストアからインストールします。私は「Reflection」をインストールしました。Edisonを立ち上げた後通常通りSSH接続します。ポート番号は22番です。

 

初期設定Edison

  •  USBでConsole接続できるボードを選ぶこと。

sparkfunかHenryが使いやすいです。(WEBカメラをダイレクト接続できるので。それとバッテリー接続が比較的簡単にできるから。)intelボードはOTG接続時外部電源が必要なので使いにくい。なぜconsole接続できないとダメか?=iPheneでインターネット共有したコンピューターでしかSSH接続できなくなるから。

  •  configure_edison --wifi でWifiを再設定すること。

デザリングしているiPhoneを探して、デザリングパスワードを入力する。

 ただしiPhoneIPアドレスが日本語の場合、そのまま選択すると、その後のEdisonの挙動がおかしくなります。configure_edison --wifiを実行してもERRORで、2度と他のWifiにつながらないというとても恐ろしいことになります。

 この対処方法がわからなくて、しょうがなくEdisonのOSをクリーンインストールしましたが(あのめんどくさいSimpleCVインストールをまたしなければならなくなる! !)対策がありました。次のようにします。

nano  /etc/wpa_supplicant/wpa_supplicant.conf

 

network={

  ssid="○-iPhone"

 

  key_mgmt=WPA-PSK

  pairwise=CCMP TKIP

  group=CCMP TKIP WEP104 WEP40

  eap=TTLS PEAP TLS

  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を使うことを考えれば大したことないかも)

動画で再現するとこうなります。(パスワードは、ひ・み・つ)

                        

 この状態になると、iPhoneiPhoneテザリングで接続したコンピューターからしかEdisonをSSH接続できません。つまりEdisonがトラブった時の対策に一応consoleコネクタを持っていて、Macとscreen接続可能なボードが必要なんです。

 

 あとは以前のプログラムを実行してみると。(iPhoneでEdisonをSSH接続して必要なプログラムを実行。IPhoneではOpenframeworksで作ったOSCアプリを実行)

takesan.hatenablog.com

 今回は

       f:id:TAKEsan:20150814162433j:plain

 前に作った

 

takesan.hatenablog.com

 sparkfunのIntel Edison Block +OMURON非接触温度センサーにPython部分を移植して、さらにWifi設定を変更して動かすと、このまま外に持っていっても当然ながら動きました。

実行方法はこんな感じ

                             

 それと、実行する前に懸案だったのが、iPhoneがスリープしたらどうなるのかですが、次のような挙動でした。

  • 当たり前ですが、iPhone側のSSH接続は切れてしまうが、再接続すればOK。
  • OSCの方は、Edison側で動く前回のPythonプログラムがよくできているので、iPhoneがスリープから目覚めて、センサー通信ソフトが立ち上がれば、自動的に接続されます。

SimpleCVを動かしてみましょうか......。当然できます。

 この応用でESP8266でかなり面白いことができました。こちらは、多分趣味レベルで実現できる最小のサーモグラフィーだと思います。 

takesan.hatenablog.com

 

では、また。