後輩たちのためのEV3rt講座⓪(開発環境構築編)

#EV3rtとは…#
**TOPPERS/EV3rtとは**、なんてことを話し始めると難しくなっちゃうのでざっくり説明しておきます。

- MINDSTORMS EV3で使える
- C言語プログラミング
- ちなみにETロボコンでは公式環境として使われている

[TOPPERS/EV3RTとは？(EV3rtのHPより)](https://dev.toppers.jp/trac_user/ev3pf/wiki/WhatsEV3RT)

#今回やること#
僕がEV3rtを使い始めるにあたって一番難しかったこと、それは**開発環境構築**です。
なんせめんどいんです…
ということでイチからの今回は開発環境構築の過程を説明したいと思います。
(既に終わっている箇所があれば各自飛ばしてください。)

##補足##
今回ターミナル・Cygwinにて打ち込んでいるのは**Linuxコマンド**などと呼ばれています。**cd**や**mv**などなど、たくさんコマンドが出てくるので、ある程度は理解しておく必要があります。これに関してはGoogle先生に**「Linuxコマンド」**などと検索してやると、たくさん出てくるので各自調べてください。
参考程度にQiitaの別の投稿も載せておきます。
[初心者でもこれは使いこなしたい！Linuxコマンドまとめ(Qiitaより)](https://qiita.com/lrf141/items/4dadd107c1ac778260e5)

#Windows版#
##①EV3rtのファイルをダウンロード##
[Download - EV3 Platform](https://dev.toppers.jp/trac_user/ev3pf/wiki/Download#ダウンロード)
まずはこれをダウンロードしましょう。
といってもまだ何もできないのでとりあえず放置しておきましょう。
ただ、今後のことを考え、フォルダ名を短縮し[ev3rt]にすることをおすすめします。
今後、短縮した体で話を進めます。
##②Cygwinのダウンロード##
Windowsでプログラムを人間語から機械語に変換(このことを**コンパイル**といいます)するために必要なツールです。Linux機器でいう**ターミナル**です。
WindowsはLinuxのOSではないため、新たにソフトを導入する必要があるのです。
ちなみに、実際にコンパイルを行っているのは後々出てくるgccってやつですが…

まずは[Cygwinのサイト](https://www.cygwin.com)からインストーラーを落としてきましょう。
基本的には64bit版をオススメします。
[64bit版インストーラー](https://www.cygwin.com/setup-x86_64.exe)
[32bit版インストーラー](https://www.cygwin.com/setup-x86.exe)
ダウンロードしたらインストーラーを起動しましょう
![スクリーンショット (3).png](https://qiita-image-store.s3.amazonaws.com/0/183170/b7e8006d-4259-d16f-7d56-48644f2d0d0e.png)
「次へ」を押すと以下のような画面が出てきます。
![スクリーンショット (4).png](https://qiita-image-store.s3.amazonaws.com/0/183170/618c000c-dae5-2ee9-d723-0ffd6053f418.png)
ここではインストール方法を選択します。
「Install from Internet」を選択した状態で、「次へ」を押してください。
![スクリーンショット (5).png](https://qiita-image-store.s3.amazonaws.com/0/183170/b2344cac-d90e-84a7-b9ad-ba1eb794339f.png)
インストールするディレクトリを聞かれます。任意の場所に変更しても構いませんが、基本的にはデフォルトをお勧めします。特に、スペースや全角文字が入るようなパスには置かないようにしましょう。確認したら「次へ」を押してください。
![スクリーンショット (6).png](https://qiita-image-store.s3.amazonaws.com/0/183170/069829c5-cbb8-bad8-3123-045abc8429b2.png)
ダウンロードしたパッケージを置く場所を聞かれます。先ほど同様、任意の場所に変更しても構いませんが、基本的にはデフォルトをお勧めします。特に、スペースや全角文字が入るようなパスには置かないようにしましょう。確認したら「次へ」を押してください。
![スクリーンショット (7).png](https://qiita-image-store.s3.amazonaws.com/0/183170/af720702-5bda-d54b-00d8-73ffed57717a.png)
インターネットの接続について聞かれます。プロキシサーバ等を使用していない場合は「Direct Connection」を選択した状態で「次へ」を押してください。
![スクリーンショット (8).png](https://qiita-image-store.s3.amazonaws.com/0/183170/b777947b-f857-49d2-f71f-1ca911338a66.png)
ここで、パッケージをダウンロードするサイトを選択します。
どこからダウンロードしても大丈夫ですが、最後に.jpとつくサイトは日本のサーバーなのでお勧めです。ちなみに私は`http://ftp.jaist.ac.jp`というところからダウンロードしました。
選択したら「次へ」を押してください。ダウンロードが始まります。
![スクリーンショット (10).png](https://qiita-image-store.s3.amazonaws.com/0/183170/29a9c83f-8297-ff41-1c1c-0e308a0b7604.png)
ここでパッケージを選択します。ev3rtを動かすにあたって必要なのは以下の4つです。

- gcc-core（バージョン4.9.0-1以降）
- make（バージョン（4.0-2）以降）
- diffutils（バージョン（3.3-2）以降）
- perl（バージョン（5.22.1）以降）

###gcc-core(Develから)###
![スクリーンショット (11).png](https://qiita-image-store.s3.amazonaws.com/0/183170/e9dce597-7496-9e56-24c1-464b480800bd.png)

###make(Develから)###
![スクリーンショット (12).png](https://qiita-image-store.s3.amazonaws.com/0/183170/4c0515f2-929b-9ed4-54c7-fd9984ec0a8b.png)

###diffutils(Utilsから)###
![スクリーンショット (13).png](https://qiita-image-store.s3.amazonaws.com/0/183170/3ce7f3b2-568f-54f2-2180-76334f5a1d7d.png)

###perl(perlから)###
![スクリーンショット (14).png](https://qiita-image-store.s3.amazonaws.com/0/183170/f0f6f563-a417-1702-199c-15f045d25530.png)

あとは画面に従って「次へ」を押せば、インストールが完了します。

##③GCC ARM（GNU Tools for ARM Embedded Processors）##
https://developer.arm.com/open-source/gnu-toolchain/gnu-rm/downloads
まずはインストーラーをダウンロードします。
基本的に最新版で良いと思いますが、うまく動かない可能性もあります。
公式ページの動作確認済みバージョンは`gcc-arm-none-eabi-4_8-2014q3-20140805`です。
また、私は`gcc-arm-none-eabi-6-2017-q1-update`まで動作確認済みです。

インストーラーを起動すると、言語設定画面になるのでEnglishを選択しましょう。
(残念ながらJapaneseはありません。)
その後、ライセンスの確認、インストールするディレクトリの選択、確認を行うとインストールが完了します。
![pic16.png](https://qiita-image-store.s3.amazonaws.com/0/183170/97ced652-8ead-8073-1400-8eed147437cb.png)
最後にこの画面で必ず`Add path to environment variable`だけ選択して「Finish」を押してください。

##④U-Bootのmkimageのインストール##
[Cygwin用のmkimageのバイナリ](http://www.trimslice.com/download/tools/Mkimage.tar.gz)
えーとこれですが、できればブラウザはChromeでやってください。
もしChrome以外(Internet ExplorerとかFirefoxとかedgeとか)でダウンロードした場合は…

1. まず、Cygwinを起動します
2. 恐らくダウンロードフォルダにあるはずなのでCygwinのディレクトリを移動します
   以下のように打ってください。打つのは**$**から先だけです。

```
$  cd (ダウンロードフォルダのパス)
```

3.以下のコマンドを打ちます(1行ずつコピペして)

```
$ mv Mkimage.tar.gz Mkimage.tar.gz.gz
$ gzip -d Mkimage.tar.gz.gz
```

これでChromeの場合と足並みがそろったので、次に行きます。
Chromeの人はここでCygwinを立ち上げてください。
まず、

```
$  cd (Mkimageがあるフォルダのパス)
```

のように打ってください。Cygwinのディレクトリを移動するためです。
次に、

```
$ tar zxvf Mkimage.tar.gz
$ cp mkimage.exe /usr/local/bin
```

と打ってください。これにて一通り完了です。

さて、このあとはMac版を書きますので、下の方の後半戦まで飛ばしてください。

#Mac版#
Mac版に関しては以下のページで詳しくまとめられています。
こちらでは簡単にしか説明しないのでこのページも参考にしながらやってみてください。
[Mac OS X でETロボコンに出よう！(EV3RT 環境構築編)](https://qiita.com/yamanekko/items/3cee3991ea9472a1f6b6)
##①EV3rtのファイルをダウンロード##
[Download - EV3 Platform](https://dev.toppers.jp/trac_user/ev3pf/wiki/Download#ダウンロード)
まずはこれをダウンロードしましょう。
恐らくダウンロードフォルダにあるはずなので、これをUsers直下に移動してください。
![スクリーンショット 2018-08-20 10.29.12.png](https://qiita-image-store.s3.amazonaws.com/0/183170/252d0604-348d-5b63-a1a1-56171920b795.png)
今後[ev3rt]にリネームした体で話を進めます。
(ここで中のファイルを解凍してもよいのですが、Win版と足並みを揃えるために、後で行うことにします。)

##②gccの導入##
コンパイル時に使うツールが必要です。
ただ、MacにはXcodeというプログラミングソフトがあります。
主にiOSやmacOSのアプリを作るためにに使うソフトですが、C言語のコンパイルもできるため、これでできます。
自分のMacの中にXcodeが入っているかを確認してください。
無ければ、AppStoreに無料でありますのでダウンロードしましょう。
(ただしストレージにかなりの空きが必要なので注意)

##③mkimageのインストール##
http://dev.toppers.jp/trac_user/ev3pf/attachment/wiki/DevEnvMac/mkimage
まず、ここからmkimage(拡張子なし)というファイルをダウンロードします。
ここで難関!!
公式ページには「**パスの通った場所**に置く」などと書かれていますが、よくわかりませんね笑

では、このファイルを`/usr/local/bin/`にコピーしたいと思います。
Finderでやる場合は「移動」→「フォルダへ移動」より上記アドレスを入れて移動します。
その場所にmkimageを貼り付けてください。

ターミナルで行う場合は、

```
$  cd (Mkimageがあるフォルダのパス)
$  cp mkimage /usr/local/bin/
```

これでコピーは完了しているはずです。

さて、ここからPATHを通していきます。

```
$ export PATH=$PATH:/usr/local/bin/
```

これでPATHが通ったことになります。
反映させる必要があるので、下記コマンドを打ちます。

```
$ source ~/.bash_profile
```

また、

```
$ echo $PATH
```

と打つことで、PATHが通っているかを一覧表示して確認できます。

そしてもうワンステップ。

```
$ chmod 755 /usr/local/bin/mkimage
```

これで実行権限をつけておきましょう。
よくわからない方は**chmod**を検索してみてください。
いろんなページで紹介されているので多少は分かると思います。

##④GNUツールチェーンのインストール##
まず、
[GNU Arm Embedded Toolchain](https://launchpad.net/gcc-arm-embedded/+download)
より、動作確認済バージョンである`gcc-arm-none-eabi-5_4-2016q2-20160622-mac.tar.bz2`を探してダウンロードしてください。
https://launchpad.net/gcc-arm-embedded/5.0/5-2016-q2-update
終わったら解凍しておきましょう。

で、このダウンロードしたファイルを「適当な場所に」置けとのことなので、`/usr/local/`に置くことにします。コピーの仕方は先程と同じです。念のためにターミナルでやる場合を記しておきます。

```
$ cd (gcc-arm〜〜のあるフォルダ(恐らく「ダウンロード」だと思いますが))
$ mv gcc-arm-none-eabi-5_4-2016q2 /usr/local/
```

で、このフォルダに関してもPATHを通す必要があります。

```
$ echo "export PATH=/usr/local/gcc-arm-none-eabi-5_4-2016q2/bin:\$PATH" >> ~/.bash_profile
$ source ~/.bash_profile
```

##⑤EV3RTのコンフィギュレータ（cfg）のインストール##
http://toppers.jp/download.cgi/cfg-osx-static-1_9_4.tar.gz
ここからMac版バイナリファイル(動作確認済)(コンフィギュレータ Release 1.9.4（64bit MacOSX用バイナリ）をダウンロードします。ダウンロードしたら展開しておきましょう。
展開したらcfg(拡張子なし)というファイルができます。
これを`ev3rt/hrp2/cfg/cfg/`にコピーします。
このフォルダには`cfg.○○○`といったファイルがたくさんあります。でも間違えないでください!!
コピーするのは`cfg`です。

これで完了です！！

#後半戦いきまーす#
はてさて、7割くらいが終了しました。残りあと少しです。でもこの先はそこまで難しくは無いのでどんどんいきましょう。
まず、Finder・エクスプローラーで、「ダウンロード」にあった[ev3rt]というフォルダを、そのままCドライブ直下に移動してください。そのほうが後々作業がしやすいからです。
MacでいうCドライブ直下ってのは🏠家マークがついたフォルダがいいかと…

次にターミナル・Cygwinを起動してください。そしてディレクトリを移動します。
移動先は先程Cドライブ直下に移動した[ev3rt-beta○.○-release]フォルダです。

```
$ cd ([ev3rt]フォルダのパス)
```

次に、[ev3rt]の中の[hrp2.tar.xz]というフォルダを解凍しなければなりません。
同じくターミナル・Cygwinで

```
$ tar xvf hrp2.tar.xz
```

はい、これで解凍が始まります。ターミナル・Cygwinのコンソール上でが〜〜〜っと文字が流れるはずです。
終了したら、[ev3rt]の中に[hrp2]というあらたなフォルダがあるはずです。
これでようやく環境構築は完了です。

#最後に#
次回からプログラム部分をいじっていきますが、そのプログラムフォルダがある場所を知っておきましょう。
ev3rt/hrp2/sdk/workspace/
この場所にはサンプルプログラムが11個程あります。
とりあえず中を見てみるといいですが、よくわかりません笑
僕はあまり人の書いたプログラムを読める人間では無いのでね…

ただ、EV3rtのプログラム方法を理解すれば多少は読めるようになります。
次回以降解説していきたいと思います。

次回:[第1回](https://qiita.com/koushiro/private/a3fb52f0f1c17f2b1670)