SHIROのIchigoJam日記

IchigoJamの電子工作とプログラミングをメインに

LED Star

LEDを星形に5個並べたシールド基板です。
電子工作・プログラミング教室での女の子ウケを狙って作ってみました(^_^)

光らせ方はプログラム次第ですが、以前に作った「カセットテープJam」のプログラムを流用して、季節外れですが「ジングルベル」を奏でてみました。
プレイ動画はこちら。

基板データ

(8/6 v0.3)抵抗・LEDのパッドを大きくして、はんだ付けしやすくしました。

*この基板ガーバーデータは、CC BYライセンスとします。どうぞご利用ください。

(C) 2018 Shiro Saito (http://d.hatena.ne.jp/shiro0922/)

このファイルをそのままFusion PCBで登録すれば、基板を発注できます。
基板寸法は64×34mmです。

部品表


※LEDは好きな色の物に換えても構いません。

プログラム

セレクタ

起動すると、LED1~3が1秒ごとに光ります。
IchigoJamのボタンを押すと、スロット1~3のプログラムを選択起動します。

10 CLV:OUT 0
20 OUT 1<<N:CLT
30 IF BTN() LRUN N+1
40 IF TICK()<60 GOTO 30
50 N=N+1:IF N>2 N=0
60 GOTO 20

イルミネーション

「ジングルベル」を奏でながら、5個のLEDがランダムに光ります。

1 VIDEO0:PLAY"T180"
2 LET[0],"C;","A;","G;","F;","C;","C;","C;","R;"
3 LET[8],"C;","A;","G;","F;","D;","D;","D;","R;"
4 LET[16],"D;","A#;","A;","G;","E;","E;","E;","R;"
5 LET[24],"<C;","<C;","A#;","G;","A;","A;","A;","R;"
6 LET[32],"D;","A#;","A;","G;","<C;","<C;","<C;","<C;"
7 LET[40],"<D;","<C;","A#;","G;","F;","R;","<C;","R;"
8 LET[48],"A;","A;","A;","R;","A;","A;","A;","R;"
9 LET[56],"A;","<C;","F;","F8G8;","A;","A;","A;","R;"
10 LET[64],"A#;","A#;","A#;","A#;","A#;","A;","A;","A;"
11 LET[72],"A;","G;","G;","F;","G;","R;","<C;","R;"
12 LET[80],"A#;","A#;","A#;","A#;","A#;","A;","A;","A;"
13 LET[88],"<C;","<C;","A#;","G;","F;","F;","F;","R;"
14 A=0:B=16:C=32:D=48:E=64:F=80
15 FORX=ATOA+15:GSB24:NEXT
16 FORX=BTOB+15:GSB24:NEXT
17 FORX=ATOA+15:GSB24:NEXT
18 FORX=CTOC+15:GSB24:NEXT
19 FORX=DTOD+15:GSB24:NEXT
20 FORX=ETOE+15:GSB24:NEXT
21 FORX=DTOD+15:GSB24:NEXT
22 FORX=FTOF+15:GSB24:NEXT
23 GOTO15
24 Z=PEEK([X]):IFZ<65Z=PEEK([X]+1)
25 PLAY[X]:OUT1<<RND(5)
26 IFSOUND()CONT
27 OUT0:RTN

ルーレット

ボタンを押すと、5個のLEDがランダムに回ります。
もう一度押すとゆっくりになって止まります。
もう一度押すとリプレイします。

10 'Star Roulette
20 CLV
30 WAIT 60
40 OUT 31
50 '@START
60 IF BTN()=0 CONT
70 IF BTN()=1 CONT
80 '@LOOP
90 OUT 0
100 A=RND(5)+1
110 OUT A,1
120 BEEP 10,2
130 WAIT 6
140 IF BTN()=0 GOTO 80
150 FOR I=1 TO 5
160 OUT 0
170 A=RND(5)+1
180 OUT A,1
190 BEEP 10,2
200 WAIT 12
210 NEXT
220 GOTO 50

サイモン

記憶ゲームです。起動すると、LEDのどれか1個が光ります(出題)。
LED1が点いて入力モードになるので、ボタンを押して出題と同じLEDを選択します。1秒間操作しないと、そのLEDで確定して解答します。
合っていれば、次は出題が1個増えます。同様に光ったLEDを1個ずつ解答してください。
解答を間違えると、5個のLEDが全て点灯してゲームオーバーです。ボタンを押すとリプレイします。

10 '*SIMON BTN
20 CLV
30 IF BTN() CONT
40 SRND ANA(2)+TICK()
50 P="C;D;E;F;G;"-2
60 PLAY "R32"
70 OUT 0
80 WAIT 60
90 @QUEST
100 M=M+1
110 [M]=RND(5)+1
120 FOR I=1 TO M
130 N=[I]
140 GOSUB @LEDPLAY
150 NEXT
160 WAIT 30
170 @ANSWER
180 A=0
190 N=1
200 @ALOOP
210 CLT
220 @BLOOP
230 OUT N,1
240 IF TICK()>60 GOTO @NENTER
250 IF !BTN() GOTO @BLOOP
260 IF BTN() CONT
270 OUT N,0
280 N=N+1:IF N>5 N=1
290 CLT:GOTO @BLOOP
300 @NENTER
310 GOSUB @LEDPLAY
320 A=A+1
330 IF N<>[A] GOTO @END
340 IF A<M GOTO @ALOOP
350 WAIT 60
360 GOTO @QUEST
370 @END
380 OUT 31
390 BEEP 30,120
400 WAIT 120
410 IF BTN() THEN RUN ELSE CONT
420 @LEDPLAY
430 OUT N,1
440 PLAY P+N*2
450 WAIT 30
460 OUT N,0
470 RETURN