Wifi環境が良くないところでPepperを動かしたいとき

#Wifi環境が良くないところでPepperを動かしたい
Pepperを動かすときにWifi環境は必須です。
しかし、ハッカソンの発表時や小さな展示会などでは必ずしもWifi環境がいいわけではありません。
開発時は動いていたのに、観客の皆さんが集まってwifi環境が悪化、Choregrapheとの接続がが不安定になって全然うごかない、なんてこともあると思います。
そんなときのために「PCをルーター代わりにしてLTE回線以外は全て優先で接続する方法」を紹介します。
ちなみにWindows7でのやり方なので、詳しい方はMac版やWindows8版などを試してみてください。

#セットアップ
この章はこちらの記事[「ノートパソコンを簡単にアクセスポイントにする方法！」](http://shopdd.jp/blog-entry-1139.html)を参考にさせていただきました。

![P5040466.JPG](https://qiita-image-store.s3.amazonaws.com/0/60999/de7726e1-26cd-3d80-0568-8afb6cfba470.jpeg)
こんな形でUSBケーブルでテザリング可能なスマホと有線接続。PepperともLANケーブルで接続します。
Pepper側では有線LAN接続以外は切断してください。


そのあと、「ネットワークと共有センター」を開き![sc1'.png](https://qiita-image-store.s3.amazonaws.com/0/60999/b24176d8-911d-e894-848d-083808ea3486.png)



「アダプターの設定の変更」をクリック![sc2'.png](https://qiita-image-store.s3.amazonaws.com/0/60999/b62b95e6-311e-67f3-74c1-abbeedcd7cc4.png)


有線でつなげているローカルエリア接続が2個でてきます。1個はPepperと接続しているネットワーク、もう1個は有線でテザリングしているネットワークです。
そのテザリングしているネットワークを右クリックします。![sc3'.png](https://qiita-image-store.s3.amazonaws.com/0/60999/16c239e7-a5ed-a5c7-ce43-99d34986cd24.png)

プロパティを選択します。![sc4'.png](https://qiita-image-store.s3.amazonaws.com/0/60999/ef392828-16a3-bd32-4922-e8d884ba32f2.png)

「共有」タブを選択![sc5'.png](https://qiita-image-store.s3.amazonaws.com/0/60999/f895f112-73f2-d0be-6203-dafdfde2b0ea.png)

「ネットワークのほかのユーザーにこのコンピューターのインターネット接続をとおしての接続を許可する」をチェック。
このときホームネットワーク接続の候補には「Pepperと接続しているネットワーク」が出てくるのを確認しましょう。
（他の有線接続やBlueToothの接続があった場合は幾つか候補が出る可能性があります。）
![sc6'.png](https://qiita-image-store.s3.amazonaws.com/0/60999/b316f3b9-8115-5720-3279-cf0c11a67d8f.png)


これでPepperがノートPC越しに有線でテザリングできました。




#動作の確認
ではネットに繋がってるか確認してみましょう。動作確認には、send emailボックスを使います。![sc7'.png](https://qiita-image-store.s3.amazonaws.com/0/60999/d583c7e3-f74f-8e7b-8d32-ecc1414ad1d2.png)

暗号化などが若干ゆるめなので、ロボット用にgmailアカウントなどを作ることが推奨されています。
なお、gmailの場合は、SMTP addressは「smtp.gmail.com」。Port numberは587です。

実行すると、「ログイン試行をブロックしました」という警告メールが来ます。![sc9'.png](https://qiita-image-store.s3.amazonaws.com/0/60999/91d7b894-e88b-22a7-a1fd-b48fc2c81623.png)
これで「Pepperがインターネットに接続されている事」、が確認されました。


ただ、これだけだと、若干後味が悪いので、Pepperから送られたメールを読めるようにgmailを設定する方法も紹介します。
警告メールをクリックすると安全性の低いアプリからアカウントにアクセスされたことと、その対処法が出てきます。
![sc10'.png](https://qiita-image-store.s3.amazonaws.com/0/60999/d08bec8a-1eec-3371-6516-3988c19d062a.png)

詳細をクリックすると安全性の低いアプリからアカウントに設定できるようになります。
![sc11'.png](https://qiita-image-store.s3.amazonaws.com/0/60999/590f72a7-0a12-5f05-2716-cbd9300832ad.png)
![sc12'.png](https://qiita-image-store.s3.amazonaws.com/0/60999/460828e8-81b3-80af-c521-b4b59a8d6f13.png)


#発展版-タブレットにWebコンテンツを表示する。
PepperのタブレットはWifiモジュールを別個に持っています。そのため、この方法でWebにアクセスしていると本体はインターネットに繋がっているけれども、タブレットはインターネットにアクセスできないようなことが発生する可能性があります。

そこで、今回設定したような環境では、出来るだけ本体(choregrapheでプログラミングできる部分)でインターネットとつなぐようにしてあげるようにしましょう。

参考記事
[HTTP Getボックスの作成](http://qiita.com/Atelier-Akihabara/items/acc8d2ad6c3881f112a4)
[pepperのpythonでHTTP GETしてJSONパースするサンプル](http://qiita.com/n0bisuke/items/d07b5485f4e767bc6e20)

また、インターネット上のコンテンツをタブレットに表示する場合などは、[こちらのサンプル](https://www.dropbox.com/sh/2721fb0l91u9hu3/AABXPTqcWKqWMDSXWlHFJ9l9a?dl=0)にあるように、いったんプロジェクト内のフォルダにコンテンツをダウンロードしてから、表示してあげるとよいかもしれません。
こちらのサンプルコードですが、色々と改善の余地があるので、皆さんの方で試してみてください。

なお、サンプルを作るにあたり[「PythonでWeb上のファイルをダウンロードする」](http://qiita.com/yuukiclass/items/88e9ac6c5a3b5ab56cc4)を参考にさせていただきました。
ありがとうございます。


[追記]
サンプルコード内で、behavior pathを取得する際のコードはPlay Soundボックス内のGet Attached Fileボックスを参考に
self.framemanager = ALProxy("ALFrameManager")
self.framemanager.getBehaviorPath(self.behaviorId)
を使ってみるとよりシンプルなコードになるそうです。