LEDを星形に5個並べたシールド基板です。
電子工作・プログラミング教室での女の子ウケを狙って作ってみました(^_^)
光らせ方はプログラム次第ですが、以前に作った「カセットテープJam」のプログラムを流用して、季節外れですが「ジングルベル」を奏でてみました。
プレイ動画はこちら。
基板データ
(8/6 v0.3)抵抗・LEDのパッドを大きくして、はんだ付けしやすくしました。
*この基板ガーバーデータは、CC BYライセンスとします。どうぞご利用ください。
(C) 2018 Shiro Saito (http://d.hatena.ne.jp/shiro0922/)
このファイルをそのままFusion PCBで登録すれば、基板を発注できます。
基板寸法は64×34mmです。
プログラム
イルミネーション
「ジングルベル」を奏でながら、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