Ruby で GAINER

August 18th, 2007

Red Green Blue

GAINER を買った。初台の ICC だと GAINER の完成品と Software Design 2007年3月号の GAINER 記事で使っているパーツ一式 (ブレッドボードや LED など) とをまとめて買えるので、かなり敷居が低い。売り場はレジの所です。

PICkit 1 を放置したまま GAINER とか、ちょっとダメな大人っぽいんだけど、PIC (or AVR) を使って回路を組むのと GAINER を使うのとでは位置づけがちがうので、両方持っているのも無駄というわけではない。

PIC の場合プログラムは PIC 上で走るので、C なり機械語なりで省資源に作って、PIC に 書き込んでという手順を踏まなきゃいけない。一方、GAINER はコンピュータと電子回路とを USB でつなぐ glue でしかないので、プログラムそのものは普段使っているコンピュータ上で走る。好きな言語で富豪的に書けるし、書き込みも無いというかできない。

個人的には Ruby で書きたいので gainer.rb というのを書いてみた。

たとえばデジタル出力につないだ R, G, B の LED を順に点灯させるのが、こんな風に書けます。

require 'gainer'

g = Gainer::Serial.new(ARGV.shift)
g.reboot
g.configuration = 1

n = 0b001
loop do
  g.digital_out(n)
  if n & 0b100 == 0
    n <<= 1
  else
    n = 0b001
  end
  sleep(0.5)
end

まだ GAINER の機能全体のうちごくわずかしか使えないし、入力は非同期でとるほうが良い気がする。これからやります。

1 Response to “Ruby で GAINER”

  1. omo Says:

    自由研究ぽくてよいですね