堺風の頭部

徘徊、カメラ、PC、その他。

IchigoJam Sでモールス信号を出力するプログラム(動画もあるよ)

www.youtube.com

 モールス信号を鳴らしてるところを動画に撮ってみたよ。

 このプログラムを収めた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キーは、了解( . . . - . )として出力。