で調べてみるといくつか方法があるようです。
以下で紹介されています。
http://playground.arduino.cc/interfacing/ruby
ここで紹介されている
arduino_firmata
と
dino
でLEDを点滅させるLチカを試してみました。
どちらを試すにせよarduinoの環境が必要です。
以下とかを見れば環境構築はできそうな気がします。
http://trac.switch-science.com/wiki/Arduino
http://www.soundscience.co.jp/soundshakit/pa504z2/error.html
まずはarduino_firmataです。
こちらはlinux環境でないと使えない感じです。
arduino側にfirmataというスケッチをアップロードしておいて、PCとUSBで接続しておいてrubyで操作します。
以下のような感じです。
まずは、arduino側にfirmataをアップロードです。
Arduino IDEのサンプルにあるものをアップロードします。
ファイル -> スケッチの例 -> Firmata-> StandardFirmata
を開いてアップロードすればOKです。
とりあえずfirmataが動くかどうかを確認するプログラムが
http://firmata.org/wiki/Main_Page
にあるのでこちらをダウンロードしてLEDが光るかどうかを試してもよいかもしれないです。
ruby側です。
まずは、インストールです。
gem install arduino_firmata
以下のようなプログラムを用意します。
require "rubygems" require "arduino_firmata" arduino = ArduinoFirmata.connect "/dev/ttyUSB0" puts "firmata version #{arduino.version}" while true arduino.digital_write 13, true sleep 1 arduino.digital_write 13, false sleep 1 end
これを実行させるとLEDが点滅します。
connectに指定する値はとりあえずarduino接続前に
ls /dev > aaa
なりしておいて、その後に接続して再度
ls /dev > bbb
でdiffをとって増えたものを指定しておけば、よさげです。
参考になるサイトは、以下のとおりです。
http://shokai.github.com/arduino_firmata/
http://shokai.org/blog/archives/6631
お次は、dinoです。
こちらはwindows環境でも利用できるようなのでwindows環境で試しました。
こちらの場合は、arduino側にbootstrapperというスケッチをアップロードしておくようです。
以下のような感じです。
arduino側のスケッチは以下にあるソースをコピーしてarudinoにアップロードします。
https://raw.github.com/austinbv/dino/master/src/du.ino
ruby側です。
まずは、インストールです。
gem install dino
以下のようなプログラムを用意します。
require "rubygems" require "dino" txrx = Dino::TxRx.new txrx.io = "COM3" board = Dino::Board.new(txrx) led = Dino::Components::Led.new(pin: 13, board: board) [:on, :off].cycle do |switch| led.send(switch) puts switch sleep 1 end
これを実行させるとLEDが点滅します。
COM3としている部分を実際利用するシリアルポートに書き換えます。
参考になるサイトは、以下のとおりです。
https://github.com/austinbv/dino
http://tutorials.jumpstartlab.com/projects/arduino/introducing_arduino.html
http://d.hatena.ne.jp/toshiaki-h/20130211/1360570837
どちらもPCと接続してrubyで操作になっていますが、
mrubyとか出てきているので、そのうちrubyスクリプトをマイコンボードにおけば動くみたいなことが近いうちに出てくるのかなぁとか期待しちゃったりしています。
4月に発売予定のenziとかいうボードがそういう感じになるのかもしれないですね。
http://enzi.cc/
前から、なんかarduinoなりを使って何かをやってみたいなぁとは思っているのですが、やることが思いつかない・・・・
0 件のコメント:
コメントを投稿