7
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Mindstorms EV3をmrubyで動かす方法(Macで環境構築編)

Last updated at Posted at 2016-09-19

先に「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を作成します。

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

と入力し、設定メニューを出します。
micom_setting.png

Serial port setup
で以下の通りに設定します。

minicom_setting_port.png

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で、以下の通りに設定します。

minicom_setting_modem.png

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キーを押してメニューを出します。(反応しない時は、再度キーを押し直して。)

minicom_menu.png

Send files を選ぶので、sキーを押します。

minicom_zmodem.png
[upload]メニューが出るので、zmodemを上下キーで選択(白黒反転)して、enterキーを押します。

[Select one or more files for upload] というメニューが出ます。

minicom_file_upload.png

これは、[フォルダ名]ファイル名 の一覧になっていて、フォルダが多いと全部は表示されませんが、下キーを押し続けるとスクロールします。
操作は、上下キーで移動、フォルダの選択は スペースキー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の組み立て図も公開されていますので、参加を検討するため等に実際に動かしてみると面白そうです。

7
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?