GR-CITRUS は Ruby inside がプリントされたマイコンを搭載したボードです。
Ruby で簡単にガジェットを楽しむことができます。
Mac OS X で GR-CITRUS の Lチカ を実行するまでの手順を紹介します。
(brew がインストールされていれば、数分で チカチカ します。)
Learning
Environment
- OS X : El Capitan
- mruby : 1.2.0
- CoolTerm : 1.4.6
Install
-
brewコマンドで mruby をインストールします。 -
brew caskコマンドで CoolTerm をインストールします。
$ brew install mruby
$ brew cask install coolterm
mruby
まずは、mruby のバイナリを作成します。
Sample code
- サンプルのコードを
main.rbファイルに保存します。
# !mruby
serial = Serial.new(0)
serial.println "Hello, mruby."
10.times do |i|
serial.println "#{i}: led #{i % 2}"
led i % 2
delay 500
end
Compile
-
mrbcコマンドでコンパイルすると、main.mrbファイルが出力されます。 -
wcコマンドでmain.mrbファイルのバイト数を出力します。- バイト数はファイルの送信で参照する値です。
$ mrbc main.rb
$ wc -c < main.mrb
335
CoolTerm
つぎは、mruby のバイナリを送信します。
Connect
-
マイクロUSBケーブル で GR-CITRUS に接続します。
- 充電専用のケーブルは使用できません。
-
CoolTerm を起動して、
Optionsをクリックします。 -
Portに 接続したポートを選択します。- これは
usbmodem1_1を選択しています。
- これは
- 該当のポートがない場合は、
Re-Scan Serial Portsをクリックします。-
ls /dev/tty.*コマンドでもポートがわかります。
-
-
TerminalのEnter Key EmulationにLFを選択します。
-
Connectをクリックして、接続が成功するとWAKAYAMA.RB Boardが表示されます。 -
>>>>>>>>>>が止まらない場合は、Tを入力します。
Execution
- ファイルを送信して実行するには、
X main 335を入力します。-
Xはコマンドです。 -
mainは保存されるファイル名です。 -
335は送信するバイト数です。
-
- 送信は、
ConnectionからSend Textfileをクリックして、ファイルを選択します。- ファイルの ドラッグ&ドロップ も対応しています。
- ファイルが保存されると、プログラムが実行されます。
チカチカしましたね!
GR-CITRUS と WA-MIKAN を組み合わせると WiFi通信 がガジェットで実装できます。
Functions
GR-CITRUS は Arduino と互換性のあるメソッドが使えます。
Digital I/O
- サンプルのコードの
ledをdigitalWriteに変更します。- これは
11のピンを使用します。
- これは
# !mruby
serial = Serial.new(0)
serial.println "Hello, mruby."
pinMode(11, 1)
10.times do |i|
serial.println "#{i}: led #{i % 2}"
digitalWrite(11, i % 2)
delay 500
end
-
LEDとCRDをブレッドボードに設置します。-
LEDとCRDは極性に注意しましょう。
-
-
11に+を接続します。GNDに-を接続します。 - 再びコンパイルをして、ファイルを送信します。
チカチカしましたね!
Congrats!
TIPS
Debug
- 開発でバグが発生したときは デバック をします。
-
mrbcコマンドでデバックする方法を紹介します。
Bug
- このサンプルのコードには バグ があります。
# !mruby
serial = Serial.new(0)
serial.println "Hello, mruby."
10.times do |i|
serial.println "#{i}: led #{i % 2}"
led i % 2
delay
end
- エラーが発生しました! でも、どこか分かりませんね。
>X main 331
Waiting 60 59 58 57 56 55 54 53 52 51 50
main.mrb(331) Saving...
Hello, mruby.
0: led 0
ArgumentError: wrong number of arguments
Debugging
-
mrbc -gコマンドでコンパイルすると、コードのサイズが大きくなります。
$ mrbc -g main.rb && wc -c < main.mrb
444
- エラーが発生しました! でも、ファイル名と行番号が表示されています。
-
delayに引数を指定していないことが分かりましたね。
>X main 444
Waiting 60 59 58 57 56 55 54 53 52 51 50
main.mrb(444) Saving...
Hello, mruby.
0: led 0
main.rb:9: wrong number of arguments (ArgumentError)
デバックの -g オプションは GR-CITRUS の開発者の tarosay さんから オススメ されました。
enjoy mruby






