ESP-WROOM-32でモールス信号発生器を作ってみた。

暫くほったらかしにしていた2017/11月のトラ技のオマケ基板。お安い中華製の完成品もいくつか購入しているので、無理して組み立てる必要はないのだが、他の完成品にはないSDスロットやブザーが付いてるのでなんとなく何か実験するには良いかもということで組み立ててみた。

予想通り、老眼の私の目には少々辛い作業...途中、2箇所ほど部品を付け間違えたりして発狂寸前まで行きかけたがなんとか無事に完成。おきまりのLチカで動作確認を済ませるが頑張って作ったのにLチカだけというのはなんだか寂しい。そこで、IOの少ないチープなMCUを使うといつも悩んでしまうデバッグ用表示器でも作ってみようかなと思い立つが...でも、全てのIOを使い果たしてる場合もあるし...って、さすがにそれはどうしょうもない...と、諦めるのは普通の人。私は普通じゃない人(笑)なので諦めずにない知恵絞って考えつづけること数日...そういえば動作確認用のLEDって普通付いてるじゃん?

ということで、最初に試したのは点滅回数で数値を表現するもので下記の順序で点滅していく仕様。
1)マイナス記号…2回の超短い点滅
2)数字の10の位…長い点滅
3)数字の1の位…短い点滅
これはこれで簡易的なデバッグには使えそうな感じ。

でも、もうちょっとなにか別の方法ないのかなと、ふと、思いついてしまったのがモールス信号。そういえば、昔昔、アマ無線取得したとき一生懸命覚えた記憶があるなと少し懐かしさを感じながら、その規格を調べるためにググってみたら今どきは様々な規格がありすぎて何が正しいのかさっぱりわからない。なので、とりあえず、欧文と記号を除く和文の一部に対応してみた。(欧文、和文の切り替え規格には未対応)

【ブザーとLEDで遭難信号を出力するプログラム】

一家にひとつ、このプログラム(※1)さえあればもう安心。
さぁ、皆さんも一緒にSOSしましょう!!(笑)

※1)ESP-WROOM-32を使う必要性は全くないですがツッコミ禁止ということで。(笑)

ちなみにモールス信号の速度を変えるには、ESP32_sos.ino内の
MorseCode<> morse;
の山括弧に下記のように短い符号の長さ(ms)を設定。
MorseCode<60> morse;
省略時は80ms(一級レベルの速度より少し遅い程度?)