2019年04月28日

アマチュア無線(ScratchでCW打鍵練習ゲーム)

和文モールス聞き取りゲームは自分なりにそこそこ上手にできたと思う。その流れで今度は本家CWインベーダー同様の打鍵練習ゲームをScratchで組めないかチャレンジしてみた。



聞き取りゲームはロジックとしては単純な四択クイズの応用で,音源の準備(パドルを叩きながら録音した)が地道な作業で時間がかかったのが大変ではあったけれど,本質的に困難な部分はなかった。もちろん慣れないうちは思った通り動かなかったりして苦労したけれど,Scratchの仕様の範囲で十分に書けることがわかっていたという意味で。

その点打鍵練習には「これはScratchで可能かな?」と思うハードルが3つあって,

(1)キーを押している間連続音(サイドトーン)を流し,離したら止める,という実装
(2)打鍵に対する処理速度(レスポンス)の問題
(3)モールス符号のデコードアルゴリズムの移植

(1)については,短点と長点を固定長としてしまえばそれほど難しくない。Scratchで公開されている多くのモールス信号系のプロジェクトもだいたいこの方式。でも縦振れキーの練習としては,やっぱり打鍵の長さを自由に変えられる機能は必須だろう。

いろいろ試して,なんとかそれっぽい実装を考えた。具体的なやり方は,
・長め(5秒とか)のサイドトーンを録音して登録する。
・「キーが押された」までループで待機。
・上記ループを抜けたら長いサイドトーンを再生。
・「「キーが押された」ではない」まで空ループ。
・空ループを抜けたら「すべての音を止める」。

cw_scratch_01_w560.jpg

これで,キーを押している間はサイドトーンを再生して,キーを離すと止める,という動きが実現できる。

ただ問題も残っていて,Scratchに音を登録するときに,自動的にフェードイン・フェードアウトが付加されてしまうこと。時間0で音量100%になるような音を登録しても,音量0からフェードインする音に勝手に編集されてしまう。このせいでキーを押した瞬間は無音で,一瞬遅れてサイドトーンが鳴るようなタイムラグが発生する。連続して打鍵したときの音の歯切れも悪くなる。これは後のレスポンスの問題とも密接に関わってきて,今のところ解決できていない。

cw_scratch_02_w560.jpg

(2)はゲーム性に関わる問題。ストレートキーでそれなりに打てる人ならわかると思うけれど,慣れてくると短点の打鍵などはかなり高速になる。電鍵の代わりにキーボードを打つという違和感は我慢してもらうとしても,慣れているスピードで打とうとすると,処理速度のためだと考えられる入力の取りこぼしが発生する。何度かやっているうちに「うまく反応してくれるタイミング」みたいなものがわかるようになってくるんだけど,初めての人は「なんだこりゃ」と思うかも。

(3)はこのゲームを作る上での「キモ」とも呼べる部分。モールス符号のデコードアルゴリズムをネットで検索すると、「枯れたアルゴリズムがある」とされている一方で、具体的なコードの例はなかなか見つからない。あっても実際の交信の音を入力してFFTをかけて、みたいなものだったり。

可変長のキーダウン信号を短点、長点、符号間の空白、文字間の空白、単語間の空白の5つに分類するわけだけど、それぞれ長さが人間の打ち方によって変化するというのが難しい。人間がいかにこの辺の判定をうまくやっているかがわかる。

で、数少ない情報の中で比較的わかりやすく書かれているのが、JH7UBCさんのサイト。わかりやすいフローチャートとIchigojamとPythonによる実装が紹介されており、大変親切。もっと高度なアルゴリズムもあるのかもしれないけれど、まずはこれをベースとさせていただく。

Scratch用に改造したのは、キーアップ(High)時とキーダウン時(Low)のループのsleep(0.001秒)をなくして,カウンタのインクリメントではなくタイマーを使った経過時間計測に変えた点。Scratchは遅いのでループ回数がsleep無しでも少なく,精度が悪くなってしまったため。

