GAINERにもいろいろある

Gainer かっこいい楽しいセクシー。

11月に入ったら、なんだかGAINER周りに様々な動きが出ているような気がします... 互換機もいろいろ出てきているようです。

SparkFun社製Gainer

http://gainer.cc/

Gainerのソフトウェア(ソフトウェア・ライブラリとPSoCマイコンのファームウェア)は修正BSDライセンスの元で再頒布および使用が許可されます。
Gainerのハードウェア(回路図とレイアウトデータ)はクリエイティブ・コモンズ・ライセンス「表示-継承 2.1 日本」に従う限り、自由に複製、頒布や二次的著作物を作成することができます。
http://gainer.cc/About/License

Gainerはハードウェアもソフトウェアもオープンソースです。なので腕に覚えのある人は、ハードウェア部分も、ソフトウェア部分も、自分の好きなように改変して作り込むことができます。

Gainerには今のところ3種類(?)あります


元祖(?)トリガーデバイス製

Gainer I/O モジュールキット
http://triggerdevice.ocnk.net/product/27

私が知る限りではGainerを一番最初に市販してくれたところです。私は最初はここで買いました。モジュールキットは自分で半田付けをして組み立てます。半田付けはあまり難しくないと思います。初心者でも頑張ればできます。いや逆に半田付けが楽しいです。Gainer人生を考えれば、このタイミングで半田付けをしておくべきだと思います。私はMorioka.as(0x00)の会場でライブ半田付けをしましたが、1時間くらいで出来たと思います。

SparkFun製

Gainerはハードウェアもオープンソースです。なのでライセンスに従えば、だれでも作ることができます。SparkFunというところが、作っています。USBミニB端子を採用しているので接続部分も小さく、回路も表面実装をしてあるので、コンパクトにまとまっています。ただし組み立て済みですので自分で組み立てる楽しさは半減です。

Gainer元祖とSparkFun製

トリガーデバイス製初代とSparkFun製の比較(と半田付けの上達具合の比較)

Gainer元祖とSparkFun製

裏にはCC:BY-SA 3.0のプリントが!

Gainer mini(RT製)

最近発表されたGainer miniです。少し改良が入って小型化されたGainerのようです。私はまだ使ったことがありません。RT社のオンラインショップで売っているようです。


トリガーデバイス製、SparkFun製、GainerMini(RT製)、ネットショップ等で買うには以下のサイトで扱っているようです。

トリガーデバイス

Gainer I/O モジュールキット
http://triggerdevice.ocnk.net/product/27
上記完成品
http://triggerdevice.ocnk.net/product/28
マイコンだけ
http://triggerdevice.ocnk.net/product/30

SparkFun

SparkFun.comにオンラインショップがあります。
http://www.sparkfun.com/commerce/product_info.php?products_id=8480

スイッチサイエンス

スイッチサイエンスはSparkFun社の正規代理店のようです。私もここで買いました。3000円以上の買い物で送料無料なので、Gainer1個を買っても送料無料で届きます。(封筒のメール便です)
http://www.switch-science.com/

メカロボショップ

メカロボショップで売っているようです。いずれ欲しくなるパーツもスターターキットとしてまとめて販売しているようです。他にも面白そうなパーツもありますね。

共立エレショップ

共立エレショップでも扱っているようです。センサや他の部品も取り扱いが豊富ですね。

自分で作る

Gainerはオープンソースですから、ライセンスに従って自分で作ったり改良したりすることができます(腕があれば)。分かっている人はパーツをバラで買ってきて組み立てたりできるみたいです。

ginger

Gainer互換機のgingerというのもあるみたいです。Make.Japanの紹介ページ

他にもPepperとかSugarとかいろいろすごい! エレキジャックのページ

他にも入手先があれば教えてください。


GAINERと加速度センサとFunnelでKeynoteのスライドをめくる

1000speakers:7@仙台#1ではコミュニティー枠で東北のコミュニティーの紹介を話したんですが、それだけでは技術的な話がないので、GAINER加速度センサFunnelとRubyで、Keynote.appのスライドをめくるというのをデモしました。

GAINERのボタンを押すときに、加速度センサが載っているブレッドボードを

  • 向こうに傾けると:スライドがスタート
  • 手前に傾けると :スライドがストップ
  • 右に傾けると  :スライドが次へ
  • 左に傾けると  :スライドが戻る

