mrubyを使ってみたいけど、直ぐ試せるマイコンボードがないからなぁとお悩みのあなたに、ルネサス製マイコンボードGR-PEACH用のmrubyがひっそりと公開されてましたので試してみました。
momo-mrubyという名前のこのmrubyは最新のmrubyバージョン1.3.0に対応(2017.9現在)、IoT向けのコード自動生成フレームワーク mruby IoT フレームワークPlatoにも対応というすぐれものです。
mrubyフレームワークPlatoのサイトはこちら
#momo-mrubyのダウンロード
momo-mrubyはGithub、またはmrubyをサポートしている軽量Rubyフォーラム(Matzが理事長です!)のHPからダウンロードできます。バイナリで配布なんであっというまに試せます。Windows版、Mac版がありますのでWindows10で試しました。
#ここでちょっとGR-PEACHの説明
GR-PEACHはルネサスエレクトロニクス社製のマイコンボードでMPUにARM Coretex-A9 RZ/A1H 400MHzを搭載、10MBの大容量内蔵RAM、カメラ入力/グラフィックス出力/オーディオやEthernetのNW機能がついてます。ホビーだけでなく、製品の試作、本番にまで使えそうなパワーです。世界初のmbedOS対応マイコンボードとのこと。Amazonや秋月電子で購入可能です。ちなみにFullとNormalがあってNormalはFullからEhernetとAruduino互換ピンを省いたものなのでFullが扱いやすいです。Fullは1万円くらいで手に入ります。
GR-PEACHの化粧箱は舞妓さん
#ダウンロードしたmomo-mrubyをGR-PEACHに導入
Zipファイルをダンロードして解凍します。できるディレクトリはこんな感じ。
momo-mruby-1.0.0-win/
+-- bin/
| +-- momo-mruby.bin (momo-mrubyファームウェア)
| +-- mrbc.exe (Macの場合はmrbc)
+-- sample/
| +-- led.rb
+-- README.md
binファイルがmomo-mruby本体、mrbcはmruby用のコンパイラーです。
sampleディレクトリにled.rbというサンプルファイルがあります。これはGR-PEACH上に載っているRGB LEDを点滅させるサンプルファイルです。
##momo-mruby導入
momo-mrubyをGR-PEACHに書き込むのは非常に簡単。
用意するのは
・USBケーブル (A-MicroB)
・microSDカード
ともにGR-PEACHには付属していませんので別途用意しておきます。SDカードは自分で作成したmrubyアプリケーションのロードに使います。
GR-PEACHをUSBでPCにつなぐとMBEDというドライブで認識されます。そこへmomo-mruby.binをコピーするだけ。少し待っているとmomo-mrubyがロードされます。
USBからGR-PEACHに給電するには写真のように外側のUSBにつなぎます。
青く光っているのが3色LED
#早速サンプルプログラムを動かしてみる
先のGithubのページにも丁寧な説明がありますがこちらにもさくっと載せておきます。
付属のサンプルプログラムはGR-PEACH上のRGB LEDを順番に点滅させます。
ここですることは
1. led.rbはRubyプログラム、これをコンパイルしてmrubyアプリケーションにします
2. コンパイルの際にGR-PEACHで起動時にアプリケーションを読み込ませるためにautorun.mrbという名前にします。
3. SDカードにautorun.mrbをコピーして電源入れ直します。正常にロードされるとLEDが3色で点滅します。
コンパイルするにはmrbc.exeを使います。コマンドは下記のようになります。パスについてはご自分の環境にあわせてください。
>mrbc -o autorun.mrb led.rb
出来上がったautorun.mrbをmicroSDカードのルートディレクトリにコピーして、GR-PEACHのmicroSDスロットに装着します。GR-PEACHをUSB接続して電源投入すると、momo-mrubyが起動し、mrubyアプリケーション(autorun.mrb)が実行されます。
#対話モードmirbを使ってみる
mrubyには対話モードがあります。ターミナルなどでGR-PEACHに接続してダイレクトにmrubyコマンドの実行が可能です。
ターミナルソフトウェアにはCoolTermがおすすめです。
またWindowsの場合、シリアルポートドライバをインストールする必要があります。ここは先のGithubのページを参照してください。
CooleTermの設定も変更します。特にメニューのオプションのTerminalの”Line mode"設定は忘れずに。
下のライン内にmrubyコマンドを入力することで対話的に遊べます。
図ではMRUBY_VERSION を入力しています。
複数の行からなるアプリも1行ずつ入力することが可能です。
def top3(ary)
p ary.sort.reverse[0..2]
end
=> :top3
top3( ["Led Zeppelin", "Jeff Beck", "Miles Davis", "Weather Report"] )
["Weather Report", "Miles Davis", "Led Zeppelin"]
=> ["Weather Report", "Miles Davis", "Led Zeppelin"]
mrubyが動作するリファレンスボードとしてGR-PEACHはなかなか使えそうです。
お試しくださーい。