これでそこそこは認識するようになったと思っているけれど,本家CWインベーダーと比べるとまだまだ。パラメータ調整でどうにかなるレベルなのか,アルゴリズムが違うのか,Scratchの処理速度の問題なのか,まだ切り分けられない状況。今後の課題としたい。

プログラムはいじらずに,拡張ブロックを使ってMicro:bitをBluetooth接続でつなぎ、入力端子に電鍵をつないでみた。

これでキーボードで打鍵する違和感をなくせればラッキー、と思ったけれど甘かった。Bluetoothで接続している関係か、打鍵してからScratchが反応するまでの遅延があって、余計に違和感が大きくなってしまった。お手軽な構成で電鍵が繋げると思ったのに残念。



タグ:CW Scratch
posted by ソウヘイ at 18:15| Comment(0) | アマチュア無線

2019年04月22日

ミステリ再読 黒猫の三角

「黒猫の三角」(森博嗣)を再読了。文庫版第4刷。

悩んだけれど,結局電書版は買わずに文庫版を納戸からサルベージした。

2011年以来3度目の再読になるかな。展開はわかっているはずなのに,あぁ,こんなに面白かったっけ。とまた感心してしまった。

喫煙者のマナーがいろいろ言われる昨今だけど,本作中のように誰もが所構わずスパスパ喫っていた時代から比べたらとても快適になっていると思う。


posted by ソウヘイ at 16:51| Comment(0) | 読書

2019年04月20日

アマチュア無線(JIDX CWコンテスト2019とLoTW期限切れ失効)

最近アマチュア無線関係の活動が低調で、コンテストの日程などもすっかり頭から抜け落ちていた。

コナンくん映画のブログ記事を書こうと、昨年のブログを読み返していたところ、この時期にJIDX CWコンテストをやっていることを思い出した。確認してみたら、まさに開始後数時間経ったところだった。

どうせCondxも良くないだろうし、ベランダにモービルホイップを仮設して調整するのも面倒だし、今年は不参加にするかなぁ、としばらく悩んだものの、このまま「面倒だ」と何もやらずにいたら、たしかに楽かもしれないけれど、趣味の楽しみもまたなくなってしまう。

と思い直して、14MHzのモービルホイップを仮設し、カウンターポイズを床に這わせ、SWRを見ながらエレメント長を調整。なんとかリグの表示でSWR
2コマくらいに追い込んだ。

IMG_7063_w560.JPG

ワッチすると局数は少ないものの、EUが割と強く聞こえている。縦振れキーを叩いて呼んでみたら、何度か聞き返されたものの、無事に交信成立。

けっこうできるかも、ということで、べガリのパドルをセットして強く聞こえる局を呼んでみる。

すると昨年はまったくできなかったZone16より向こうの15,14あたりともつながった。Condxは良くはないけれど、最悪ではない、という感じかも。

22時過ぎまでやって、9局。14、15、16、17、18エリアと交信できたので1日目は終了。

2日目も早朝からワッチしてみたけれど、この時間帯はまったく聞こえず。用事を済ませて、11時頃に再度聞いたら、東南アジアとロシアが聞こえて、19、27、28を追加。

夕方も少し追加して、21局。10ヶ月ぶりのDX交信ができて、結果として重い腰を上げて良かった。DXCCでMixdのNewが一つでも増えてくれたら嬉しい。

Freq. Point  Multi  QSO
----------------------------------------
14MHz 21 24 21
----------------------------------------
Total 21 24
Score 21 x 24 = 504
DXCC Multi 13: 9M2, BV, BY, DL, EX, K, KH0, OH, T8, UA, UA9, UR, ZL
Zone Multi 11: 3, 14, 15, 16, 17, 18, 19, 24, 27, 28, 32


LoTWを確認したら、証明書の更新期限が三日前に切れていた。そういえば交信手続きをしてね、というメールが何度か来ていたような気がする。まだ先だと思っているうちに忘れてしまっていた。

