「リビングルームに置いても違和感のないIoTデバイス」の研究(Groovy-IoT + kikori: 番外編)

#はじめに
　日夜、IoTについてデバイスサイドの研究をしています。冬休みなので半分趣味として、どの様なデバイスなら「リビングルームに置いても違和感のないIoTデバイス」になるのだろう？に取り組んでみました。
![IMG_1469.jpeg](https://qiita-image-store.s3.amazonaws.com/0/156757/39b54f1b-ec19-8efa-0ca3-c8b5659efdd3.jpeg)


#現状分析
　現状についての分析をしてみます。リビングルームとIoTデバイスについてです。

##リビングルームに置いてあるもの
　拙宅のリビングルームを見回してみると以下のものが置いてありました、

- テレビ
- AVアンプ
- ゲーム機（複数台）
- 本棚
- テーブル
- クッション

　ググって画像検索してみても、これにソファが加わるくらいです。だいたいリビングルームのテンプレはこんなもののようです。

##IoTデバイス
　IoTデバイスについてどの様に構成するかを考えてみます。既に拙稿でいくつか説明していますが、みんな大好き`RaspberryPi`で作られたものが多いです。IoTデバイスはまずPoCから始めますが、これを使ったPoCを行うのが早道のようです。ただ、基板剥き出しのデバイスはあまりにも男前でスパルタン過ぎます。

##導き出されたもの
　以上からリビングルームに置いてあるもので、IoTデバイス(RaspberryPi)を偽装するのが良さそうです。さて、何で偽装するかです。適当なRaspberryPiであれば、色々なモノに組み込めそうです（これぞ、モノのインターネットですね！)。
　筆者の趣味でゲーム機に組み込むことにします。完成度の高い市販のゲーム機にはRaspberryPiを組み込む余地はありませんから、目先を変えてRaspberryPiをゲーム機で擬態することにします。


##エコシステム
　先日、`Playstation classic`が発売されました。筆者もハック目的で購入しましたが、まだ開封していません。当初はこちらをハックして、Linuxの動作とGroovy-IoTの接続を考えましたが、「労多くして功少し」のような気がしました。
　RaspberryPiには素晴らしいエコシステムが構築されています。それを活用すれば簡単にゲーム機への擬態が完了します。

###ハードウェア
- RaspberryPi
手持ちのもの

- ゲーム筐体
擬態するゲームの筐体を探します。やりこみ度で言ったらスーファミでしょうか？こちらを購入します。AliExpressなどで検索すると様々な筐体を見つけることが出来ます。Amazonでも散見しますが、価格が少し高いようです。ついでにコントローラも買っておきましょう。
![Screen Shot 2019-01-04 at 8.48.17.png](https://qiita-image-store.s3.amazonaws.com/0/156757/90811306-960b-f946-7b2f-740b5a0d37e8.png)

- ゲームコントローラ
擬態するゲーム筐体に合わせたもの(USB接続がおすすめ)

###ソフトウェア
　RaspberryPiをベースとした古め(Retro)のゲームのエミュレーション環境として[RetroPie](https://retropie.org.uk/)がリリースされています。かなりの完成度だな？が筆者の感想です。思わずドネーションをしてしまいました。
<img src="https://qiita-image-store.s3.amazonaws.com/0/156757/826e2998-2f7a-d849-c818-9fa9998da458.png" width=50%>


#設定
##ハードウェア
　PC自作の経験があれば、それほど難しくありません。
1.開封
<img src="https://qiita-image-store.s3.amazonaws.com/0/156757/c03ba978-abf9-bd22-50a4-3b942868d3c0.jpeg" width=50%>

2.筐体を開ける
<img src="https://qiita-image-store.s3.amazonaws.com/0/156757/b3c928d1-3c98-de38-ad36-d74c31d2a0ab.jpeg" width=50%>

3.RaspberryPiを取り付ける
<img src="https://qiita-image-store.s3.amazonaws.com/0/156757/fb0c7eeb-0869-9063-0298-1839193a7cb8.jpeg" width=50%>
ネジは図のように取り付けます(三箇所)。

4.コネクタを取り付ける
<img src="https://qiita-image-store.s3.amazonaws.com/0/156757/9957618d-65bf-2fca-0e35-0eacd6948419.jpeg" width=50%>

5.蓋を閉めて出来上がり
<img src="https://qiita-image-store.s3.amazonaws.com/0/156757/ffb08438-4907-5f90-c9d7-b54fb8816da4.jpeg" width=50%>

6.(IoT用のデバイスをインストール)
<img src="https://qiita-image-store.s3.amazonaws.com/0/156757/0beca910-58fa-758d-d153-c99ec26f73f9.jpeg" width=50%>



##ソフトウェア
1.イメージのダウンロード
　[こちら](https://retropie.org.uk/download/)からダウンロードします。

2.イメージの焼き込み
　各環境に合わせて、イメージを焼き込みます。

3.Retro-Pieの起動と設定
<img src="https://qiita-image-store.s3.amazonaws.com/0/156757/17b7fe1e-bb4b-2aa4-b234-d7353c5291db.jpeg" width=50%>

 - ゲームパッド接続後起動
 <img src="https://qiita-image-store.s3.amazonaws.com/0/156757/46bab2b6-3098-ad31-73df-5aeb5d981c73.jpeg" width=33%>

 - ゲームパッドにないボタン機能については「A」ボタンを長押しして先に進める
 - 各自の環境に合わせてネットワーク設定
 - ROMイメージの設定については省略

4.sshの設定
 /boot　ディレクトリにsshを作ります。
```$sudo touch /boot/ssh```

5.kikoriの設定
 - JDK install
 - dpkg でインストールしてサービス化

#動作確認
RetroPie動作中でもsshでログインできるので、ログイン後に各種のサービスが動作しているかを確認します。


#今後
　昔、作ったこういうのをRasPi用に復活させてもいいなと思いました。
　- [ファミコンカートリッジの吸出し: ChameloenNES](http://www2.teamknox.com/teamknox_old/ChameleonNES/ChameleonNES.html)
　- [スーファミカートリッジの吸出し: ChameleonSNES](http://www2.teamknox.com/teamknox_old/ChameleonSNES/ChameleonSNES.html)
　- [Gameboy Advanceカートリッジの吸出し: USB2GBA](http://www2.teamknox.com/teamknox_old/USB2GBA/USB2GBAj.html)
　また、レトロゲーム機の開発環境を全てRaspberryPiで構築して、ガワもレトロゲーム機と言うのも面白いなと思いました。


#結果
　高専に通学している長男に見せたところ、「**違和感以外ないだろ！？**」の評価でした…高専生の評価ですらそれです、残念です。

#考察
　存在を溶け込ませるのがどれだけ難しいかを痛感しました、研究はまだまだ続きそうです。今回はデバイス研究目的でしたが、RaspberryPiは新しいのが出る度に、ついつい買ってしまうのは筆者だけではないと思います。そうなると以前のラズパイの行き場を考えねばなりません。そのためにも、この手のアプリケーションは有用ではないかと考えます。

#参考URL
開発・評価・インストールレポートしてくれた先達に感謝します。
- [RetroPieでゲームエミュレーターを簡単インストール](https://linuxfan.info/retropie-setup)