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