Gainer mini+ActionScript3.0でマトリクスLEDを試す。

このエントリをはてなブックマークに追加このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加このエントリをLivedoor Clipに追加このエントリをLivedoor Clipに追加このエントリをYahoo!ブックマークに追加このエントリをFC2ブックマークに追加このエントリをNifty Clipに追加このエントリをPOOKMARK. Airlinesに追加このエントリをBuzzurl(バザール)に追加このエントリをBuzzurl(バザール)に追加このエントリをChoixに追加このエントリをnewsingに追加このエントリをkwoutに追加
2008年12月1日 月曜日1:15:52

今週は土日共に予定がなく暇だったので、
久しぶりにGainer miniを触る機会としてみた。

今回はマトリクスLED。
購入時のセットについていたのはLEDと抵抗、
あとはジャンプワイヤだったが、ジャンプワイヤが
こんな感じの固い奴だけだった。
が、これだとマトリクスLEDの16本もの接続が難しいので、
別途この、柔軟性のある方を購入。
2セット買ったら意外と1000円もしたが、
こいつは今後も使えそうなので良しとしよう。

では、早速+GAINER(旧版)を参考にして、マトリクスLEDの設定を行う。
AS2しかコードが載ってないので、AS3用のライブラリを見ながら設定だ。

+GAINER―PHYSICAL COMPUTING WITH GAINER
著者/訳者:GainerBook Labo + くるくる研究室
出版社:オーム社( 2008-10 )
Amazon価格:¥ 3,990
ISBN-10 : 4274067335
ISBN-13 : 9784274067334

コードを書いてみる

最終的には、こんなものが出来た。


Gainer miniでマトリクスLED

今回は、ボタンぽい円を押すと、マトリクスLEDの表示が変わる。
マトリクスLEDの時はモード7なので、

this._gio = new Gainer("localhost", 2000, Gainer.MODE7, true);

このようにしてモード7で初期化。
次に、LEDの表示内容は、ONが15でOFFが0になる、1次元配列で表現する。

具体的にはこんな感じ。

private const ON:uint = 15;
private const OFF:uint = 0;
・・・
patterns[0] = [
    ON, ON, ON, ON, ON, ON, ON, ON,
    ON, ON, ON, ON, ON, ON, ON, ON,
    ON, ON, ON, ON, ON, ON, ON, ON,
    ON, ON, ON, ON, ON, ON, ON, ON,
    OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF,
    OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF,
    OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF,
    OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF
];

で、実際にLEDを変更する場合、Gainer#scanMatrixと言う関数を使用する。
このようになる。

this._gio.scanMatrix(patterns[currentCount++ % this.patterns.length]);

今回は、ボタンをきっかけにしてLEDパターンを切り替えたが、
電光掲示板のように自動で切り替えたい場合は、
Gainer#onFinishedに、LEDパターンを切り返す関数を代入する。

this._gio.onFinished = function():void {
    gio.scanMatrix(patterns[currentCount++ % this.patterns.length]);
}

GainerのAS3用クラスは、AS2版をベースにしているためイベント駆動ではなく
このようなAS2風の定義方法になる。
AS3から入った人は要注意。

コンパイル

AS3用のライブラリ内のAnalogDigitalだが、
関数outの引数を指定していないため、コンパイルすると警告が出る。
警告無視モードにしてもいいが、折角なので直そう。

Analog.asの42行目。
public function out(ch,value:Number=0):void {

public function out(ch:*,value:Number=0):void {

に変更。(chの型を「*」と指定)

Digital.asの40行目。
public function out(values):void {

を、

public function out(values:*):void {

に変更。(valuesの型を「*」と指定)

これでよし。

  • ページ:
  • 1
  • 2

トラックバック URL :

コメントをどうぞ

HTML convert time: 1.397 sec.