という仕組みです。

Gainerと加速度センサーをブレッドボードを使って組みました。加速度センサーの説明書や「+GAINER」のP.110を参考にしました。

Gainer

もっと長さのちょうど良いジャンプワイヤーを使えば、見栄の良い回路を組むこともできます。もちろんブレッドボードが無ければ、直接半田付けをすれば良いのですが、次回の使い回しが大変になりますね。

Gainer

加速度センサーのアップ写真。このセンサーがX軸Y軸Z軸の加速度を出力してくれます。かわいいですね♪

そしてFunnel Serverを立ち上げて、Gainerを認識していることを確認します。

Keynoteでプレゼンしたいスライドを開いておいて、以下のプログラムをターミナル等から実行すると動作すると思います。

#!/usr/bin/ruby

$LOAD_PATH.push('lib')
require 'funnel'
include Funnel

gio = Gainer.new
gio.button.on RISING_EDGE do
  ain0 = gio.ain(0).value
  ain1 = gio.ain(1).value  
  if ain1 > 0.7
    slide('show next')
  elsif ain1 < 0.3
    slide('show previous')
  elsif ain0 < 0.3
    slide('start')
  elsif ain0 > 0.7
    slide('stop slideshow')
  end
end

def slide(appscript)
    <<-`EOC`
    osascript -e '
    tell application "Keynote"
        #{appscript}
    end tell'
    EOC
end
sleep(60*15)

まず、FunnelのRuby用ライブラリを読み込みます。今回はプログラムファイルと同階層にlibフォルダを作って置きました。

次にGAINERの基板に付いているボタンが押された事(RISING_EDGE)をトリガーにして、アナログ入力の値を読み込みます。Funnelを使うことによって、すごく簡単に書くことができます。

今回使ったのは3軸加速度センサなのでX軸Y軸Z軸の3つの出力があります。アナログ入力0、アナログ入力1、アナログ入力2にそれぞれのピンが接続されているのですが、今回はX軸とY軸だけを見ればよいので、X軸が接続されているain(0)と、Y軸が接続されているain(1)の値を得ています。

そして、それぞれの値によって、スライドをnext/prev/start/stopしています。

Keynote.appを動かすにはAppleScriptを作ってMacのosascriptコマンドを実行しています。

次のスライドに進む時は

tell application "Keynote"
    show next
end tell'

というAppleEventをosascriptコマンドでKeynoteに送ってあげると、スライドが1枚めくれます。

osascriptは、シェル等からAppleScriptを実行するためのコマンドです。詳しくは
$man osascript にて。


Morioka.as で Gainer を使って遊ぶ

Gainer

Gainer かっこいい楽しいセクシー。

コンピューターの画面の外で遊べる。実際に動く感触とか、画面の中では味わえない楽しさウキウキ。

Gainerには「モード(Configuration)」というのがあって、通常はMODE1を使いますが、他にもいろいろあります。MODE1はデジタル入力4ch、デジタル出力4ch、アナログ入力4ch、アナログ出力4chの構成になりますが、MODE6を使えばデジタル出力 16chとして動かすことが出来るので、16個のスイッチをON/OFFさせることができるようです。

MODE1
アナログIN:4ch / アナログOUT:4ch / デジタルIN: 4ch / デジタルOUT: 4ch
MODE2
アナログIN:8ch / アナログOUT:4ch / デジタルOUT: 4ch
MODE3
アナログIN:4ch / アナログOUT:8ch / デジタルIN: 4ch
MODE4
アナログIN:8ch / アナログOUT:8ch
MODE5
デジタルIN: 16ch
MODE6
デジタルOUT: 16ch

モードの切り替えも、プログラムの中で宣言すれば良いようです。


# ASの場合は
var gnr:Gainer = new Gainer("localhost", 2000, Gainer.MODE1, true);

ソリッドステートリレー(SSR)

ソリッドステートリレー

今回は、ソリッドステートリレー(SSR)を間に繋げた電源コードを用意して、SSRをGainerのデジタルOut端子から制御しました。このSSRは制御部分にGainerの5V電圧をそのままかけることが出来るようなので、直接繋げるだけでOKのようです。これでFlash等で100V電源のON/OFFを切り替えることができます。MODE6を使えば16個のON/OFFを制御することができるはず。

SSRを繋げた電源ケーブル

夢が広がりますね♪