モールス信号を鳴らしてるところを動画に撮ってみたよ。
このプログラムを収めたIchigoJam Sとモバイルバッテリー、キーボードを持ち歩いていれば、いつ遭難しても簡単にモールス信号でSOSが送れるぞ。
ソースコード
改変再配布とかはご自由にどうぞ。
「このプログラムはワシが書いた」とか「無謀庵はワシが育てた」といった嘘を言ってる人がいれば指差して笑いに行きますが、ほぼ同様のプログラムを私より先に書いてた人がいたら「遅い」と指差して笑ってください。
よりエレガントなコーディングに直して私に突きつける行為はやめろ。
100 'MORSE CODE
110 [0],0,3280,148,448
120 [8],484,158,644,68,151
130 [13],692,608,637,149: '(ここミス)
140 [16],149,242,241,238
150 [20],229,202,121,122
160 [24],125,134,161,377
170 [32],400,457,7,41,50,14
180 [38],1,49,17,40,4,79
190 [44],23,43,8,5,26,52
200 [50],71,16,13,2,22,67
210 [56],25,68,77,44
220 [63]=364
230 CLS:PRINT "ALT+Q TO END"
240 @LOOP
250 K=INKEY()
260 IF K=250 END
270 IF K=0 GOTO @LOOP
280 IF K=8 C=[1]
290 IF K=10 C=[2]
300 IF K=32 C=[0]
310 IF K>32 C=[K-31]
320 PRINT CHR$(K);" ";
330 R=C MOD 3
340 IF R>0 GOSUB @SIG
350 C=C/3
360 IF C>0 GOTO 390
370 PRINT:WAIT 6:GOTO @LOOP
380 @SIG
390 PRINT CHR$(47-R);
400 IF R=2 R=3
410 R=R*3
420 LED 1:BEEP 7,R:WAIT R
430 LED 0:WAIT 3
440 RETURN
開発の方からわざわざ教えてもらって、最初の配列にデータを格納する部分が合理化されました。
仕様
A~Z、0~9、記号( . , : ? + - / ^ @ ( ) " ' )は、キーボードそのまま入力できます。
乗算記号×は、*で入力。
BackSpaceキーは、訂正( . . . . . . . . )として出力。
Spaceキーは語間の待機時間を取ります。キーバッファで連続入力するときに。
Enterキーは、了解( . . . - . )として出力。