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

今週は土日共に予定がなく暇だったので、
久しぶりにGainer miniを触る機会としてみた。
今回はマトリクスLED。
購入時のセットについていたのはLEDと抵抗、
あとはジャンプワイヤだったが、ジャンプワイヤが
こんな感じの固い奴だけだった。
が、これだとマトリクスLEDの16本もの接続が難しいので、
別途この、柔軟性のある方を購入。
2セット買ったら意外と1000円もしたが、
こいつは今後も使えそうなので良しとしよう。
では、早速+GAINER(旧版)を参考にして、マトリクスLEDの設定を行う。
AS2しかコードが載ってないので、AS3用のライブラリを見ながら設定だ。
+GAINER―PHYSICAL COMPUTING WITH GAINER(単行本)著者/訳者:GainerBook Labo + くるくる研究室
出版社:オーム社( 2008-10 )
定価:¥ 3,990
ISBN-10 : 4274067335
ISBN-13 : 9784274067334
コードを書いてみる
最終的には、こんなものが出来た。
Gainer miniでマトリクスLED
今回は、ボタンぽい円を押すと、マトリクスLEDの表示が変わる。
マトリクスLEDの時はモード7なので、
このようにしてモード7で初期化。
次に、LEDの表示内容は、ONが15でOFFが0になる、1次元配列で表現する。
具体的にはこんな感じ。
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と言う関数を使用する。
このようになる。
今回は、ボタンをきっかけにしてLEDパターンを切り替えたが、
電光掲示板のように自動で切り替えたい場合は、
Gainer#onFinishedに、LEDパターンを切り返す関数を代入する。
gio.scanMatrix(patterns[currentCount++ % this.patterns.length]);
}
GainerのAS3用クラスは、AS2版をベースにしているためイベント駆動ではなく
このようなAS2風の定義方法になる。
AS3から入った人は要注意。
コンパイル
AS3用のライブラリ内のAnalogとDigitalだが、
関数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




