はじめに
この記事は元ロボコン出場者がクラブの後輩(中高生)向けに記している記事です。
又、2019年に執筆したシリーズの改定版になります。
前シリーズよりわかりやすく、正確にお伝えしたいと思っております。
もしかすると大人にとっては表現が易しすぎる、もしくは生徒には難しすぎるといったことがあるかもしれませんが何卒ご了承ください🙏
それでは、本題に移ります。
EV3rt とは?
まずはじめに、EV3rtを使うにあたりどのようなものか簡単に説明すると…
- TOPPERSが開発した、μITRON 組み込みOS
- LEGO Mindstorms EV3 で使うことが出来る。
- プログラミング言語としてCもしくはC++を用いる
- ETロボコンでは公式環境の一つとして提供されている
今回やること
EV3rtを使い始めるにあたってまず立ちはだかる壁が、開発環境構築です。
プログラミングをするための下準備というわけです。
今回はイチから環境構築の過程を説明したいと思います。
既に終わっている箇所があれば適宜読み飛ばしてください。
環境構築の方法
今回紹介するのはCygwinというツールを使う方法です。
私が現役の時はこの方法が使われていましたが、現在ではレガシーなもの(古い方法)となっております。
新しい方法(WSLを用いるもの)については別の記事で紹介しますので、自分にあった方法で環境構築を進めてください。
EV3rtのバージョンについて
(この項目はわからなければ読み飛ばして頂いて構いません。)
EV3rtには2019年07月9日リリースのβ7.3版まで「HRP2」というカーネルが使われていました。
一方、2020年4月15日リリースの1.0版からは「HRP3」という新しいカーネルが使われています。
このカーネルの変更に伴い、環境構築・プログラム方法に違いがあります。
今回は最新版である2021年6月25日リリースの1.1版、すなわち「HRP3」版を用いていきます。
(β版を使用したい方はこちらの記事で)
環境構築スタート
Step1 Cygwinのインストール
Windowsでプログラムを人間が読める言語から機械語に変換する(このことをコンパイルといいます)ときに必要なツールです。UNIX系OSにおけるターミナルの役割を担います。
ダウンロード
まずはCygwinのサイトからインストーラーをダウンロードします。
リンクを開いた先にあるInstalling Cygwinの項目にあるsetup-x86_64.exe
というところをクリックするとダウンロードできます。
インストールの開始
ダウンロードが完了したら、インストーラーを実行しましょう。
その際に以下のような警告が出てくるかと思います。
今回は問題ありませんので「はい」を選択してください。
起動すると以下のような画面になると思います。
「次へ」を押して次に進みましょう。
この画面では、インストール方法を選択します。
デフォルト通りInstall from Internet
を選択した状態で「次へ」を押して次に進みます。
インストールするディレクトリ(場所)を指定します。
特にこだわりがなければデフォルトのままにしておきます。
もし任意の場所にインストールする場合は、パスにスペースや全角文字が入らないように注意しましょう。(特にOnedrive下にあるドキュメントなどはNG)
確認できたら「次へ」を押して次に進みます。
ダウンロードしたパッケージを置く場所を聞かれます。
先ほど同様、任意の場所に変更しても構いませんが、基本的にはデフォルトをお勧めします。
特に、スペースや全角文字が入るようなパスには置かないようにしましょう。
確認できたら「次へ」を押して次に進みます。
インターネットの接続について聞かれます。
プロキシサーバ等を使用していない場合はDirect Connection
を選択してください。
プロキシを使用している場合はUse System Proxy Settings
を選択してPCの設定を利用するか、Use HTTP/FTP Proxy:
を選択してプロキシの設定を行ってください。
確認できたら「次へ」を押して次に進みます。
ここではどのサーバーからダウンロードするかを選択します。
基本的にどのサーバーを選択しても大丈夫ですが、ドメインが日本のもの、すなわち.jp
で終わるサーバーは日本のサーバーなので信頼度が高いといえます。
今回はhttps://ftp.jaist.ac.jp
というサーバーを選択します。
(ちなみにこれは「北陸先端科学技術大学院大学」のサーバーです。)
確認できたら「次へ」を押して次に進みます。
ここでダウンロードするパッケージを選択します。
上図のように検索ボックスに以下のパッケージ名を入力して探します。
EV3rtの環境に必要なものは以下の5つのパッケージです。
- gcc-core
- make
- diffutils
- perl
- ruby
gcc-coreの選択
説明書きも確認して、正しいものが選択できているか確認してください。
(gcc-coreの説明 : GNU Compiler Collection (C, OpenMP)
)
Newの列のプルダウン(▼ボタン)を押すと、バージョンを選択することが出来ます。
基本的には最新のバージョンを選択すると良いと思います。
同様に残り4つも選択します。再度検索ボックスでパッケージ名を検索して探してください。
makeの選択
(makeの説明 : The GNU version of the 'make' utility
)
diffutilsの選択
(diffutilsの説明 : A GNU collection of diffutilities
)
perlの選択
(perlの説明 : Perl programming language interpreter
)
rubyの選択
(rubyの説明 : Interpreted object-oriented scripting language
)
全て選択出来たら「次へ」を押して次に進みます。
ここも「次へ」を押して次に進みます。
するとダウンロードおよびインストールが始まります。
インストールが完了すると、上のような画面になります。
「完了」を押してセットアップを終了しましょう。
Step2 GCC ARM(GNU Tools for ARM Embedded Processors)のインストール
EV3のマイコンにはARM社のものが使用されています。
近年のスマートフォンなどにも多く使用されているあのARM社です。
このARM社のマイコン用のコンパイラをインストールしていきます。
ダウンロード
以下のサイトにアクセスしてください。
すると過去にリリースされたバージョンが並んでいます。
ここで注意していただきたいのが、バージョンによって動作しないものがあることです。
現在確認できているもので最新のバージョンは6-2017-q1-update
です。
よってこのバージョンのインストーラーをダウンロードしてください。
(ちなみにダウンロードに少し時間がかかります。)
インストールの開始
ダウンロードできたらインストーラーを実行しましょう。
Cygwinの時と同様、警告が出てきますが「はい」を選択してください。
言語選択が出てきますので、そのままJapaneseを選択した状態で「OK」を押してください。
こちらの画面も「次へ」を押して次へ進みましょう。
ライセンス契約書が表示されますので、読まずにしっかり読んで「同意する」を押しましょう。
ちなみに全部英文です。(ガンバレ)
インストールする場所を選択します。
特にこだわりがなければデフォルトのままの状態で「インストール」を押してください。
するとインストールが始まります。
インストールが完了すると、上のような画面になります。
ここで重要なのが、必ずAdd path to environment variable
にチェックを入れることです。
これを忘れると正しく動作しなくなります。
(ここでしていることは環境変数にパスを通すという作業です。)
チェックを入れた状態で「完了」を押してください。
動作チェック
ここまででCygwinとGNU Toolsのインストールが完了しましたが、正しくインストールできているか、確認してみましょう。
まずはCygwinを起動します。
このような画面が表示されます。ここにUNIXコマンドを打ち込んでいきます。
(UNIXコマンドについてはこの記事の一番最後に少し解説しています。)
ここに以下のコマンドを一行ずつ順番に入力していってください。
なお、コピペする際、CygwinのペーストのショートカットキーはCtrl + V
ではなくShift + Insert
なのでご注意を。
$ gcc -v
$ make -v
$ diff -v
$ perl -v
$ ruby -v
$ arm-none-eabi-gcc -v
すると以下のようにそれぞれのバージョンが表示されるはずです。
それぞれ打ち込んだコマンドを青線、バージョンが書かれている部分を赤線で表しています。
全てのパッケージがインストールされていることを確認してください。
もしインストールされていなかった場合は上記の手順をもう一度行ってインストールをやり直してください。
Step3 U-bootのmkimage
こちらはEV3が起動するときに必要なブートローダのファイルです。
ダウンロード
mkimageのバイナリファイルをダウンロードします。
こちらのサイトにアクセスしてください。
(EV3rtのWikiにある http://www.trimslice.com/download/tools/Mkimage.tar.gz はリンクが切れていますのでご注意ください。)
サイトにアクセスした後、上の画像のように赤線の部分をクリックしてmkimage.tar.gz
という圧縮ファイルをダウンロードしてください。
解凍
ダウンロードしたMkimage.tar.gz
というファイルのプロパティを開いてください。
(ファイルの上で右クリックを押し、「プロパティ」を選択)
すると以下のようなウィンドウが表示されます。
この赤線で引かれた部分をコピーしてください。ここが、Mkimage.tar.gz
が保存されている場所になります。
ここからはCygwinを使います。Cygwinを起動して、以下のコマンドを打ち込んでください。
$ cd C:/Users/■■■■■/Downloads
まずcdとは、指定した先のフォルダに移動するというコマンドです。
そしてその指定するフォルダというのが後ろのC:/Users/■■■■■/Downloads
です。
つまりここに、先ほどコピーしたmkimageが保存されている場所に移動するということです。
ただし!! 貼り付けたときにバックスラッシュが用いられているので**普通のスラッシュ(/)**に書き換えてください。バックスラッシュのままだとエラーが起きます。
下の画像の赤線で示したのがバックスラッシュ、青線で示したのが普通のスラッシュです。
正しく打ち込むことが出来れば長い赤線で示したように黄色の文字で場所が表示されるはずです。
次に、解凍のコマンドを打ちます。
$ tar zxvf Mkimage.tar.gz
これで中身を解凍することが出来ました。
ファイルのコピー
最後に、このファイルを「/usr/local/bin」にコピーします。
これもCygwinで行います。以下のコマンドを入力してください。
$ cp mkimage.exe /usr/local/bin
Step4 EV3rtのファイルをダウンロード
TOPPERS/EV3rtのページから、EV3rtのファイルをダウンロードしましょう。
EV3rt ダウンロードページ
このページの一番上にある2021年6月25日リリースの1.1版のファイルをダウンロードしましょう。
(ev3rt-1.1-release.zip
というzipファイル)
ダウンロードが出来たらzipファイルを解凍してください。
zipファイルを開いて、「すべて展開」を押すと解凍できます。
解凍するとev3rt-1.1-release
というフォルダが生成されます。
このフォルダ内に入り、その中の同じフォルダ名であるev3rt-1.1-release
をコピーします。
その後、Cドライブ直下にペーストして移動してください。
Cドライブへのアクセス方法
上の画像のように、赤線で囲った枠の部分にC:\
と入力してEnterキーを押してください。
これでCドライブ直下に移動することが出来ます。
Cドライブ直下に移動出来たら先ほどコピーしたフォルダを貼り付けてください。
ここからはCygwinを使います。
起動したら以下のコマンドでCドライブ直下にあるev3rt-1.1-release
に移動します。
$ cd c://ev3rt-1.1-release
続いてそのフォルダ内のhrp3.tar.xz
を解凍します。
$ tar xvf hrp3.tar.xz
解凍されたファイルが一覧で表示され、コマンドが打てるようになったら完了です。
以上にて、環境構築完了です!!
動作確認
ここまでで全てのセットアップが完了したので、実際にプログラムをコンパイルすることが出来るか試してみましょう。
Cygwinを起動し、以下のコマンドを入力します。
$ cd C:/ev3rt-1.1-release/hrp3/sdk/workspace
移動した先のフォルダは今後のプログラミングでも用いるワークスペースフォルダです。
このフォルダ内にプログラム作成します。
ここでは既に用意されているサンプルプログラムをビルドしてみます。
以下のコマンドでコンパイルを行います。
$ make app=helloev3
今回はworkspace
内のhelloev3
というフォルダをビルドしました。
このサンプルプログラムはev3rtのチュートリアル的なプログラムになっています。
このコマンドを打ち込むことでworkspace
内にapp
というファイルが生成されていれば成功です。
これで動作確認も完了です!!
最後に
今回はCygwinを用いる方法でEV3rtの環境構築を進めました。
次回は冒頭にもご紹介したWSLを用いる方法で環境構築してみたいと思います。
当然ながら、今回ご紹介した方法で環境構築出来た場合は次回の作業は必要ありません。
次々回ご紹介するEV3での実行方法に進んでください。
【おまけ】UNIXコマンドについて
環境構築やプログラム作成の際に、Cygwinを用いるのですが、このときに使うのがUNIXコマンドです。
cdやmv、mkdirなどといったよく使うコマンドについては理解しておきましょう。
「UNIXコマンド 〇〇」といった形でググるとすぐ出てくると思います。
また、Qiitaの中にもコマンド解説の記事は数多く存在します。