LoginSignup
2
1

More than 5 years have passed since last update.

GR-PEACHでmrubyを動かす

Last updated at Posted at 2018-01-18

本記事では,mruby on GR-PEACH+TECSについて紹介します.

はじめに

mruby on GR-PEACH+TECSとは,mruby (軽量Ruby)を使って,ルネサス社製マイコンGR-PEACHを動かすためのプラットフォームです.
TECS (TOPPERS Embedded Component System) と呼ばれるコンポーネントシステムによって,コンポーネントベースで開発されており,mrubyプログラムからRTOS(TOPPERS/ASP3)の機能を呼び出すことができるように設計されています.

ETロボコンで利用されているプラットフォーム「mruby on ev3rt+tecs」と同じ仕組み・構造で設計されているので,利用したことがある方はぜひ試してみてください.

準備

まず,mruby_on_GR-PEACH-TECS_package-alpha1.0.0.tar.gzをダウンロードしましょう.
Windows環境での紹介になります.
以下のものをインストールしてください.

  • Cygwin

    • Ruby
    • GNU Make
    • bison
  • GNUARM-NONE v16.01 Windows Toolchain (ELF)

    • クロスコンパイラ
    • PATHを通しておいてください.(arm-none-eabi-gcc等が実行できる状態)
  • Tera Term

    • シリアルで文字を出力する場合に使用します.

使用するハードウェア

  • GR-PEACH
    • Normal版とFull版があります.
    • EthernetのLANコネクタやArduino UNO互換ピンが実装されているFull版がおすすめです.

GR-PEACH Full版
IMG_5728.JPG

ビルド

mrubyのビルド

まず,mrubyのビルドを行います.

$ cd ~/mruby_on_GR-PEACH-TECS/mruby-1.3.0
$ make

バイナリの作成

mrubyのビルドが完了したら,プラットフォーム部分のビルドを行います.

$ cd ~/mruby_on_GR-PEACH-TECS/asp3/workspace/build  ( ../asp3/workspace/build でも可)
$ make

image

このような画面が表示されて,asp.binというバイナリファイルが生成されたらビルド成功です.

バイナリのコピー・GR-PEACHの起動

出来上がったバイナリをGR-PEACHにコピーします.

PCとGR-PEACHをUSBケーブルで接続すると, MBED というドライブが立ち上がります.
エクスプローラーを開いてドラッグ&ドロップしてコピーしてください.

image image

また,Cygwin上のコマンドでコピーする場合は,以下のコマンドを叩いてください.
[注意]Cygwinの cp コマンドで上手くいかないことがあります.
shell-session
$ cp asp.bin /cygdrive/d/ (自環境でのMBEDドライブ名を指定してください)

コピーが完了したら,GR-PEACHを起動します.

GR-PEACHの電源ボタンを押すと,プログラムが実行されます.
(緑色に点灯しているLEDの上の白いボタン)
IMG_5730.jpg

デフォルトのアプリケーションは,led_sample.rb が指定されています.

アプリケーションの開発方法

アプリケーションファイルの指定

asp3/workspace/build の VM1.cdl にてアプリケーションを指定しています.
アプリケーションを変更する場合は,$(MRUBY_APP_DIR)/led_sample.rb の行を,任意のアプリケーション名に修正し, make を実行してください.

例えば,$(MRUBY_APP_DIR)/rtos_sample.rb とすると,rtos_sample.rb が実行されます.

VM1.cdl
import(<bridge.cdl>);

cell nMruby::tMruby Mruby {
    mrubyFile =
        "$(MRUBY_LIB_DIR)/RTOS.rb "
        "$(MRUBY_LIB_DIR)/LED.rb "
        "$(MRUBY_APP_DIR)/rtos_sample.rb";    (修正後) 
    cInit = VM_TECSInitializer.eInitialize;
    cSerialPort = SerialPort1.eSerialPort;
};

サンプルアプリケーションは,asp3/workspace/mruby_app に入っています.
(alpha-1.0.0 では,led_sample.rb と rtos_sample.rb の2つです)

自分でアプリケーションを作成する場合は,mruby_app内に mysample.rb というようにファイルを作成し,
上記のように VM1.cdl を編集することでビルドできます.

シリアル出力

  • p
  • puts
  • print というメソッドを使うと,シリアルで文字出力を行うことができます. (デバッグ等に便利です!) ここでは Tera Term を利用しています.

PCとGR-PEACHを接続した状態で,Tera Term を起動し,下のシリアルを選択して mbed (GR-PEACH)を指定します.
image

次に,【設定】→【シリアルポート】と開き,以下のように設定を行ってください.
image

Tera Term と接続確立した状態で,GR-PEACHを起動すると文字が出力されます.
(下の図はrtos_sample.rbを実行したものです)
image

※改行がおかしい場合は,【設定】→【端末】を開き,
改行コードの受信を「AUTO」と設定してみてください.

最後に

GR-PEACHでmrubyを動かす方法は,この他にも,momo-mrubyがあります.
(軽量RubyフォーラムのHPからもダウンロードできるようです)
momo-mrubyは,導入が簡単にできて,対話モードでも動作できるようです.
( 参考: https://qiita.com/Hir0_IC/items/8c0d37792d983c9f060c )

mruby on GR-PEACH+TECS は,現在コマンドラインでの開発しかサポートされておらず,(WebコンパイラやIDEが流行っている中、、)コンパイラのインストールやPATHの設定など,慣れていない人にとっては,導入が少々面倒ですが,
* マルチVMに対応している
* TECSの機能により,mruby単体より高速に動作する
* 周期タスクやセマフォといったRTOSの機能を使える
といった特長があります.
ぜひ試してみてください!

2
1
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
2
1