先に「Mindstorms EV3をRubyで動かす方法(ev3dev OS)」を投稿しました。
EV3をmrubyで動かすことについては、TOPPERSから「mruby on EV3RT + TECS」が無償で提供されています。
これについては、ETロボコン2016で公式開発環境に認定されたり、Afrelから「教育版EV3 mrubyプログラミングセットA」、「教育版EV3 mrubyプログラミングガイド」が発売されたりして情報が増えてきました。
ただし、いずれもWindowsでの情報なので、ここではまだ情報の少ないMacでmrubyの環境構築をする方法を投稿します。
環境構築にあたっては、まずTOPPERSの「mruby on EV3RT + TECS」公式サイトからパッケージをダウンロードして展開した中にある「doc/mruby_on_ev3rt+tecs_build.pdf」が公式情報になります。(ただし、Windowsでの環境構築法)
なお、大まかな手順としては、「Mac OS X でETロボコンに出よう!(EV3RT 環境構築編) -yamanekko - Qiita 」と同じです。
環境;
・LEGO Mindstorms EV3
・OS X El Capitan (10.11.6)、macOS Sierra (10.12.2)
・mruby-on-ev3rt+tecs beta1.0.1 (2016-05-27)
・microSDカード(ただし、4~32GBの microSDHC規格)
Macでの環境構築については、以下のサイトが参考になりました。
・Mac OS X でETロボコンに出よう!(EV3RT 環境構築編) -yamanekko - Qiita
・開発プラットフォームEV3RTのダウンロード&インストール - 開発環境構築のマニュアル - TOPPERS/EV3RT - DevEnv – EV3 Platform
・EV3RTのコンフィギュレータ(cfg)のインストール - OS Xでの環境構築方法 - TOPPERS/EV3RT - DevEnv – EV3 Platform
・mruby on EV3RT + tecsでEV3wayを動かすまでの記録 - hilohiro - Qiita
・Mac OS X でETロボコンに出よう!(Bluetooth編) - yamanekko - Qiita
1. 開発プラットフォーム「mruby on EV3RT + TECS」のダウンロード&インストール
ダウンロードページ
https://www.toppers.jp/tecs.html#mruby_ev3rt
から最新版の「mruby on EV3RT + TECS」をダウンロードします。
(2016.9.19現在、最新版はbeta1.0.1 (2016-05-27)です。)
ダウンロードしたmruby-on-ev3rt+tecs_package-beta1.0.1.tar.gzをダブルクリックして解凍します。解凍したフォルダ名「mruby-on-ev3rt+tecs_package-beta1.0.1」が長いので、「ev3rt_mruby」などに変更することにします。(しなくてもいいです)
「mruby」フォルダを好きな場所(ディレクトリ)に移動します。
ここでは、ユーザ名をuser0とした時のホームディレクトリ(/Users/user0/ あるいは ~/で表されるフォルダ)の直下に置くことにします。
2. 開発環境(クロスコンパイラ,ツール)のインストール
OS Xでの環境構築方法 - DevEnvMac – EV3 Platform
を参考に行います。
※ macOS Sierra のターミナルの操作で Permission denied
とパーミッションのエラーが出る場合は、コマンドの前に sudo
を付けて実行してみてください。
2-1. gccのインストール
Macで動くgccのmakeコマンドが必要なので
ターミナルで
make -v
と入力し、バージョン番号が表示されれば、すでにインストールされています。
それ以外のメッセージが出た場合、Command Line Tools for Xcodeをインストールする必要があります。
メッセージパネルに出ている「Xcodeを入手」ボタンを押すか、App StoreからXcodeを入手します。
Xcodeはサイズが大きいのでCommand Line Toolsだけをインストールしたい場合は、ターミナルで
xcode-select --install
と入力します。
2-2. mkimageのインストール
1) ダウンロード
http://dev.toppers.jp/trac_user/ev3pf/attachment/wiki/DevEnvMac/mkimage
からダウンロードします。
パスの通ったディレクトリに置きます。
(ここでは /usr/local/bin/)
cd ~/Downloads/
mv mkimage /usr/local/bin/
(または cp mkimage /usr/local/bin/)
2) パスが通ったディレクトリかどうか確認
ターミナルで
echo $PATH
と入力し
/Users/user0/.rbenv/shims:/usr/local/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin
表示された : 区切りのパス名の中に/usr/local/bin/があればバスが通っています。(パスが通ってなかった場合の対処法は後述)
3) 実行権限の確認
mkimageに実行権限が付いているか確認します。
ls -l /usr/local/bin/mkimage
と入力し
-rwxr-xr-x@ 1 user0 staff 18108 12 21 2014 /usr/local/bin/mkimage
実行権限(x)が付いていなければchmodで変更します。
chmod 755 /usr/local/bin/mkimage
2-3. GNUツールチェーンのインストール
1) ダウンロード
Mac用バイナリを GCC ARMのサイトからダウンロードします。
doc/mruby_on_ev3rt+tecs_build.pdf に載っているバージョン:
gcc-arm-none-eabi-4_8-2014q3-20140805-mac.tar.bz2
を選びます。
(EV3RTの動作確認済バージョンは、gcc-arm-none-eabi-5_4-2016q2-20160622-mac.tar.bz2 ですが、これだとエラーが出ることがあります。)
ダブルクリックして解凍し、適当なディレクトリに置きます。
(ここでは/usr/local/)
ターミナルで
cd ~/Downloads
mv gcc-arm-none-eabi-4_8-2014q3 /usr/local/
2) パスを通す
bashの場合、ターミナルで以下のコマンドを入力して.bash_profileにパスの追加をします。
echo "export PATH=/usr/local/gcc-arm-none-eabi-4_8-2014q3/bin:\$PATH" >> ~/.bash_profile
設定を反映させます。(またはターミナルを再起動)
source ~/.bash_profile
2-4. コンフィギュレータ(cfg)のインストール
http://toppers.jp/cfg-download.html
からMac版バイナリファイル(コンフィギュレータ Release 1.9.5(64bit MacOSX用バイナリ))をダウンロードします。
ダウンロードしたcfg-osx-static-1_9_5.tar.gzをダブルクリックして解凍します。
拡張子のない「cfg」というファイルができます。このコンフィギュレータファイルを ~/ev3rt_mruby/hr-tecs/cfg/cfg/
の中に置きます。(Finderでドラッグアンドドロップ)
※「cfg.exe」とか「cfg.cpp」等々が入っているフォルダ。cfgが繰り返されているので注意!
3. mrubyのビルド
ターミナルで
cd ~/ev3rt_mruby/mruby
make
と2行入力し
================================================
Config Name: ARM
Output Directory: build/ARM
Included Gems:
mruby-print - standard print/puts/p
mruby-toplevel-ext - toplevel object (main) methods extension
mruby-compiler - mruby compiler library
================================================
と表示されれば成功です。
4. microSDカードの準備
mruby on EV3RT + TECSは、EV3に挿入したmicroSDカードから起動して、LEGO社のEV3標準ファームウェアは一切使わずに(変更も加えずに)動作します。
4-1. フォーマット
microSDカードは念のためフォーマットします。
SDアソシエーションから配布されているSDカードフォーマッター Mac OS用 - SD Associationをダウンロードし、インストールします。
MacにmicroSDカードを挿入して(SDカードスロットがない場合はアダプタを介して)、SDカードフォーマッターを起動することでフォーマットできます。
4-2. ドライブ名の確認
フォーマットが済んだmicroSDカードの名前(ドライブ名)は 後で必要になるので控えておきます。
ここでは、SD_CARD
とします。
5. サンプルアプリケーションプログラムの作成
エディタで hello_sample.rbを作成します。
include EV3RT_TECS
begin
LCD.puts("Hello World!")
rescue => e
LCD.error_puts e
end
~/ev3rt_mruby/hr-tecs/workspace/mruby_appディレクトリ内に保存します。
(battery_sample.rb などのサンプルプログラムがすでに入っています。)
6. アプリケーションプログラムのビルドと実行
ビルド・実行方法は2つあります。
A. スタンドアローン形式(SD)
mrubyプラットフォームとアプリケーションプログラムを合わせたブートイメージ(uImage)を作成し、microSDカードにコピーし、EV3に挿して起動します。
アプリケーションプログラム込みで起動するので安定した実行ができます。
ただし、保存・実行できるアプリケーションプログラムは1つだけです。また、アプリケーションプログラムの書き換えには、毎回microSDカードをEV3から抜いてMacに挿し直して書き込む必要があります。
B. 動的ローディング形式(Bluetooth)
mrubyプラットフォームだけのブートイメージ(uImage)を作成し、microSDカードにコピーし、EV3に挿して起動します。
起動後に実行したいアプリケーションプログラムをBluetooth通信で転送し実行します。アプリケーションプログラムの書き換えに、microSDカードを抜く必要はありません。ただし、アプリケーションプログラムは保存されないので、毎回転送して実行する必要があります。
※ 付属の公式ビルド手順(/doc/mruby_on_ev3rt+tecs_build.pdf)では、スタンドアローン形式をSD、動的ローディング形式をBlutoothと呼んでいます。
6A. スタンドアローン形式(SD)でのビルドと実行
6A-1. Makefileを編集
ev3rt_mruby/hr-tecs/workspace/sdディレクトリにある Makefile
をエディタで開いて編集します。
※ “Makefile”は、開発元が未確認のため開けません。
などとセキュリティ警告が出る場合の対処法;
・Makefileを選んで、コンテキストメニュー(control+クリック)を出して、「このアプリケーションで開く」>「その他」で好きなエディタを選んで、パネル下の「常にこのアプリケーションで開く」にチェックを入れます。「開く」をクリックすると、また “Makefile”は、開発元が未確認のため開けません。
と表示されますが、もう一度繰り返すと「このアプリケーションで開く」で先ほど指定したエディタが表示されるので選ぶと、“Makefile”は、開発元が未確認です。開いてよろしいですか?
となって、「開く」ボタンが押せるようになります。
あるいは、
・「システム環境設定」>「セキュリティとプライバシー」>「一般」>「ダウンロードしたアプリケーションの実行許可」で「すべてのアプリケーションを許可」にチェックを入れます。
3カ所(Mac用の設定)+1カ所(アプリケーションプログラムの指定)を書き換えます。
○書き換え前(Mac用の設定3カ所);
・57行目:
# SDのドライブ文字を指定
SD_DIR = /cygdrive/h/
・152行目:
#mkimageの設定
#/usr/bin/などパスが通っている場合
#MKIMAGE = mkimage
#WINDOWSの場合
MKIMAGE = $(SRCDIR)/../bin/mkimage.exe
・159行目:
#
# TECSインタフェースジェネレータ関係の定義
# Windows用
TECSGEN = $(SRCDIR)/tecsgen/tecsgen/tecsgen.exe -k euc --cpp="$(GCC_TARGET_PREFIX)gcc -E"
# Mac, Linux用
#tecsgen.rb (ruby + racc)を利用する場合は下記のRUBYLIBとTECSGENの定義を利用する
# RUBYLIB = $(SRCDIR)/tecsgen/tecsgen
# TECSGEN =$(RUBY) $(SRCDIR)/tecsgen/tecsgen/tecsgen.rb -L $(RUBYLIB) -k euc --cpp="$(GCC_TARGET_PREFIX)gcc -E"
○書き換え後(Mac用の設定3カ所)
・57行目:(microSDHCカードのドライブ名をSD_CARD
とする)
# SDのドライブ文字を指定
SD_DIR = /Volumes/SD_CARD
・152行目:
#mkimageの設定
#/usr/bin/などパスが通っている場合
MKIMAGE = mkimage
#WINDOWSの場合
#MKIMAGE = $(SRCDIR)/../bin/mkimage.exe
・159行目:
#
# TECSインタフェースジェネレータ関係の定義
# Windows用
#TECSGEN = $(SRCDIR)/tecsgen/tecsgen/tecsgen.exe -k euc --cpp="$(GCC_TARGET_PREFIX)gcc -E"
# Mac, Linux用
#tecsgen.rb (ruby + racc)を利用する場合は下記のRUBYLIBとTECSGENの定義を利用する
RUBYLIB = $(SRCDIR)/tecsgen/tecsgen
TECSGEN =$(RUBY) $(SRCDIR)/tecsgen/tecsgen/tecsgen.rb -L $(RUBYLIB) -k euc --cpp="$(GCC_TARGET_PREFIX)gcc -E"
○書き換え前(アプリケーションプログラムの指定)
・66行目:
# mrubyのアプリケーションファイル名
#APP_NAME = battery_sample.rb
APP_NAME = button_sample.rb
○書き換え後(アプリケーションプログラム hello_sample.rb
を指定する)
・66行目:
# mrubyのアプリケーションファイル名
APP_NAME = hello_sample.rb
#APP_NAME = battery_sample.rb
#APP_NAME = button_sample.rb
6A-2. ビルド:make tecs
ターミナルで
cd ~/ev3rt_mruby/hr-tecs/workspace/sd
make tecs
と入力し
===== end check regions HRP2Kernel =====
===== end tKernel plugin =====
touch tecs.timestamp
と tecs.timestamp
が出力されれば成功!
※ make tecs
は一度だけ実行すれば、2回目以降は実行する必要はありません。
6A-3 ビルド:make depend
ファイルの依存関係を抽出します。
※ mrubyのみをプログラミングするなど、C言語を修正しない場合は、“make depend は実行する必要はない”
そうです。次のバージョンでは、マニュアルの make dependの記述は削除されるようです。
もし、実行する場合は、
/hr-tecs/target/ev3_gcc/drivers/linux/include/linux/compiler-gcc.h
の47行目をコメントアウトします。
//# define inline inline __attribute__((always_inline))
ターミナルで
cd ~/ev3rt_mruby/hr-tecs/workspace/sd
make depend
と入力すると
if ! [ -f Makefile.depend ]; then \
rm -f kernel_cfg.timestamp kernel_cfg.h kernel_cfg.c kernel_mem2.c ; \
rm -f cfg1_out.c cfg1_out.o cfg1_out cfg1_out.syms cfg1_out.srec; \
rm -f makeoffset.s offset.h; \
fi
rm -f Makefile.depend
CC cfg1_out.c
LINK cfg1_out
NM cfg1_out.syms
OBJCOPY cfg1_out.srec
CFG[2] kernel_cfg.timestamp
touch -r kernel_cfg.c kernel_cfg.timestamp
CFG[3] offset.h
Generating Makefile.depend.
と出力されます。
※ compiler-gcc.h を修正しないと、Macではmake dependでエラーが出ます。
(make depend を実行しなくても、サンプルプログラムの実行には問題ありません。)
→エラーログと対処法の経緯;mruby-on-ev3rt+tecs beta1.0.1 (2016-05-27) のSDでのコンパイルのエラーログ(Mac) - noanoa07 - Gist
6A-4 ビルド:make
MacにmicroSDカードを挿入しておきます。
ターミナルで
cd ~/ev3rt_mruby/hr-tecs/workspace/sd
make
と入力し
chmod +x uImage
cp uImage /Volumes/SD_CARD
と表示され、microSDカードにuImage
ファイルが出来ていれば成功です。
6A-5. 実行
EV3にmicroSDカードを挿入し、中央のボタンを押して電源を入れます。
EV3の液晶画面下に Run App >
と表示されたら、中央のボタンを押します。
アプリケーションプログラム hello_sample.rb(のコンパイルされたhello_sample.mrb)が実行されて、液晶画面に「Hello World!」と表示されればOKです!
終了方法は、左上のボタンを長押しします。(起動画面に戻ります。)
EV3の電源を切るには、起動画面で右ボタンを押して液晶画面下が < Shutdowon
と表示されたら、中央のボタンを押します。
6B. 動的ローディング形式(Bluetooth)でのビルドと実行
6B-1. ブートイメージ(uImage)の準備
1) Makefileを編集
ev3rt_mruby/hr-tecs/workspace/bluetoothディレクトリにある Makefile
をエディタで開いて編集します。
※ “Makefile”は、開発元が未確認のため開けません。
などとセキュリティ警告が出る場合の対処法については上記参照。
3カ所(Mac用の設定)+1カ所(アプリケーションプログラムの指定)を書き換えます。
○書き換え前(Mac用の設定3カ所);
・57行目:
# SDのドライブ文字を指定
SD_DIR = /cygdrive/e/
・131行目:
#mkimageの設定
#/usr/bin/などパスが通っている場合
#MKIMAGE = mkimage
#WINDOWSの場合
MKIMAGE = $(SRCDIR)/../bin/mkimage.exe
・138行目:
#
# TECSインタフェースジェネレータ関係の定義
# Windows用
TECSGEN = $(SRCDIR)/tecsgen/tecsgen/tecsgen.exe -k euc --cpp="$(GCC_TARGET_PREFIX)gcc -E"
# Mac, Linux用
#tecsgen.rb (ruby + racc)を利用する場合は下記のRUBYLIBとTECSGENの定義を利用する
# RUBYLIB = $(SRCDIR)/tecsgen/tecsgen
# TECSGEN =$(RUBY) $(SRCDIR)/tecsgen/tecsgen/tecsgen.rb -L $(RUBYLIB) -k euc --cpp="$(GCC_TARGET_PREFIX)gcc -E"
○書き換え後(Mac用の設定3カ所)
・57行目:(microSDHCカードのドライブ名をSD_CARD
とする)
# SDのドライブ文字を指定
SD_DIR = /Volumes/SD_CARD
・131行目:
#mkimageの設定
#/usr/bin/などパスが通っている場合
MKIMAGE = mkimage
#WINDOWSの場合
#MKIMAGE = $(SRCDIR)/../bin/mkimage.exe
・138行目:
#
# TECSインタフェースジェネレータ関係の定義
# Windows用
#TECSGEN = $(SRCDIR)/tecsgen/tecsgen/tecsgen.exe -k euc --cpp="$(GCC_TARGET_PREFIX)gcc -E"
# Mac, Linux用
#tecsgen.rb (ruby + racc)を利用する場合は下記のRUBYLIBとTECSGENの定義を利用する
RUBYLIB = $(SRCDIR)/tecsgen/tecsgen
TECSGEN =$(RUBY) $(SRCDIR)/tecsgen/tecsgen/tecsgen.rb -L $(RUBYLIB) -k euc --cpp="$(GCC_TARGET_PREFIX)gcc -E"
2) ビルド:make tecs
ターミナルで
cd ~/ev3rt_mruby/hr-tecs/workspace/bluetooth
make tecs
と入力し
===== end check regions HRP2Kernel =====
===== end tKernel plugin =====
touch tecs.timestamp
と tecs.timestamp
が出力されれば成功!
※ make tecs
は一度だけ実行すれば、ブートイメージ(uImage)の2回目以降の作成時には実行する必要はありません。
3) ビルド:make
MacにmicroSDカードを挿入しておきます。
ターミナルで
cd ~/ev3rt_mruby/hr-tecs/workspace/bluetooth
make
と入力し
chmod +x uImage
cp uImage /Volumes/SD_CARD
と表示され、microSDカードにuImage
ファイルが出来ていれば成功です。
6B-2. アプリケーションプログラムの準備
1) Makefileを編集
ev3rt_mruby/hr-tecs/workspace/mruby_appディレクトリにある Makefile
をエディタで開いて編集します。
※ “Makefile”は、開発元が未確認のため開けません。
などとセキュリティ警告が出る場合の対処法については上記参照。
○書き換え前(アプリケーションプログラムの指定)
・7行目:
# mrubyのアプリケーションファイル名
#APP_NAME = battery_sample.rb
APP_NAME = button_sample.rb
○書き換え後(アプリケーションプログラム hello_sample.rb
を指定)
・7行目:
# mrubyのアプリケーションファイル名
APP_NAME = hello_sample.rb
#APP_NAME = battery_sample.rb
#APP_NAME = button_sample.rb
2) ビルド(mrubyバイトコード):make
ターミナルで
cd ~/ev3rt_mruby/hr-tecs/workspace/mruby_app
make
と入力し
echo ../mruby_app/hello_sample.mrb
../mruby_app/hello_sample.mrb
../../../mruby/bin/mrbc -o../mruby_app/hello_sample.mrb ../mruby_app/hello_sample.rb
と表示され、ev3rt_mruby/hr-tecs/workspace/mruby_appディレクトリに、ソースコード(ここではhello_sample.rb
)と同名のmrubyバイトコード(ここではhello_sample.mrb
)が出来ていれば成功です。
6B-3. uImageの起動
EV3にmicroSDカードを挿入し、中央の決定ボタンを押して電源を入れます。
EV3の液晶画面の上に EV3RT Console
、下に Run App >
と表示されたら、起動しています。
6B-4. アプリケーションプログラムの転送と実行
EV3とMacをBluetooth接続し、アプリケーションプログラムを転送します。
手順は以下のサイトを参照してください。
・Mac OS X でETロボコンに出よう!(Bluetooth編) - yamanekko - Qiita
1) minicomのインストール
Windows用のTeraTermの代わりに、Macではminicomを使います。ZMODEM転送に対応するためのlrzszとともにインストールします。
# Homebrewの場合
brew install lrzsz
brew install minicom
2) minicomの設定
ターミナルで
minicom -s
Serial port setup
で以下の通りに設定します。
A - Serial Device : /dev/tty.MindstormsEV3-SerialPor
E - Bps/Par/Bits 115200 8N1
F - Hardware Flow Control : No
G - Software Flow Control : No
※ SerialPort ではなく、SerialPor なのに注意!
次に、Modem and dialing
で、以下の通りに設定します。
enter
キーで最初の設定メニューに戻ります。
Save setup as dfl
で変更した設定をデフォルトに保存し、Exit form Minicom
またはExit
で終了します。
参考;
→ネイティブLinuxプログラミング方法 (Ver0.3) - 付属A.minicomの設定 - アフレル
3) Bluetooth接続の設定(ペアリング)
EV3が起動した状態で、Macの「システム環境設定」>「Bluetooth」を開きます。しばらく待って「デバイス」欄に Mindstorms EV3
が表示されたら、「ペアリング」ボタンを押します。
⚠️ペアリング失敗
→ ⚠️接続済み
→(しばらくすると) ⚠️未接続
と表示が変わって行きますが、次に進みます。
4) minicomの起動
まずEV3で、液晶画面下に Run App >
と表示されている状態で、中央のボタンを押します。
Receive bytecode
Port: Bluetooth
Protocol: ZMODEM
という画面になり、受信待ち状態になります。
Macのターミナルで、minicomを起動します。
minicom
と入力し、
Welcome to minicom 2.7
(中略)
/ __/ | / /_ // _ /_ __/
/ _/ | |/ //_ </ , _/ / /
/___/ |___/____/_/|_| /_/
=============================
Powered by TOPPERS/HRP2 RTOS
mruby on ev3rt+tecs alpha1.0
Initialization is completed..
Start to receive an application file using ZMODEM protocol.
RFCOMM channel 1 requested for 04:0C:CE:D9:FE:2D
と表示されれば接続されています。
※ エラー表示;
minicom: cannot open /dev/tty.MindstormsEV3-SerialPor: Resource busy
上記のようなエラー表示が出た場合は;
Macの「システム環境設定」>「Bluetooth」の「デバイス」欄に表示されている Mindstorms EV3
をダブルクリックします。
すると、再び ⚠️ペアリング失敗
→ ⚠️接続済み
になるので、もう一度ターミナルでminicomを起動してみてください。
5) アプリケーションプログラムの転送
minicomの起動しているターミナルで、Esc
キーを押しながら z
キーを押してメニューを出します。(反応しない時は、再度キーを押し直して。)
Send files
を選ぶので、s
キーを押します。
[upload]
メニューが出るので、zmodem
を上下キーで選択(白黒反転)して、enter
キーを押します。
[Select one or more files for upload] というメニューが出ます。
これは、[フォルダ名]
と ファイル名
の一覧になっていて、フォルダが多いと全部は表示されませんが、下キーを押し続けるとスクロールします。
操作は、上下キーで移動、フォルダの選択は スペース
キー2回連打、ファイルの選択はスペース
キー、下の [Okey]
などのメニューは左右キーで移動して、enter
キーで確定します。
アプリケーションプログラムのある /ev3rt_mruby/hr-tecs/workspace/mruby_app ディレクトリ(フォルダ)まで移動して、.mrbファイルのhello_sample.mrb
(元のhello_sample.rb
と間違えないように!)をスペース
キーで選択(白黒反転)し、下の[Okey]
が選択されている状態で、enter
キーを押します。
enter
キーが押されると、ファイルが転送されます。
転送中はダイアログが出ますが、終了すると消えます。
※ minicomの終了方法;
Esc
キーを押しながら z
キーを押してメニューを出します。
終了は、x
キー(eXit and reset)または、q
キー(Quit with no reset)です。
6) アプリケーションプログラムの実行
EV3にアプリケーションプログラムが転送されると、自動的に実行されます。EV3の液晶画面に「Hello World!」と表示されればOKです!
起動画面に戻るには、左上キーを長押しします。(液晶画面下に Run App >
と表示されます。)
再びプログラムを実行するには、Run App >
と表示された状態で中央のボタンを押し、
Receive bytecode
Port: Bluetooth
Protocol: ZMODEM
再度受信待ち状態にして、5) に戻ってminicomから再びプログラムを転送します。
(現状では、EV3側にアプリケーションプログラムは保存されないようです。)
電源を切るには、右ボタンを押して液晶画面下が < Shutdowon
と表示されたら、中央のボタンを押します。
7. サンプルプログラム
/hr-tecs/workspace/mruby_app ディレクトリには、サンプルプログラムが入っています。
motor_sample2.rb
battery_sample.rb
button_sample.rb
color_sample.rb
color_sample2.rb
ev3way_sample.rb
gyro_sample.rb
lcd_sample.rb
lcd_sample2.rb
lcd_sample3.rb
led_sample.rb
motor_sample.rb
rtos_sample.rb
speaker_sample.rb
speaker_sample2.rb
touch_sample.rb
ultrasonic_sample.rb
また、/doc/mruby_sample.pdf がそのサンプルプログラムの解説、/doc/EV3RT_mruby_API_Reference.pdf が APIリファレンスマニュアルになっています。
これらサンプルプログラムを使って動作確認すると良いでしょう。
さらに、ev3way_sample.rb はETロボコン用のサンプルプログラムで、2輪で倒立制御しながらライントレースを行うというかなり高度なものです。ETロボコン EV3開発環境構築ガイドに、ロボットEV3way-ETの組み立て図も公開されていますので、参加を検討するため等に実際に動かしてみると面白そうです。