カードを並べて信号機のプログラムを作成するプログラミング教材
プログラムをみる でリンクしている「JamCard カードを並べてプログラミング」の実行プログラムです。
IchigoJamBASICで書いたプログラムではありません。カードに記録されている命令・引数を配列に格納。それに従ってBASICのコマンドを実行するプログラムです。
バーコードに記録するデータ
この数値をキーボードから入力することもできます。
カードのデータ
はじめ 980
うごかす 970
おわり 990
くりかえし 821
ここまで 830
3回 000 3
5回 000 5
10回 000 10
ここへ 800
にもどる 810
ボタンでおわり 890
1秒まつ 851 60
5秒まつ 851 300
0.5秒まつ 851 30
10秒まつ 851 600
3秒まつ 851 180
全消灯 011 0
全点灯 011 1
青信号 021 1
黄信号 021 2
赤信号 021 3
青点滅 031 1
黄点滅 031 2
赤点滅 031 3
歩行者 青 021 5
歩行者 赤 021 6
歩行者 青点滅 031 5
歩行者 赤点滅 031 6
メロディ 止 041 0
メロディ1 041 1
メロディ2 041 2
メロディ3 041 3
メロディ4 041 4
信号機はトミーの信号機を改造してあります。
OUT 1 青
OUT 2 黄
OUT 3 赤
OUT 5 歩行者 青
OUT 6 歩行者 赤
元の基板はLEDの+側が共通になっているので、+3.3vに接続
各ポートをローレベルにすることで点灯します。
各ポートとGNDで回路を作った場合には、
30 H=0 を H=1 とすることで論理を入れ替えられます。
プログラミングの教材として、信号機の動作のプログラムを学習するのに使います。
青・黄・赤 歩行者用の青・赤は排他的に点灯します。
点灯後は「まつ」が必要です。点滅は1回点滅する命令なので「くりかえし」で回数をプログラミングします。「ここへ」「もどる」でループを作成します。
NEW 10 'CORD-SINGO 20 'IFP=0F=FILE() 30 CLS:?"CORD-SINGO":H=0:Z=0:?:GSB@INIT 40 @LP:IF(P>100)GOTO@END 50 IFSOUND()=1GSB@PLAY 60 N=[P]:P=P+1:M=N-N/10*10:N=N/10 70 IFN=0GOTO@END 80 IFN=1GSB@ALL 90 IFN=2GSB@LIGHT 100 IFN=3GSB@LIGHT:WAIT30:GSB@OFF:WAIT30 110 IFN=4Z=[P]:GSB@PLAY 120 IFN=85WAIT[P] 130 IFN=80O=P-1 140 IFN=81P=O 150 IFN=82Q=P+M:R=[P] 160 IFN=83R=R-1 170 IFN=89IFBTN()=1END 180 P=P+M:GOTO@LP 190 @ALL:FORI=1TO6 200 IF [P]=1OUTI,H:ELSEOUTI,!H 210 NEXT:RTN 220 @LIGHT:GSB@OFF:OUT[P],H:RTN 230 @OFF 240 IF [P]<=4FORI=1TO4:OUTI,!H:NEXT 250 IF [P]>=5FORI=5TO6:OUTI,!H:NEXT 260 RTN 280 @PLAY 290 IFZ=0PLAY"" 300 IFZ=1PLAY"T240<<ERCRRR" 310 IFZ=2PLAY"T120<EGGGAGGGA<CCDC>AGR<CC>AGAAGEGEGEDDC" 320 IFZ=3PLAY"T120<A2A4G4A4A8G8E2B-4B-8B-8<D4>B-8A8B-8A8G8G8A2R" 330 IFZ=4PLAY"T280<ARRGARRGAGEGARARABAGEGECDC>ARARRR" 340 RTN 350 @INIT:PLAY"":FORI=1TO6:OUTI,!H:NEXT:P=0:RTN 360 @END:GSB@INIT:END SAVE 1