Ardiomo CW 練習機(モールス符号練習機)

2016年1月 JH7UBC


HSPおよびIchigoJamでは、既にCW練習プログラム(モールス符号練習プログラム)を作成しました。
今回、AeduinoでCW練習機を作成してみました。

モールス符号は、次のように短点(トン dot)と長点(ツー dash)とスペースから構成されています。
例 A ・−  B −・・・  C −・−・
短点と長点の比は、1:3、短点または長点の後のスペースは、短点と同じ長さ、
文字と文字の間は短点の3倍の長さ、語と語の間隔は短点の7倍の長さと決められています。

短点、長点を送出するには、tone()関数を使います。tone()関数では、周波数と音の持続時間を指定できます。
圧電スピーカーを出力ピンに接続することで、モールス符号を音で聞くことができます。
また、スペースは、delay()関数を使います。

それでは。短点の時間は、どれくらなのでしょうか。
アマチュア無線で行われているCW交信では、およそ20wpm(20語/分)です。
1語とは、PARIS=・−−・ ・− ・−・ ・・ ・・・ で、短点50個分です。
短点の時間をdotとして、20wpm=50dot×20=1000dot/分、
つまり60s=6000msに1000dotですから、1dot=60msとなります。
10wpmでは、1dot=120ms、30wpmでは、1dot=40msとなります。
この短点の時間は、10kΩのボリュームを調整し、アナログ入力の値から得ることにします。

練習モードは、1:アルファベット順(モールス符号を覚えるのに使います。)
2:AからZまで(ランダム送出)
3:AからZと0から9まで(ランダム送出)としました。

符号をランダムに送出するには、random()関数を使います。
AからZのときは、0から25までの乱数を、AからZ0から9のときは、0から35の乱数を発生させます。
発生した乱数に対応して配列に保存した文字を表示し、文字に対応したコードでモールス符号を送出します。

モールス符号を発生するコードは、次のようにしました。
短点を0、長点を1、ストップコードを1とし、1バイト(8ビット)で表現します。
例えば、A(・−)はLSB(最下位ビット)か順に0,1そしてストップビット1の順並べると、00000110=16となります。
このコードを右に1ビットずつシフトし、最下位ビットが0のとき、短点を1のとき長点を送出します。
そして、コードの値が1(ストップビットだけ)になったときに終了となります。

ボリュームと圧電スピーカーは下の図のように接続します。

実際の配線の様子です。

文字の入力、出力はシリアルモニタを使います。
1から3の数字を入力すると数字に対応したモードでモールス符号が送出されます。
ランダムモードの場合は、始めにHR HR BTが送出され、その後100文字送出されます。(10文字ごとに改行されます)
モールス送出中でもスピードを変えることができます。

スケッチは、ここ(テキストファイル)
自分に合わせて、改良してみてください。

inserted by FC2 system