Enjoy programming more!
Kidspod is a post site which supports young programmers.
First step to join us.
Register as a member
For members

2018/12/18 14:26:40

MixJuice GET URL : kidspod.club/mj/714

JamCard 信号機をプログラミングしよう

カードを並べて信号機のプログラムを作成するプログラミング教材
プログラムをみる でリンクしている「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回点滅する命令なので「くりかえし」で回数をプログラミングします。「ここへ」「もどる」でループを作成します。

SOURCE CODE

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

COMMENT