mindstorm-EV3をLinuxで制御しよう! ev3dev OSのインストールとSSH接続

## 概要
ev3devはmindstorm-EV3上で動くLinuxです。
ev3devをインストールし、SSH接続でログインする所までの手順を解説します。


## 環境
- mindstorm-EV3
- PC : Ubuntu 15.04
- ev3dev ([ev3dev-jessie-2016-10-17](https://github.com/ev3dev/ev3dev/releases))


##必要なもの
- LEGO mindstorm-EV3
- USBドングル  
BUFFALO WLI-UC-GNM2
- microSDカード  
 Verbatim SDHC8GYVB1


## ev3dev起動ディスクの作成
### ev3dev OSイメージデータのダウンロード 
http://www.ev3dev.org/download/
上記のリンクからev3devのイメージデータをダウンロードページします。


### microSDカードにイメージを書き込む 
Etcherというオープンソースソフトを使いました。
EtcherはnodejsとElectronで作られていて、Windows,Mac,Linuxに対応しています。
https://etcher.io/
上記URLからダウンロードし、Etcherを立ち上げます。

![cf8ef85f-6d95-127a-5b3a-c0e2753998d6.png](https://qiita-image-store.s3.amazonaws.com/0/149019/72ec24bf-3a60-25e2-af79-c33c6e274baa.png)


先ほどダウンロードしたev3devのイメージファイルとmicroSDカードを指定して書き込みを実行します。
![a02afd79-67e8-ed98-6234-93cad826cf6a.png](https://qiita-image-store.s3.amazonaws.com/0/149019/e82c095f-a444-f09c-ce5d-e2d3e61e0182.png)

## ev3dev起動方法
### microSDカードとUSBドングルをインテリジェントブロックに挿し込む
写真の向きのまま挿し込んで下さい。
![P_20161204_210500.jpg](https://qiita-image-store.s3.amazonaws.com/0/149019/cb171d37-e667-5b60-e50c-e48349b1986d.jpeg)

microSDカードはしっかり奥まで挿し込んで下さい。
![P_20161204_210726.jpg](https://qiita-image-store.s3.amazonaws.com/0/149019/7e6a2cb5-0733-6476-e125-19bee23d2afb.jpeg)


microSDカードは一度挿すと抜きづらくなるのでピンセットを用意しておくことをお勧めします。
ピンセットがない場合、microSDカードに[テープを貼っておく方法](https://sourceforge.net/p/etroboev3/wiki/lejosev3_win_eclipse_section03/)も優秀です。

### 起動
矢印で示す中央のボタンを押すと起動が始まります。
画面にログが流れていれば成功です。
![P_20161204_210839.jpg](https://qiita-image-store.s3.amazonaws.com/0/149019/6b62a318-b183-bc9e-7903-7ada0512d752.jpeg)

## Wi-Fiに接続する
Wi-Fiに接続します。インテリジェントブロックを直接操作することでWi-Fiに接続することができます。
起動画面からWireless and networks > Wi-Fi から、接続したいネットワーク先を選びます。Connectを選択し、パスワードを入力します。
![P_20161204_215611.jpg](https://qiita-image-store.s3.amazonaws.com/0/149019/7ed0121d-47fe-f715-ab09-36b8db4d1246.jpeg)
ネットワークに接続され、Status:Onlineになったことを確認します。
![P_20161204_215339.jpg](https://qiita-image-store.s3.amazonaws.com/0/149019/83562b13-0aed-8b42-ff65-d5ff1ceea874.jpeg)

## SSH接続する
PCからev3devにSSH接続します。
デフォルトでユーザー名は"robot"、パスワードは"maker"になっています。 
PC側で以下のコマンドを実行します。
```ssh robot@ev3dev.local```
次のような警告が出ますが、yesと入力します。
パスワード"maker"を入力しログインします。
<pre><code>
The authenticity of host 'ev3dev.local (192.168.2.91)' can't be established.
ECDSA key fingerprint is SHA256:sNNNlUWTtDtWX0CbCLcC83h8Yohuql2x2f6elfXKf+c.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'ev3dev.local,192.168.2.91' (ECDSA) to the list of known hosts.
robot@ev3dev.local's password:
             _____     _
   _____   _|___ /  __| | _____   __
  / _ \ \ / / |_ \ / _` |/ _ \ \ / /
 |  __/\ V / ___) | (_| |  __/\ V /
  \___| \_/ |____/ \__,_|\___| \_/

Debian jessie on LEGO MINDSTORMS EV3!

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Mon Nov 28 16:47:16 2016 from desktop
</pre></code>


## Wi-Fi自動接続設定
今のままではインテリジェントブロックの電源を切ってしまうとWi-Fiの接続情報は消えてしまうので、起動するたびにパスワードを設定しなくてはなりません。Wi-Fiに自動的に接続させるための設定をします。

### SSH接続でev3devにログイン　　　
```ssh robot@ev3dev.local```
###/etc/wpa_supplicant/wpa_supplicant.conf の編集 
\<SSID>と\<passward>はそれぞれの環境に合わせて書き換えてください。
<pre><code>
cd /etc/wpa_supplicant/
sudo touch wpa_supplicant.conf
sudo chmod a+w wpa_supplicant.conf
sudo wpa_passphrase \<SSID> \<passward> >> wpa_supplicant.conf
</pre></code>

## 参考
[ev3dev公式ページ](http://www.ev3dev.org/)