RubicでGR-CITRUSのmrubyプログラミング事始め


GR-CITRUSとは?

GADGET RENESASより発売されたmrubyが使える小型ボードです。
だがしかし、mrubyを含めて3つも開発環境が選べるという好きに調理してください仕様です。
迷うじゃないか。

  • Rubicを使ったmruby開発
  • IDE for GEを使ったArduino互換スケッチ
  • Webコンパイラを使ったArduino互換スケッチ

とりあえず、ここでは売りのRubicを使ったmruby開発について注目して、
電子工作初心者がGR-CITRUSを動かせることを目指します。

また、WA-MIKANを組み合わせることによりWiFi通信やマイクロSDが使えるのも特徴です。
基本、セットで使おう。

公式HPより
GR-CITRUSはRubyが気軽に使える小型ボードです。Chrome Appの「Rubic」を使うことでプログラムの作成から実行までスムーズに行うことができます。
RubyだけでなくArduinoと互換性のあるスケッチをすることも可能です。
また、ESP8266を搭載したボード「WA-MIKAN」と組み合わせることでWiFi通信やマイクロSDカードを使ったシステムをプロトタイプすることができます。

販売について

販売は秋月電子さんです。NORMAL版とFULL版の違いは、ピンを半田付けしてあるかないかだけです。半田付けが苦手な方はFULL版を買うといいと思います。

GR-CITRUS

バージョン 補足
GR-CITRUS-NORMAL 半田付け無・ピンヘッダは別途購入
GR-CITRUS-FULL ピンヘッダ半田付け済み

WA-MIKAN

バージョン 補足
WA-MIKAN-NORMAL 半田付け無・ピンソケット2ケは別途購入
WA-MIKAN-FULL ピンソケット半田付け済み

Rubicインストール

下記の公式サイトのインストール方法とほとんど内容は同じですが、Rubicのインストール方法を載せておきます。
http://gadget.renesas.com/ja/product/citrus_sp1.html

Chromeをまず入れて、ChromeウェブストアからRubicを検索していれるだけ。

インストール後、chromeで新しいタブを開き、ツールバーのアプリを選択

アプリから、Rubicを選べば起動します。

使い方

新しいスケッチを作成

GR-CITURSをMicro-USBでPCにつなげたら、新しいスケッチを作成⇒画面左下「ハードウエア構成を選択」を選ぶ。

次にボードの選択で、GR-CITRUSを選択。

下記の画面のように選択します。
選択後、「スケッチ編集へ戻る」ボタンを押します。

ファームウェアのリビジョンで、ファームウェアが最新でない場合は!マークが出ますがとりあえずそのままでも問題ありません。Ver1.0.0でファームウェア書き換え機能が内蔵される予定のようです

次に「接続先を選択」ボタンを押し、Gadget Renesas CITRUSを選択します。

(※USBを外して付け直した場合、「接続先を選択」はやり直す必要があります。)

最後に、「!情報」ボタンを押して、ボードの情報が取れればCITRUSとの疎通OKです!

スケッチ

準備はこれでできました。それではさっそくCITRUSに命令しましょう。
スケッチに以下のように書き込んで「Hello World」と表示させた後、
10回CITRUSのLEDを点滅させます。

書き込み後、右上の「実行」ボタンを押します。

main.rb
#!mruby
usb = Serial.new(0)
usb.println("Hello")
usb.print("World")

10.times do
    led 1
    delay 100
    led 0
    delay 100
end

動きました!

以上で準備は完了したので、次から具体的にもの作っていきたいと思います。

トラブルシューティング(2016/11/19時点)

自分が探した範囲でちょっと引っかかりそうな部分をまとめてみました。

No Question Anser 
Q1 MacでRubicご使用の場合、長いコード(10数行程度?)を書くと実行できない! rubic Ver0.92で修正されたようです!
Q2 Rubicの実行が中々上手くいかない場合があります。(例.main.mrb を転送しています...失敗しました) CITRUSとRubicの間での疎通確認のタイミングにぶつかると発生するようです。めげずに何度もトライしよう。
Q3 そもそもCITURSが認識されないよ!?その1 Micro-USBケーブルが転送可能なタイプか確認
Q4 そもそもCITURSが認識されないよ!?その2 IDE for GEとかWEBコンパイラの開発で書き換えた場合は、mrubyファームが消えているのでもう一回書き込まないとダメ。書き込み方法は以下。

(公式より一部抜粋)最新ファームウェア(Ruby実行用)
GR-CITRUSのRuby用最新ファームウェアへのリンクです。ファームウェアを書き込む場合は、GR-CITRUSのリセットボタンを押してUSBメモリとして認識後、binファイルをコピーしてください。
GR-CITRUS 最新ファームウェア(Ruby用)(※ちなみに公式のリンクが古いので新しくしてあります。 (2016/12/25) 公式のリンクも修正されました。)
https://github.com/wakayamarb/wrbb-v2lib-firm/blob/master/firmware_release/citrus_sketch.bin

No Question Anser 
Q5 リセットボタン押してもUSBメモリとして認識しないし・・・ 公式にあるUSBメモリのドライバを入れればOK。コントロールパネルから「ほかのデバイス」⇒「Gadget Renesas CITRUS」にびっくりマークがついているので⇒右クリックでドライバーソフトウェアの更新から、ドライバのある場所を選択して入れる。
Q6 Arduinoみたいに、1回スケッチ書き込んだら、次から電源オンでプログラム自動起動しないの? そのままだとしません。JP10をショートさせるか、JP2にハーフピッチピンヘッダを取り付けて、ジャンパをショートさせる必要があります。テストの場合は以下2枚目のようにジャンパ線を指すのもよいかと。
Q7 mrbgemsを使いたい ファームウェアを自分でコンパイルする必要があります。tarosayさんの記事や、takjnさんの記事に詳しく取り上げられています。
Q8 ファームウェアの選択時、ファームウェアのリビジョンで「ファームウェアのダウンロードが必要です」と警告されるんだけど ファームウェアが最新バージョンでない場合表示されますが、現在のRubicではファームウェアのダウンロード&書き換えはできません。Ver1.0で実装される予定らしいです。