#1 開発環境を作ろう【もっと!後輩たちのためのEV3rt講座】

# 目次

https://qiita.com/koushiro/items/26aca0cb10c1d34c03a1

| 章 | タイトル | 内容 |
|:-:|:-:|:-:|
| 1 | [はじめに](#1-はじめに) | 本シリーズについて |
| 2 | [EV3rtとは?](#2-ev3rtとは) | EV3rtについての簡単な説明 |
| 3 | [環境構築の流れ](#3-環境構築の流れ) | 今回行う事について説明 |
| 4 | [開発環境構築](#4-開発環境構築) | 環境構築について説明 |
| 5 | [microSDカードの準備](#5-microsdカードの準備) | EV3本体に挿すmicroSDカードについて説明 |
| 6 | [まとめ](#6-まとめ) | 今回のまとめと次回について |

## 4. 開発環境構築の目次

| ステップ | タイトル |
|:-:|:-:|
| Step 1 | [WSLの有効化 ⇒ インストール](#step-1-wslの有効化--インストール) |
| Step 2 | [必要なパッケージのインストール](#step-2-必要なパッケージのインストール) |
| Step 3 | [EV3rt用のシェルスクリプトの実行](#step3-ev3rt用のシェルスクリプトの実行) |
| Step 4 | [EV3rtのファイルをダウンロード ⇒ 配置](#step4-ev3rtのファイルをダウンロード--配置) |
| Step 5 | [動作確認](#step-5-動作確認) |

# 1. はじめに

今回から、TOPPERS/EV3rtを使って、ロボットプログラミングをする方法を紹介していきます。
本シリーズは以下👇のシリーズの改訂版にあたります。

https://qiita.com/koushiro/items/4d18c877c93f823fc236

https://qiita.com/koushiro/items/5841a6394ab99f661280

今までのシリーズは、主に私が高校生の時に書いたもので、内容に不備があったり、時間の経過により仕様が変わっている点等がありました。
これらを解決してより分かりやすい記事にしようと思い、今回の新シリーズを書くことにしました。

尚、私は高校生の時にEV3rtを使ってロボットコンテスト **`WRO (World Robot Olympiad)`** に出場しておりました。
現在はこの大会に運営側として関わらせて頂いております。
従いまして、本シリーズにおいてもWROを念頭に置いた説明が多くなるかもしれませんがご了承ください。

そして本シリーズの位置付けですが、私の後輩をはじめとした**初学者向け**の記事となっています。
よって、かなり簡単な表現を使い、丁寧に説明していきたいと考えています。
既にある程度知識のある方は適宜読み飛ばして下さい。

それでは、EV3rtについて学んでいきましょう!!

# 2. EV3rtとは？

EV3rtとは、[​名古屋大学 大学院情報学研究科 高田研究室 (ERTL: 組み込みリアルタイムシステム研究室)](https://www.ertl.jp/) で主に開発されている、LEGO Mindstorms EV3用のOSです。

EV3rtはTOPPERS/HRP3をベースに開発されている **RTOS(リアルタイムOS)** です。
リアルタイムOSをとてもに簡単に説明すれば、**与えられた時間内**で、**完璧で正確な処理を行う**ことに重きを置いたOSです。

高田研究室のHPに良い例がありましたので紹介させて頂きます。

>リアルタイムシステムのわかりやすい例として、自動車のブレーキを制御するコンピュータシステムを考えます。
>例えば、「99.99% はブレーキをかけてから 1秒以内に止まるが、残りの 0.01% は 10秒かかる自動車」と、「必ず2秒以内で止まる自動車」のどちらが優れているかは、説明するまでもないでしょう。

こういった特徴のあるRTOSをEV3でも使えるようにしたのが、EV3rtというわけです。

尚、EV3rtの開発言語は`C`や`C++`、`ruby`などがありますが、本シリーズでは基本に則って **`C言語`** で開発をしたいと思います。

## EV3rtの良いところ

まず、**起動がめちゃくちゃ高速**です。
EV3標準のOSは、起動に数十秒かかりますが、EV3rtであれば**約5秒**で立ち上がります!!
これで長い起動時間に悩まされる事もなくなります👍

次に、**C言語を使って開発できる点。**
EV3ソフトウェアは以下のようないわゆる**ビジュアルプログラミング**と呼ばれるものですが、初心者には分かりやすくて使いやすい反面、規模の大きいプロジェクト製作には向いていません。

![ev3_software.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/183170/7d5f69be-f901-05e4-e7d1-e712c383b350.png)

ちょっとしたプログラムだけでも画面領域を広く取ってしまいますし、何よりこのEV3ソフトウェアは**動作が重たい…**
私も現役時代、使っているPCがソフトの重さに耐えきれなくなり、円滑な開発が出来なくなったため、エディタさえあれば開発できるEV3rtに移行したという経緯があります。
他にも、コードで書けば **可読性が上がる（どんなプログラムを書いているのか分かりやすい）** という利点もあり、良いところづくしと言えるでしょう。

# 3. 環境構築の流れ

今回と次回で、 **「開発環境の構築」** という作業を行います。

どんなソフトウェアでもそうですが、まずはPCにソフトをインストールするところから始めますよね。
広く一般的に使われるようなソフトウェアは**インストーラー**という「ソフトをインストールするソフト」があり、それが全て自動的に作業をしてくれますが、EV3rtはそうはいきません。
自分で、必要なものをインストールしていかなければならないのです。
これはEV3rtに限らず、アプリケーション開発においてはごく一般的な事です。

しかし、初心者の方にはハードルが高いと思いますので、記事に沿って作業を行なって貰えればと思います。

## プログラム開発の流れ

環境構築について説明する前に、まずはEV3rtでのプログラム開発の流れについて軽く触れておきましょう。

![スライド1.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/183170/b8446f1e-d0c5-54cd-e7dd-18254bf176aa.png)

まず、私たち開発者は **「エディタ」** というソフトを使い、C言語を使ってプログラムファイルを書きます。
「エディタ」とは文字を書くためのツールの総称であり、Windows標準搭載の **「メモ帳」** もエディタの一つと言えます。
実際には、アプリケーション開発に向いたエディタの方が使いやすいため、Microsoft社の**Visual Studio Code**というとても有名なエディタを使いたいと思います。(エディタのインストール・設定は次回)

ここで、エディタで作製するC言語で書かれたプログラムファイルは、人間は読むことは出来ても、**機械はそのままでは読むことが出来ません。**
そこで、「人間が読める言葉」から「機械が読める言葉」に変換する作業が必要です。
この作業のことを **「コンパイル」** と呼び、コンパイルするソフトのことを **「コンパイラ」** と呼びます。

そしてこの「コンパイラ」ですが、Windowsで動かすには少し工夫が必要です。
今回はWindowsの上で**Linux**という別のOSを動かし、そのLinuxの中のコンパイラで、プログラムをコンパイルしてもらうことにします。
尚、Windowsの上でLinuxを動かす機能を**WSL (Windows Subsystem for Linux)** と言います。

## 今回の工程について

今回はまず **WSL** を使えるようにして、そのあとにLinuxの一つである **Ubuntu** というOSを入れていきます。
Ubuntuのインストールが出来たら、**コンパイラ** を含めた「パッケージ」をインストールします。
最後に、EV3rtのホームページからソースコードをダウンロードし、コンパイルが出来るかどうかの動作確認をしたいと思います。

環境構築後には、EV3インテリジェントブロックにEV3rt用のmicroSDカードを挿し、起動するかも確認したいと思います。

# 4. 開発環境構築

:::note info
この記事は Windows向けに開発環境の構築方法を解説します。
他のOSを使用する場合は、以下の記事を参照してください。
:::

### macOS 向け

https://qiita.com/koushiro/items/2e57799566c81795ce70

### Linux/Ubuntu 向け

https://qiita.com/koushiro/items/a775ee094cc52a79c05a

## Step 1. WSLの有効化 ⇒ インストール

### WSL有効化

まず、WSLはデフォルトでは無効なので、これを有効化する作業を行います。
今回はPowershellというソフトを使って有効化します。

プログラム一覧からPowershellを探して、 **「管理者として実行」** をしてください。
見つからなければ👇こんな風に検索してみましょう。

![powershell_find.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/183170/b525137c-e2f8-3c4f-c3c4-f234ea0c9631.png)

すると以下のようなウィンドウが出現します。

![powershell_window.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/183170/f3fccdd5-ed8e-086c-c46b-4e5501e6cc13.png)

ここで、以下のコマンドを打ち込んでください。

```powershell:Powershell
> Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
```

:::note warn
コマンドの前の`>`は入力する必要はありませんので注意してください。
上のスクショで言えば`C:\windows\system32>`の一番右の`>`に対応すると考えてください。
:::

これでまず、WSLの有効化が完了しました。

### 【2023/12/13 追記】WSLのアップデート

以下のコマンドで、WSLの機能をアップデートしておいてください。

```powershell:Powershell
> wsl --update
```

### WSL2への変更

WSLにはバージョンが`1`と`2`の二つがあります。
必須ではありませんが、WSLのバージョンを`2`にしておくことをおすすめします。
先ほどWSLを有効化したPowershellの画面で、以下のコマンドを入力してください。

```powershell:Powershell
> wsl --set-default-version 2
```

<details>
<summary>既にLinuxインストール済みの場合</summary>

もし既に何かしらのディストリビューションをインストールしていた場合は、以下のようにして変更してください。

```powershell:Powershell
> wsl -l -v
  NAME            STATE           VERSION
* Ubuntu-22.04    Stopped         1

> wsl --set-version Ubuntu-22.04 2
```

1. `wsl -l -v`でWSLのインストール状況を確認、NAMEを控えておく
2. `wsl --set-version`コマンドの後にNAMEを指定し、VERSIONを`2`にする

</details>

### Ubuntuのインストール

次に、WSLに載せる **Ubuntu** をインストールしていきます。
Ubuntuをインストールする方法も色々ありますが、簡単に済ますために、**Microsoft Store**からダウンロードすることにしましょう。

Storeを開いたら、 **「Ubuntu」** と検索しましょう。
そうすると、以下のようにUbuntuがいくつか出現するはずです。

![ubuntu_find.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/183170/6fd3b3f5-75e7-ec4c-4081-ab2168f11710.png)

どのバージョンでも構いませんが、今回は現時点で最新バージョンである**22.04.2 LTS**をダウンロードしたいと思います。

![ubuntu_dl.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/183170/deb36d82-fb82-52fa-dd4e-50af44422b58.png)

上の画面のように **「Ubuntu 22.04.2 LTS」** を選択して、「インストール」を押しましょう。
以下のように「開く」ボタンに変わればインストール完了です。

![ubuntu_dl_sucsess.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/183170/8977d7f0-8e3f-bf10-f13b-9dfc9dddd355.png)

それでは、「開く」を押してUbuntuを起動しましょう。

### Ubuntuセットアップ

Ubuntuを開くと以下のような**ターミナル**が開き、自動的に初期セットアップが始まるはずです。
ある程度進むと、`Enter new UNIX username`と聞かれるので、このコンピュータに使う名前を入力しましょう。

![enter_username.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/183170/f7310d2c-3e73-b34b-884b-a47691e87de5.png)

又、`New password`と聞かれるので、パスワードも設定しましょう。
パスワードは事あるごとに入力が求められるので、忘れないようにしてください。

![enter_pass.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/183170/5980c50a-6b65-3a33-b081-ba3ea6b77849.png)

全てが完了したら、以下のように緑色の文字で名前が表示され、コマンドが打てる状態になります。

![ubuntu_wakeup.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/183170/3f1f802b-4cf0-12ba-13f7-6eafdc53fb00.png)

これで、Ubuntuのセットアップは完了です。

この先、 **「Ubuntuのターミナルを開いてください」** という表現が出てきたときは、プログラム一覧からUbuntuのアイコンを選択して起動し、ターミナルを出現させることだと認識してください。

![ubuntu_menu.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/183170/7b85e445-9e68-0cdf-dec0-39ef468429ae.png)

## Step 2. 必要なパッケージのインストール

### gcc, make, diff のインストール

ここからは「コンパイラ」を含めた **「パッケージ」** をインストールしていきます。
「パッケージ」とは平たく言えば、ソフトウェアとそれに付随するファイル群のことで、Linuxでは「パッケージ管理システム」を使うことで簡単にソフトウェアをインストールしたり、アップデートすることが出来ます。

では、Ubuntuのターミナルを開き、以下のコマンドを一行ずつ入力していきましょう。

```terminal:Ubuntu
$ sudo apt update
$ sudo apt install build-essential
```

:::note warn
Linuxのターミナルについても、コマンドの前の`$`は入力する必要はありませんので注意してください。
上のスクショで言えば`koushiro@DESKTOP-■■■■■:~$`の一番右の`$`に対応すると考えてください。
:::

`$ sudo apt update` は、パッケージ管理システム「apt」のアップデートです。
2行目はパッケージのインストールを行っており、`gcc`、`make`、`diff`といったパッケージを使えるようにするものです。

ここで、各行の先頭に`sudo`というコマンドがありますが、こちらは **「管理者権限で実行する」** という意味です。
この際、パスワードの入力が求められますので、Ubuntuの設定で入力したパスワードを入力してください。

これらのパッケージを正しくインストール出来ているかは、以下のコマンドで確認することが出来ます。

```terminal:Ubuntu
$ gcc -v
$ make -v
$ diff -v
```
以下のように出力されればOKです。

![gcc-v.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/183170/ade2ad2a-2c4d-ce87-8284-a83c229aa15f.png)

### ruby のインストール

次に、コンパイルに必要な`ruby`の環境を整えます。
Ubuntuのターミナルを開き、以下のコマンドによりrubyをインストールします。

```terminal:Ubuntu
$ sudo apt install ruby
```

インストール出来たかは以下のコマンドにより確認することが出来ます。

```terminal:Ubuntu
$ ruby -v
```

以下のように出力されればOKです。

![ruby-v.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/183170/f789ba8b-b9cf-2271-8021-764b1e7dd147.png)

:::note warn
rubyのバージョンが`3.0`以上の場合、この後必要な作業があるので注意してください。
:::

### shell のインストール

コンパイルの際に`ruby`のライブラリで`shell`というものを用います。
ruby 2.7系以降では標準搭載されていないので、インストールしていきます。

Ubuntuのターミナルで、以下のコマンドを入力してインストールします。

```terminal:Ubuntu
$ sudo gem install shell
```

<details><summary>余談</summary>

`shell`をインストールするために`gem`というものを使っています。
これもまた「パッケージ管理システム」で、これはrubyのライブラリを管理するパッケージ管理システムとなります。
</details>

インストール出来たかは以下のコマンドにより確認することが出来ます。

```terminal:Ubuntu
$ gem list
```

インストールされているライブラリが一覧表示されますが、その中に `shell (バージョン)` があればOKです。

以上で、必要なパッケージのインストールは完了です!

## Step3. EV3rt用のシェルスクリプトの実行

ここからは、TOPPERSが用意している **「シェルスクリプト」** を用います。
「シェルスクリプト」とは、今まで手打ちで行っていたコマンドが書かれているファイルで、これを用いることでコマンドの実行を自動化することが出来ます。

Ubuntuのターミナルを開き、以下のコマンドを一行ずつ実行してください。

```terminal:Ubuntu
$ wget http://ev3rt-git.github.io/public/ev3rt-prepare-ubuntu.sh
$ sudo bash ev3rt-prepare-ubuntu.sh
```

1つ目のコマンドではgithub上にある`ev3rt-git.github.io`というリポジトリから、インストールに用いるシェルスクリプトをダウンロードしています。
2つ目のコマンドはそのシェルスクリプトを実行しています。

2つ目のコマンドを入力すると、次のような表示がなされます。

![ev3rt_sh.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/183170/39b53870-bd76-08f8-67cf-d0224484d1c8.png)

ここで`1`を入力してください。
これでEV3rtに必要なものが自動的にインストールされます。

<details><summary>余談</summary>

今回用いたシェルスクリプトについて、その中身をほんの少しだけご紹介します。
このシェルスクリプトはEV3rtのGithubリポジトリより見ることが出来ます。

https://github.com/ev3rt-git/ev3rt-git.github.io/blob/master/public/ev3rt-prepare-ubuntu.sh

このシェルスクリプトでは **「ARM社のマイコン用のGCCコンパイラ」** 、そしてブートローダーである **「U-bootのmkimage」** がインストールされます。
以下、カッコ内の行数はシェルスクリプト上の行数を表しています。

EV3はARM社のプロセッサ`Texas Instruments AM1808 ARM Microporcessor`を採用していますが、このARMプロセッサ用のコンパイラも必要なのです。
ARM社用GCCコンパイラは多くのバージョンがありますが、自動的に動作確認済みバージョンをインストールしてくれます。(58~61行目)
又、コンピュータ内にそれ以外のバージョンがあった場合は削除してくれます。(52行目)

そして、EV3を起動するとき、一番最初に動くソフトウェアであるブートローダーのU-bootの設定も同時にしてくれます。(55行目)
</details>

## Step4. EV3rtのファイルをダウンロード ⇒ 配置

それでは、EV3rtのソースコードをダウンロードしていきます。

TOPPERS/EV3rtのページから、EV3rtのファイルをダウンロードしましょう。

https://toppers.jp/trac_user/ev3pf/wiki/Download

このページの一番上にある2021年6月25日リリースの**1.1版**のファイルをダウンロードしましょう。
(`ev3rt-1.1-release.zip`というzipファイル)

:::note warn
上記ページでのzipファイルのダウンロードですが、Google Chromeを利用するとダウンロードが出来ません。
よって、Microsoft edge や Firefox などの他のブラウザを利用するようにしてください。
:::

ダウンロードが出来たらzipファイルを展開してください。

![zip_kaitou.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/183170/3bb89f07-247e-20fc-9d07-77c18fbf53dc.png)

zipファイルを開いて、「すべて展開」を押すと展開できます。

展開すると`ev3rt-1.1-release`というフォルダが生成されます。
このフォルダ内に入り、**その中の同じフォルダ名**である`ev3rt-1.1-release`をコピーします。
その後、Cドライブ直下にペーストして移動してください。

#### Cドライブ直下へのアクセス方法

![explorer_c.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/183170/3ad4847c-03ad-92f1-8d49-53537e0cec7e.png)

上の画像のように、赤線で囲った枠の部分に`C:\`と入力してEnterキーを押してください。
これでCドライブ直下に移動することが出来ます。

Cドライブ直下に移動出来たら先ほどコピーしたフォルダを貼り付けてください。

![ev3rt_cdrive.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/183170/9d3a507d-0374-9393-8dc2-b2840de42cec.png)

貼り付けることが出来たら、Ubuntuのターミナルを起動しましょう。
以下のコマンドを入力して、Ubuntu側から`ev3rt-1.1-release`に移動します。

```terminal:Ubuntu
$ cd /mnt/c/ev3rt-1.1-release
```

![ubuntu_cd_ev3rt.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/183170/cd9a3568-9928-f523-de03-6fed23a5089e.png)

`cd`コマンドとは`Current Directry`すなわち、今のディレクトリを移動するコマンドです。
又、WSLのUbuntuには、WindowsのCドライブが **マウント(接続)** されているという状態なので、 `/mnt/c` のようにしてCドライブを指定します。

#### 圧縮フォルダの展開

続いて、そのフォルダ内の`hrp3.tar.xz`を展開します。

```terminal:Ubuntu
$ tar xvf hrp3.tar.xz
```

展開されたファイルがザーーーと流れ、流れが止まってコマンドが打てるようになったら完了です。

### ソースコードの修正

:::note warn
ruby 3.0系以上をインストールしている場合は必ずこの作業を行ってください。
2.7以下の場合はやらなくても大丈夫です。
:::

コンパイルする際のrubyのコードに誤りがあるようで、修正しておかないとruby 3.0系以上でコンパイルで出来なくなるバグが発生します。
これを修正したいと思います。

 [@kuboaki(Kuboaki Shin)](https://qiita.com/kuboaki) 様の下の記事👇の情報を元に修正していきます。

https://qiita.com/kuboaki/items/00ed6c993849d1061c1e#ev3rt%E3%81%AE%E3%82%B3%E3%83%B3%E3%83%95%E3%82%A3%E3%82%AE%E3%83%A5%E3%83%AC%E3%83%BC%E3%82%BF%E3%81%AE%E3%82%B3%E3%83%BC%E3%83%89%E3%82%92%E4%BF%AE%E6%AD%A3%E3%81%99%E3%82%8B2023928%E8%BF%BD%E5%8A%A0

まず、エクスプローラで`C:\ev3rt-1.1-release\hrp3\cfg\pass1.rb`を探して開きます。

![ruby_repair1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/183170/c4428ffd-71c6-deb1-5d8a-18c648a9adbc.png)

`pass1.rb`のファイルを**右クリック**して、 **「プログラムから開く」** を選択しましょう。

![ruby_fileopen.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/183170/8f2940f0-0f1d-e8b4-5533-30fa27104c13.png)

ファイルを開く方法を聞かれるので、「メモ帳」を選択して開きましょう。
(常にこのアプリを使って…はチェックを入れなくて大丈夫です。)

メモ帳が起動したら、 **「編集」⇒「行へ移動」** を選択して、 **`178行目`** を指定してください。

![ruby_fileedit1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/183170/0289c41c-a4b6-e40e-f770-0cf42d8752bc.png)

移動したら、以下の画像の部分を修正します。

![ruby_fileedit2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/183170/ba10a49e-0626-4dcf-25c8-ecf50c48f723.png)

コードを以下のように修正してください。
(`{` `}` 両端の中カッコを取ります。)

```ruby:pass1.rb
# 元のコード
symvalCsv = CSV.open(symvalTableFileName, { skip_blanks: true, skip_lines: /^#/ })

# 修正後のコード
symvalCsv = CSV.open(symvalTableFileName, skip_blanks: true, skip_lines: /^#/ )
```

修正出来たら上書き保存して、メモ帳を閉じてください。

以上にて、環境構築完了です!!
このあと、動作確認を行います。

## Step 5. 動作確認

それでは最後に、プログラムをコンパイル出来るか確認してみましょう。

Ubuntuのターミナルを開き、EV3rtの **ワークスペースフォルダ** `/mnt/c/ev3rt-1.1-release/hrp3/sdk/workspace` に移動します。
この次々回詳しく説明しますが、このフォルダ内にプロジェクトを作製していきます。

```terminal:Ubuntu
$ cd /mnt/c/ev3rt-1.1-release/hrp3/sdk/workspace
```

今回は既に用意されているサンプルプログラムをコンパイルしてみます。
以下のコマンドでコンパイルを行います。

```terminal:Ubuntu
$ make app=helloev3
```

今回は`helloev3`というプログラムをビルドしました。
このサンプルプログラムはev3rtのチュートリアル的なプログラムになっています。
このコマンドを打ち込むことで`workspace`内に`app`というファイルが生成されていれば成功です。

![explorer_app.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/183170/a875b1ac-8e3e-6acd-d856-840a1ccf62ea.png)

以上で、動作確認は完了です!!

# 5. microSDカードの準備

EV3rtをEV3インテリジェントブロックで起動するためには、EV3rtのOSが書き込まれた**microSDカード**をスロットに差し込む必要があります。
そこで、そのmicroSDカードの作成を行い、EV3rtが起動出来るかまで確認したいと思います。

## microSDカードの規格について

EV3rtに使用するmicroSDカードですが、どんなmicroSDでも良いというわけではありません。
以下の記事を参考に、EV3rtに使えるmicroSDカードを探っていきます。

https://www.chihayafuru.jp/etrobo/?p=3207

まずSDカードの規格ごとの対応状況ですが、以下の表のようになっております。

| 規格 | サイズ | 対応状況 |
|:-:|:-:|:-:|
| SD | ~2GB | 非対応 |
| SDHC | 4GB~32GB | 対応 |
| SDXC | 32G~2TB | 非対応 |
| SDUC | 2TB~128TB | 非対応 |

EV3rtには**2GB以下**と**32GB越え**のSDカードの読み書きが出来ないという制約があるため、必然的に **「SDHC」** 規格のmicroSDカードを選択することになります。

SDHC規格であれば容量は特に問いません。
私は8GBのSDHC規格のmicroSDカードを安く入手することが出来たので、それを使用しています。

![IMG_7095.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/183170/1d58e873-92d4-8183-bec4-2b829242b41d.jpeg)

尚、EV3インテリジェントブロックのmicroSDカードスロットはノック機構がないため、一度挿すと取り出すのが困難になります。
画像のように取り出すためのタグのようなものを付けておくことをおすすめします。

## microSDカードのフォーマット

microSDカードを使用する前に、念のためにフォーマットをしておきましょう。

エクスプローラーを起動し、以下の画像のようにSDHCカード部分を右クリックして、フォーマットを選択しましょう。

![explorer_sd.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/183170/ab685bf0-2947-dfb1-945b-0ec4d8e736c1.png)

![format_sd.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/183170/ac183c94-a70a-8ecd-38ec-427392c055a0.png)

「ファイルシステム」が **「FAT32」** になっていることを確認して、下の「開始」を押しましょう。

![format_sd_sucess.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/183170/67832920-b54f-0433-a4c6-2ef9d44202d2.png)


以上で、フォーマットが完了しました。

## microSDカードにファイルをコピー

それでは、フォーマットしたmicroSDカードにEV3rt用のファイルを配置していきます。

始めに、エクスプローラーで `c:\ev3rt-1.1-release\sdcard` にアクセスしてください。

![sdcard_folder.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/183170/543948b5-5038-dc75-dc63-04ea7750ca7e.png)

この`sdcard`のフォルダに、microSDカードへコピーするファイルが置かれています。
これを全て選択して、コピーしてください。

コピー出来たらmicroSDカードの方へ移動して貼り付けてください。

![sdcard_copy.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/183170/c33f623d-f5eb-8c65-8bb9-699cc46f1d47.png)

貼り付けが完了したらmicroSDカードの準備は完了です。

## EV3rtの起動

それでは、microSDカードをEV3インテリジェントブロックに挿し込み、中央ボタンを押して起動してみましょう。

![IMG_7096.GIF](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/183170/e315352d-2774-d264-b7d9-240e57f4ef6c.gif)

![IMG_7098.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/183170/673b82cd-4fd1-b5fd-3f4a-7862a29fd769.jpeg)

このように、EV3rtの起動画面が表示されたら成功です!!
ここまでお疲れ様でした!

# 6. まとめ

今回は開発環境構築編として各種インストール作業を行ってきました。
又最後には実際にEV3rtが起動するかも確認しました。

次回は、プログラム製作をより効率的に行うために、「エディタ」の導入とその設定を行っていきます。
次回も頑張っていきましょう!!

次回: [#2 エディタを使おう(VisualStudio Code)](https://qiita.com/koushiro/items/35f74cce0961fc442b11)