いったん証明書がExpireされると、ログのアップロードができなくなって、証明書の再取得が必要になるらしい。ちょっと焦ったけれど、冷静にTSQLからRequest new call sign certificate...を選んでリクエストを送ってみた。ら、2日後に新しい.tq6ファイルが届いて、それをTQSLのLoad call sign certificateで読み込ませたところ、無事に再認証が完了。良かった。

【過去のJIDX CWコンテスト】
2018年2016年2015年2014年
posted by ソウヘイ at 06:57| Comment(0) | アマチュア無線

2019年04月19日

猫のピート14歳

捨て猫だった牡猫ピートは14歳になった。

一年一年、一日一日を元気に過ごしてくれることがありがたく、感謝しかない。

IMG_3426_w560.JPG

「猫あるある」なのかもしれないけれど、歳をとるごとにおしゃべり(よく鳴く)になり、また甘えたがるようになってきたように思う。

冬の間はコタツを出しているけれど、自分がコタツに入ればピートが膝の上の定位置に乗るのが決まりだし、お風呂上がりにはフタの上でくつろぐのも決まり。ピートは早朝(4時とか)から人間を起こすのに始まって、とにかく日課を欠かさない。

IMG_6331_w560.JPG

かんなさんが毎日何度も何度も「かわいい」と繰り返し呼びかけるため、自分の名前は「かわいい」だと思っているフシがある。「ピート」と呼んでも来ないのが、「かわいい」と呼ぶと来たりする。

デルタとの関係が相変わらずなのがやや心配で、ピートが毛づくろいをしてあげるんだけど、だんだんデルタが嫌になってきて顔ペシするものだから、ケンカになる。それでもピートはデルタのことを放っておけないみたいで、またしばらくすると毛づくろいしてあげる。

7520769984_IMG_4421_w560.JPG

この1年のトピックとしては、今まで見向きもしなかった「ちゅ〜る」を食べるようになったこと。まだ大好物、というほどではないけれど、気が向いたときは完食する。食べ物の好みにはうるさいピートなので,手に入りやすいおやつを気に入ってくれるのは助かる。

これからも一緒に過ごせる一日一日を大切にしたい。

IMG_4400_w560.JPG

【過去記事】
ピート13歳,12歳11歳10歳9歳8歳7歳6歳5歳4歳3歳2歳1歳

Flickrのピート写真,および特に子猫時代の写真

【海外でピートのことを紹介頂いた記事】
Pete’s Foster Family Becomes His Forever Home
Pete and Delta Overcame Shocking Earthquake in Japan

IMG_3718_w560.JPG

IMG_3470_w560.JPG
posted by ソウヘイ at 22:04| Comment(0) |

2019年04月13日

映画鑑賞 名探偵コナン紺青の拳

恒例のコナンくん映画(23作目)。公開初日のレイトショーで大きいスクリーン(386席)が90%ほど埋まっていた。

怪盗キッド回は2006年2010年2015年以来かな。キッドと京極くんの見せ場がメインで,推理やコナンくん自身のアクションは控えめだった。

今回も眠りの小五郎は活躍せず。最近はテレビ版でも昼間から呑んだくれている単なるダメおやじ的な描かれ方なので少し可哀想に感じてしまう。

園子ちゃんが海外で危険な目に遭ったり,ましてや怪我までした場合,いくら京極くんが付いていると言ったって,鈴木財閥が放っておくはずはないんじゃないの...という違和感はあった。

興行的な配慮で安室さんは出してくるんじゃない?と,かんなさんは予想なさっていたけれど,ハズれたみたい。まあキッドみたいな飛び道具キャラと公安やFIBは相性が悪いか。その代わり来年は赤井さんの声で予告があったので,またガンダム回になる可能性高し。




参考:劇場版名探偵コナン公式サイト
posted by ソウヘイ at 22:49| Comment(0) | 映画