JH1LHVの雑記帳

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

スポンサーリンク

M5Stack で CW Decoder を作る ~2~

今回は、MEMS マイクロフォン を使って、スピーカーから流れる音を直接拾い、モールス信号の解読を試してみました。

スピーカーの音を直接拾って解読する

これまでのようにオーディオケーブルで信号を取り込む方法に加え、今回は MEMS マイクロフォン(AIスピーカーなどにも使われている小型マイク)を使って、スピーカーから出た音をそのまま拾い、解読できるようにしてみました。

f:id:JH1LHV:20200107145101j:plain
約300円ほどで購入したもので、例によって AliExpress で入手しました。
毎度のことながら、どこまで本物なのかはさておき、まずは実験用としては十分です。

ja.aliexpress.com 

f:id:JH1LHV:20200107145444j:plain

今回使った ADMP401 の MEMS マイクボード は、端子が 3本だけ というシンプルな構成です。このボードは 3.3V仕様 なので、M5Stack 側もそれに合わせて 3.3V端子 に接続します。

また、マイク出力の AUD端子はアナログ信号 なので、M5Stack 側では アナログ入力端子(35ピン) に接続し、A/Dコンバータの値としてプログラムから読み取ります。

マイク出力のアナログ値は、Arduino 系ではおなじみの analogRead() 関数 を使って取得しました。

実際に解読を試してみる

今回は、拙作の 「Learning Morse」 を使い、パソコンから流した 数字(1〜0)の連続モールス を解読させてみました。この条件で試すのは前回の投稿以来ですが、その間、プログラム自体にはまったく手を加えていません。

その結果、20wpm を超えたあたりから誤字が目立つ ようになり、思っていたほどきれいには解読できませんでした。まだまだ改善の余地がありそうです。

今後は、このあたりの原因を探りながら、引き続き試行錯誤を続けていきたいと思います。

ちなみに、Arduino Nano では 30 wpm でも比較的きちんと解読できていただけに、この結果は少し意外でもありました。

M5Stack ならではの難しさもあるのかもしれない

M5Stack は、処理性能そのものでは Arduino と比べものにならないほど高性能です。ただ、その一方で LCD やスイッチなど多くの機能が最初から組み込まれているため、内部のファームウェア処理や周辺機能の制御で、思わぬ負荷がかかっている可能性もありそうです。

とはいえ、こうした試行錯誤もまた電子工作の面白さのひとつです。M5Stack にはまだまだいろいろな可能性がありそうなので、これからも工夫を重ねながら、その力を引き出していきたいと思います。