以前作った立形信号機
www.ichigojaman.jp
を2台ケーブルでつないで、連動させてみました。
動画はこちら。
【IchigoJam】2台連動信号機
歩行者用信号機基板にある、TX,RX,GNDパッドをクロスで結線します。
(TX→RX、RX→TX、GND→GND)
プログラム
全体は親機のプログラムで動いています。子機は親機から飛んできたコマンド通りに、各LEDを点灯/消灯しているだけです。
コマンドは文字コードで送っています(ポート番号×10+0または1)。そのままだとコントロールコードになってしまって動作がおかしくなるので、160を足してカタカナコード領域にして送受信しています。
親機プログラム
10 @ARUN:'*T.LIGHT-P 20 CLS:UART 1 30 OUT 0 40 FOR I=1 TO 6:?CHR$(160+I*10):NEXT 50 @LOOP 60 OUT 1,1 70 OUT 5,1 80 ?CHR$(160+31) 90 ?CHR$(160+61) 100 WAIT 300 110 FOR I=1 TO 3 120 ?CHR$(160+61) 130 WAIT 30 140 ?CHR$(160+60) 150 WAIT 30 160 NEXT 170 ?CHR$(160+51) 180 WAIT 120 190 OUT 1,0 200 OUT 2,1 210 WAIT 120 220 OUT 2,0 230 OUT 3,1 240 WAIT 120 250 ?CHR$(160+30) 260 ?CHR$(160+11) 270 OUT 5,0 280 OUT 6,1 290 WAIT 300 300 FOR I=1 TO 3 310 OUT 6,1 320 WAIT 30 330 OUT 6,0 340 WAIT 30 350 NEXT 360 OUT 5,1 370 WAIT 120 380 ?CHR$(160+10) 390 ?CHR$(160+21) 400 WAIT 120 410 ?CHR$(160+20) 420 ?CHR$(160+31) 430 WAIT 120 440 OUT 3,0 450 ?CHR$(160+50) 460 GOTO @LOOP
子機プログラム
10 @ARUN:'*T.LIGHT-C 20 CLS:UART 0,1 30 OUT 0 40 @LOOP 50 K=INKEY() 60 IF K<160 GOTO @LOOP 70 K=K-160 80 A=K/10 90 B=K%10 100 OUT A,B 110 GOTO @LOOP