SHIROのIchigoJam日記

マイコン「IchigoJam」(イチゴジャム)の電子工作とプログラミングをメインに

8ボタンボックス

以前作った8入力ボード
www.ichigojaman.jp
を使って、小さい子向けに8個のボタンを押して遊べるボックスを作りました。
ボタンを押すとそれぞれのアクションが起きます。
動画はこちら。

www.youtube.com

f:id:shiro0922:20211108115049j:plain

f:id:shiro0922:20211108121434j:plain
アルミケースを加工して、8個のボタンスイッチを配置。

f:id:shiro0922:20211108121443j:plain
8個のボタンの入力信号を、8入力ボードで受け。
サウンド出力を出したいので、マイコンはIchigoCakeを使います。

プログラム


8個のボタンを押すと、

  • それぞれのキャラクターが表示されます。1回押すと表示、もう1回押すと消えます。
  • ドレミファソラシドの音階を奏でます。
  • 下のカウント数が1~8ずつ増えます。99を越えると1けたに戻ります。

いろいろ動かしてみた後で、以下のミッションに挑戦してみよう。

  • 8個のキャラを全部表示してみよう
  • 数字を99にしよう
  • 8個のキャラを全部表示&数字を0にしよう
  • 好きな曲を鳴らしてみよう

※(11/20変更)スタート時に8個のキャラを表示するように変更(展示する時に黒い画面だと「動いていない」と誤解されるため)

10 @ARUN:'*BUTTON8
20 CLV:CLO:CLS
30 LET [64],"C","D","E","F","G","A","B","<C"
40 LET [72],249,240,241,243,235,236,237,255
50 FOR N=0 TO 7
60 S=[72+N]*8
70 FOR C=0 TO 7
80 D=PEEK(S+C):E=N*8+C:M=128
90 FOR B=0 TO 7
100 [E]=[E]+M*(D&M>0)
110 M=M>>1
120 NEXT
130 NEXT
140 NEXT
150 LC 15,17:?0;
160 FOR P=0 TO 7
170 X=P%4*8:Y=P/4*8:A=P*8
180 [80+P]=1:GSB @C1
190 NEXT
200 @LOOP
210 FOR P=0 TO 7
220 OUT P
230 IF !IN(2) GSB @ACT
240 NEXT
250 GOTO @LOOP
260 @ACT
270 PLAY [64+P]
280 Q=Q+P+1
290 IF Q>99 Q=Q-100
300 LC 15,17:?Q;" ";
310 X=P%4*8:Y=P/4*8:A=P*8
320 [80+P]=![80+P]
330 IF [80+P] GSB @C1 ELSE GSB @E1
340 IF SOUND() CONT
350 P=(P-1)&7
360 RTN
370 @C1
380 FOR C=0 TO 7
390 D=[A+C]:M=128
400 LC X,Y+C
410 FOR B=0 TO 7
420 ?CHR$(D&M>0);
430 M=M>>1
440 NEXT:?
450 NEXT
460 RTN
470 @E1
480 FOR C=0 TO 7
490 LC X,Y+C
500 ?CHR$(0,0,0,0,0,0,0,0)
510 NEXT
520 RTN

★210~240行の4行を、

210 P=INKEY()-49
220 IF P>=0 AND P<=7 GSB @ACT

の2行に改造すると、キーボードの1~8の数字キーを押して動かせます。
プログラムの動作テストができます。