JH1LHVの雑記帳

和文電信好きなアマチュア無線家の雑記帳

スポンサーリンク

M5Stack でモールスを楽しむ

M5Stack で Morse です。

この M5Stack、マイコン界隈では RasPi をも凌ぐ人気ぶりです。

ESP32 を搭載しているので、WiFi・Bluetooth が使えて、Arduino 環境で開発ができます。標準で TFT カラーディスプレイ、ボタン 3 個、それにスピーカまで付いている。あの micro:bit よりメモリも大きいし……これで、一旦中止にしているプロジェクトの「和文電信トレーナ」も作れるはずなんですが。

ということで今回は、まず M5Stack で他人様のスケッチを使って、モールスを鳴らしてみました。

Morse trainer

自分で作る前に、まずは情報収集です。

正直、イチから作るのは面倒で。どこかに M5Stack で動くスケッチが落ちてないかと「M5Stack Morse」でググってみたけど……意外にもヒットが少なくて、ガッカリ。

で、検索の一番上に出てきた "Morse trainer" というスケッチを、使わせてもらうことにしました。

forum.m5stack.com


M5Stack のモールスがどんな感じに聞こえるのか、この trainer で体感してみたいと思います。

USB ドライバのインストール

Windows に、M5Stack 用のドライバ CP210x をインストールします。すでにインストール済みなら、デバイス一覧に CP210x がリストアップされます。

なければ「CP210x ドライバ」でググって、インストールします。

USB - UART ブリッジ VCP ドライバ - Silicon Labs

Arduino IDE の環境設定

① M5Stack のボードを追加する

「追加のボードマネージャーの URL」に、

https://dl.espressif.com/dl/package_esp32_index.json

を追加します。すでに何かアドレスがある場合は、; で区切って入力します。

 

ツール → ボード → ボードマネージャで、

  1. 検索窓に「ESP」と入れて検索します。
  2. 「esp32 by Espressif Systems」をインストールします。

ボードは「M5Stack-Core-ESP32」を選択します。

② M5Stack のライブラリを追加する

ツール → ライブラリを管理 → ライブラリマネージャで、

  • 検索窓に「m5stack」と入れて検索します。
  • 「M5Stack by M5Stack 0.2.5」をインストールします。

現時点の最新は 0.2.6 ですが、0.2.5 じゃないと Morse trainer は正常に動作しません(音が出ません!)。

スケッチを書き込む

スケッチを GitHub からダウンロードします。

  1. フォルダ「Morse-trainer」を作成し、この中に ZIP を解凍します。
  2. スケッチ名を「Morse-trainer.ino」に変更します。(スペースがあるとエラーになります。)
     

これで、スケッチは正常に書き込めます。 

動作確認

 

① ボタン … スピーカから流れる音のとおりにこのボタンを押し、合っていれば次の文字へ進みます。

② ボタン … 画面に表示されているアルファベットのモールスが鳴動します。

 

”C” の ー・-・ のモールスを3回繰り返してみました。

"C" の -・-・ を、3 回繰り返してみました。どうですか、聞きづらくないですか。……はい。あまりにも遅くて、聞きづらいですよね。

そこで、dot_time の初期値を変更して、速度を速くしてみました。250 から 120 に変更することで、だいたい 10 wpm 程度の速度になると思います。

 


どうですか。少し速いほうが、聞きやすくないですか。モールスを始めるなら、最初からこのくらいの速度がよくて、耳に馴染むはずです。

ただ、この Morse trainer は、スピーカから聞こえる音と同じように②のボタンを押さないと次へ進めないのですが、結構厳格な 1:3 が求められて、短点を少し長めに押さないとダメで……。このような誤った感覚での練習は、続けないほうがいいんじゃないかと、正直、思ってしまいました。

これは、短点が正しい「短点」になっていないからで。こういう感覚で覚えてしまうと、電鍵でキレイなモールスが打てなくなるので、気を付けたほうがいいと思います。

横道 ・・・ 遅い速度での 1:3 について

ここで、M5Stack の話題から少し横道にそれます。遅い速度での、短点・長点の 1:3 の関係 についてです。

電鍵操作でモールスを送信するとき、手首の動きは、短点と長点でまったく違ったもの になります。

f:id:JH1LHV:20190511144355j:plain

 

  • 短点は、手首で「トン」。
  • 長点は、手首で「ツー」と押さえる感じ。

 

このことから、モールスを「トンツー」と呼ぶんじゃないのかなぁ、と思うのです。

電鍵で遅いモールスを叩いたって、やっぱり短点は短点なんですよね。バグキーだって、短点の長さは一緒。錘の位置を変えて全体を遅くしても、短点が「ツー」とはなりません。エレキーやパソコンのモールスだけが、変なんです。

短点が長点のように「ツ~」と伸びるのは、とてもオカシイこと。これは 1:3 の遅いモールスばかり聞いているからで、長点のような(間延びした)短点を「短点」として体が覚えてしまい、短点の叩き方が長点と同じになってしまう。こういう電鍵操作は、ダメなんですよ。

長点 1 つは短点 3 つ分の長さに相当し、各点の間は短点 1 つ分の間隔をあける。

・・・と〝だけ〟定義しているのも、言葉足らずで問題ありなんですよね。まぁ、プログラムを作るときは、この定義どおり(短点を基準に全体を伸縮させる形で)書いたほうが簡単なので、そうなりがちなんですが。

この短点と長点の比率は、開局当初からスッキリしない、わたしの中の懸案事項のひとつなんです。

(念のため補足すると、標準のモールスの定義のうえでは、速度を上げれば短点も含めて全体が比例して縮みます。ここで言っているのは、その物理的な定義とは別に、「耳で聞いて心地よく、そして電鍵できれいに打てる符号にするには、短点はむやみに伸ばさず短く保つべきだ」という、実戦的な話です。)

ちなみに、拙作の cw mania や Learning Morse の最低速度は 10 wpm で、あえて、これより遅い速度は設定できないように作ってあります。

 

f:id:JH1LHV:20190511164514j:plain

 

トンツーの「トン」は、いつでも「トン」。速度で変化するのは、各点の間隔と、長点の長さだけ、というのがわたしの考えです。

どうしても、ものすごく遅いモールスを聞く必要があるというなら、

f:id:JH1LHV:20190511210842j:plain

こんな感じの符号(短点は短いまま、間隔と長点だけを伸ばす)じゃないと、聞き取れませんよね。

たとえば、1 文字を 1 分かけて "A" をパソコンで作っても、それを "A" だと分かる人はいないんじゃないかな。(正確な 1:3 だと、12 秒の短点、12 秒の間隔、36 秒の長点、です。12 秒もある「トン」なんて、もう短点には聞こえません。)

モールスは通信手段のひとつであり、相手に確実に伝わることが大切なんです。

★ ポイント ★ 短点の長さは、5 wpm でも 50 wpm でも同じになるのが正解、というのがわたしの持論です。

終わりに

今回は、海外の Morse trainer というスケッチを動かしてみましたが、ガチなハムの練習教材としては機能不足なところがあり、改修が必要だと感じました。

  • 速度が自由に変更できない(デフォルトが遅い)
  • 練習したい文字を選べない(必ず A から始まる)
  • 音が大きすぎる(これはハード上の問題。外部にボリュームがない)

ということで、「micro:bit で始めるモールス入門」で和文バージョンのトレーナが作れなかったこともあり、この Morse trainer を参考にさせてもらいながら、新たに M5Stack で作ってみようかと思っています。

乞うご期待あれ。