昨日に引き続き、GAINER
今日はLEDアレイで遊んでみた。
2時間くらいブレッドボードとジャンプワイヤの配線と格闘し、何とか完成。
かなり無駄の多い配線になってるが、
セットで買ったジャンプワイヤがちょうどよい長さになってなくて、
各長さの作るのめんどくさくて、つぎはぎで配線。まぁしゃあない。
配線はこんな感じ
パッと見で理解できないw
・LEDアレイ - C-551SRD ×1
・抵抗 - 330Ω ×7
LEDアレイの各足がどの部分のLEDに対応してるかわからなかったが、
そこはProcessing内のプログラムで調整してOK。
GAINERやfunnelのライブラリでGAINERをMODE6で動作させ、
全部digitalOutに設定。
各ポートに対して0か1を入力してあげればLEDをON/OFFできる。
[sample code] - 0.3秒刻みでカウントアップ
import processing.funnel.*;
Gainer gainer;
PFont myFont;
//gainerのdigitalOutの値と数字の対応
int[][] nums = {
{1,1,1,1,1,1,0}, // 0
{0,0,1,1,0,0,0}, // 1
{1,1,0,1,1,0,1}, // 2
{0,1,1,1,1,0,1}, // 3
{0,0,1,1,0,1,1}, // 4
{0,1,1,0,1,1,1}, // 5
{1,1,1,0,1,1,1}, // 6
{0,0,1,1,1,1,0}, // 7
{1,1,1,1,1,1,1}, // 8
{0,1,1,1,1,1,1} // 9
};
int count;
int num;
void setup()
{
size(200,200);
frameRate(33);
myFont = loadFont("CourierNewPSMT-24.vlw");
textFont(myFont, 24);
gainer = new Gainer(this,Gainer.MODE6);
gainer.autoUpdate = true;
count = 1;
num = 0;
}
void draw(){
if(count%11 == 0){
count = 0;
num++;
if(num > 9){
num = 0;
}
}
for(int i=0;i<7;i++){
// 各ポートに配列の値を設定
gainer.digitalOutput(i).value = nums[num][i];
}
count++;
background(0);
text("num : " + num,10,70);
text("count : " + count,10,100);
}
昨日会社の先輩に言われたこと
サーバとかプログラムやソフト系+PCのハード系+さらに電子工作が好きって、
かなりタチの悪いオタクだな!
まったくその通り。


コメントする