micro:bitでモールス符号解読器を試作しました。
符号解読のアルゴリズムは、Rspberry Piでモールス符号解読器を作った時と基本的に同じですが、簡単に説明します。
pin0をプルアップしておき、信号をpin0に加えます。したがって、モールス信号のdot(短点)またはdash(長点)の時にLowレベル(0)になります。
下の図はAの符号が入力された場合で、スタートビット1をMcodeにセットし、信号が入力される度に1ビット左にシフトして(2倍して)dotのとき0,dashのとき1を加えます。これによって、モールス符号をコード化します。
Aの場合は、101ですから、10進数で5になります。この方法で、A~Z,0~9,/をコード化し、10進数の順に並べてoubunというリストを作っておきます。
実際に入力されたモールス符号をコード化し、コードに応じた文字をリストから表示すれば、でコードされたことになります。
デコードのタイミングは、Hレベルが短点時間の1.5倍程度になった時としました。
スクリプトです。
自作のキーヤーにパドルを接続して、テストしました。
普通の速度のモールス信号なら解読できます。
ただ、文字表示が1文字だけですので、同じ文字が続いた時に前の文字と区別がつきません。
やはり、文字を横に表示していくタイプの表示器(例えばLCD1602)の方が解読器には適していると思います。
※コメント投稿者のブログIDはブログ作成者のみに通知されます