Edison 初期化からLチカまでやってみた


Intel Edison の Breakout Board Kit を入手したので、まっさらな状態からLチカまでやってみました。

使うもの

* Edison  
http://www.intel.co.jp/content/www/jp/ja/do-it-yourself/edison.html
* microBのUSB ２本
* LED
* ブレッドボード
* ジャンパワイヤー ２本

![edison.png](https://qiita-image-store.s3.amazonaws.com/0/20773/276ebaf6-552c-30ce-9adf-5a06ad0e9cb8.png "edison.png")
_電子の工作員、半田ミク_

ファームウェアをアップデートする
-------------------------
シリアル通信が遅いとか、コマンドの最初の文字が欠けたりするので、アップデート必須です。

###フォーマットする
microBのUSBで、Mac と Edison の J16 に接続すると給電が開始され、Edison が起動します。

![breakout-board.png](https://qiita-image-store.s3.amazonaws.com/0/20773/a3ae164d-de2f-d0c8-f4b7-df848e2e9ef4.png "breakout-board.png")
_J16にmicorBを接続_

しばらくすると、Finder にマウントされるので、まずは初期化から。
ディスクユーティリティを使ってFAT32にフォーマットする。

![Format.png](https://qiita-image-store.s3.amazonaws.com/0/20773/7620ba78-5027-20c5-dfcb-53781a82140e.png "スクリーンショット 2014-11-15 13.59.39.png")

###イメージをダウンロード
Edison - Software Downloadから「Edison Yocto complete image」をダウンロードする。
https://communities.intel.com/docs/DOC-23242

zipファイルを展開して、Edison のストレージにコピー。
フォーマット後なので、ストレージの直下にはなにもないはず。

![install.png](https://qiita-image-store.s3.amazonaws.com/0/20773/dff08147-7942-7b55-b9e6-ca7167ae205b.png "install.png")

コピーが終わったら、J3にUSBを接続して、ターミナルから screen コマンドを実行します。

```sh:PC
screen /dev/cu.usbserial-AJ035PUI 115200 -L
```

デバイス名は適宜変えてください。
/dev/cu.usbserial- ぐらいまで入力すれば、あとはタブキーで補完されるはず。

###デバイスが見つからないときは
そんなデバイスないよとエラーが出たら、FTDIドライバが必要かもしれないです。
http://www.ftdichip.com/Drivers/VCP.htm
インストール後、FTDI Driver Control を起動して ENABLED にしておきます。
/dev/cu.usbserial-******** が現れたら screen を実行します。

接続が成功するとログインを聞かれるので、root の空パスワードで入れます。

```sh:Edison
edison login: root
```

ログインできたら、reboot コマンドでファームウェアを書き換え、再起動させます。

```sh:Edison
reboot ota
```

再起動が完了したら最新になってるのを確認する。（2014/12/03時点）

```sh:Edison
cat /etc/version
edison-rel1-maint-weekly_build_16_2014-10-14_14-56-19
```

Edisonを設定する
-------------------------
対話型の設定コマンドが用意されてます。

```sh:Edison
configure_edison --setup
```

デバイス名とパスワード（次回以降のSSHログイン）、WiFi設定を行います。WiFiはSSIDを検索してくれるので、適宜選択して進めます。
設定が終わるとURLが表示されるのでブラウザでアクセスしてみる。

![server.png](https://qiita-image-store.s3.amazonaws.com/0/20773/8e94f603-5d0b-26e7-68d3-c21c0f615448.png "server.png")


サーバがデフォルトで起動するんですね。IoTって感じです。
IPが付与されてるか確認してみる。

```sh:Edison
ifconfig
```

wlan0 の inet addr: がそう。
この時点でインターネットにつながってるので、ping とか curl してみると応答あります。この大きさのものがインターネットにつながってるとか、わくわくしますね。

__ライブラリを最新にする__
パッケージマネージャは OPKG というものが入ってるようです。

```sh:Edison
cd /etc/opkg
curl -O http://nonnoise.github.io/Edison/_sources/Edison/base-feeds.conf
curl -O http://nonnoise.github.io/Edison/_sources/Edison/intel-iotdk.conf 
curl -O http://nonnoise.github.io/Edison/_sources/Edison/mraa-upm.conf
opkg update
opkg upgrade
```

.profile にパスを記述。

```sh:Edison
cd ~
echo PATH=/usr/lib/node_modules/iotkit-agent/node_modules/.bin:$PATH > .profile
```

つづいて、PCからWiFi経由でSSH接続できるか確認。

```sh:PC
ssh -l root 10.0.1.5
```
_ホスト名などは適宜変えてください_

もしもこんなエラーが出たら
![zsh.png](https://qiita-image-store.s3.amazonaws.com/0/20773/8eaa8fdd-d4e8-b85d-3f8d-d3f708e6457f.png "zsh.png")

ローカルのキーを捨てて、もういちど接続するとつながる。

```sh:PC
ssh-keygen -R 10.0.1.5
```

Lチカさせる
-------------------------
いよいよハードウェアハローワールド、LEDチカチカです。
LEDの長い方（アノード）を __J18の2番__ に、短い方（カソード）を __J19の3番__ に、につなぎます。

![lchika-off.jpg](https://qiita-image-store.s3.amazonaws.com/0/20773/41ef064d-00b0-3968-ca79-82776e0ba310.jpeg "lchika-off.jpg")

ファイル書き込みでGPIOから制御します。
Lチカはこちらの記事を参考にしました。
http://tech.recruit-mp.co.jp/gadget/intel-edison-getting-started/

```sh:Edison
echo "165" > /sys/class/gpio/export
echo "out" > /sys/class/gpio/gpio165/direction
echo "1" > /sys/class/gpio/gpio165/value
```

点灯しますね。
0を書き込んで消します。

```sh:Edison
echo "0" > /sys/class/gpio/gpio165/value
```

###Node.jsでLチカさせる

MRAAというIntel製のライブラリとGitを入れて、サンプルをクローンしてきます。

```sh:Edison
cd ~
opkg install libmraa0
opkg install git
git clone https://github.com/intel-iot-devkit/mraa.git
```

MRAAにあるサンプルスクリプトを使います。

```sh:Edison
cd ~/mraa/examples/javascript/
vi Blink-IO.js
```

ピン番号を修正。

```JS:Blink-IO.js
/* var myLed = new m.Gpio(13); */
var myLed = new m.Gpio(15);
```

ピンアサインはこちら
https://github.com/intel-iot-devkit/mraa/blob/master/docs/edison.md

修正できたら Blink-IO.js を実行します

```sh:Edison
node Blink-IO.js
```

1secで明滅したら成功です。

![lchika-on.jpg](https://qiita-image-store.s3.amazonaws.com/0/20773/7fda413c-ab7e-070a-ddaa-cbd12fb00671.jpeg "lchika-on.jpg")

手軽です。Web系エンジニアにも手が出しやすいのがいいところですね。
それにしても、これらが無線でできちゃうのすごい。

ちなみにEdisonを終了させるには shutdown コマンドで。

```sh:Edison
shutdown -h now
```