電信聞き取り練習機の製作
              JA1XTQ
月日が経つのが早く感じる年齢になりました。
気が付けば随分と長い間電子工作をしていません。
ということで、頭のリハビリを兼ねて何か作る
ことにしました。
以前から和文で交信したくて練習しているの
ですが、なかなか長続きせず上達しません。
電信聞き取り練習機を作ろう、ということで少し
考えてみました。

1 練習機のポイント
 作るにあたって,以下のような事柄をポイント
としました。
・和文が出来る
・ヒアリングのスピードを変えられる
・キーボードで課題電文を入力する
・カナ表示できる
・マイコン(AVR)を使う
・キーボードは有るもの(PS2)。
 このようなポイントを踏まえた上で構想検討
に入りました。

2 初期構想
2.1 ハードウェア
 以前作ったロギングマシーンの回路をその
まま利用する。余計なもは使わない。
(外付けEEPROM、RTC、KEYERとか)
ちなみにキーボードは古いPS/2(US)です。
USBはプロトコルが違うので不可です。
@ロギングマシーン写真

A回路図

BPCB図


2.2 ソフトウェア
 主な機能は下記を想定しました。
 (1)英字(ABC)→英字電信符号変換
 (2)和文(カナ)→カナ電信符号変換
 (3)電信符号出力(KEY出力)
 (4)課題電文入力
 (5)課題電文保存(EEPROM)
 (6)課題電文読み出し(EEPROM)
 (7)課題電文消去(EEPROM)
 (8)電文出力速度変更

3 出てきた問題点と対策
 ソフトウェアは仮組の状態でハードの確認
と並行します。デバッグ文を入れながらハード
とソフトの切り分けをするわけです。
時系列と合っていないかもしれませんが主な
ものは次の通りです。
(1)LCDが表示されない
 原因:LCDの+端子の配線もれ。
 対策:配線追加しました。
(2)MicrochipStudioのEEPROM書き込み
 ファイルがエラーになる
 原因:VASCOMを使っているのですが、
    WIN10以降はPICライター
    がVASCOMでは使えなくなって
    しまいました。
    そのためMicrochipStudioに
    Hex形式で読み込ませて焼い
    ています。最近内部EEPROM
    を使っていなかったようで今回
    気が付きました。しょうが
    ないのでIntel形式のHexファイル
    に手動変換してみたのですが、
    MicrchipStudioは気に入ら
    ないようで弾かれます。
    丸一日無駄な時間を取られ
    ました。
 対策:だんだんイラついてきて、プログラム
    で初期値を書き込むようにソフトで
    対応することにしました。
(3)内部EEPROMが書き込まれない
 原因:実績のあるプログラムをコピペしたの
    ですが、書いて、読んで、消して、読ん
    で、書いて、読める。
    電源をつけている間は読める。でも電源
    を切ると消える。2日間悩みました。
    WEBで検索すると、書き込み電圧が低下
    するとこういう症状になる、らしいとか。
    有力な情報なしです。
    でも同じ回路でちゃんと動いているしなあ。
    ノイズか電源まわりが弱いのか原因が特定
    できない。
    (後日バグだったことが発覚。) 
 対策:使う予定でなかった外部EEPROM(24LS64)
    に書き込むようにソフト側で対応すること
    にしました。
(4)キーボード入力でカナが使えない
 原因:キーボード入力はVASCOMの関数を使って
    います。カナなんか対応してないですよね。
    深くは調べず考えず、そうだよなー。
 対策:ASCIIとJISのコード表を眺めつつ、何か
    ないかなあ。そうだ電信符号からカナに
    変換すりゃいいじゃん。
    ソフト側で対策することにしました。
(5)キーボードからの文字コードが突然変わる
 原因:まったく判らず。
    30年くらい前にSUNワークステー
    ション(ジャンク)用に買ったもの
    なので使い方すら覚えていない。
    高かったのだけ覚えている。
    KEYコードをプログラムで表示させて
    判明。実行中にBS(後退)が¥に突然
    変わる。なんじゃこれ。
    確かにJISキーボードのキー配置は
    そういう風に見えなくもないけどねー。
P写真

 対策:場当たり対応しました。変わった文字
    をプログラムに埋め込んでしまいました。
    他にも有りそう。
     @ BS(後退)と¥
     A ,と;
     B .と:
(6)外部EEPROMに書き込み(読み込み?)出来ない
 原因:2日考えました。内容をLCDに表示させ
    たり四苦八苦した結果、ようやく判明し
    ました。なんと初歩的なミスでした。
    変数の型変換が必要なんですが、そこで
    勘違い。いったん型変換して両方の型を
    合わせないと正しく結果が出ません。
    VASCOMでは、コンパイル時はエラーには
    なりませんが、実行させると値がゼロか
    NULLになるようです。
    ということは内部のEEPROMもか?
    急遽BYTE型で実験したら、電源
    を消しても消えませーん。
 対策:I2cSENDOとI2CReceiveで使う変数の型を
    合わせたら上手くいくようになりました。

とりあえず大きなバグは無さそうです。時々キーボ
ード入力でおかしなことが起こります。
たとえば急に大文字が小文字に変わったりとかで
安定しません。早く打つと出るような気がします。
キーボードなのかソフトのバグなのか判りません。
バージョンアップしつつ暫く使ってみましょう。

<追加>キーボードについて
PS2用でも色々なKBが有るので、テーブルを
書き換えるとか記号を読み替えるとかが
必要です。
JISカナKBは対応が難しいと思います。
キーを押したときに何をPCに送っているのか
見てみないと上手くいきません。いずれにし
何らかのソフト側の対応が必要になると思い
ます。結構面倒です。

4最終結果
 回路は変更なしです。配線漏れがありましたけど。

C配線(部品面)写真 上からみると

D配線(配線面)写真 裏から見ると

E仮ケース写真 仮ケースに入れた


●プログラムの動作画面と操作
 CWヒアリングマシン動作用プログラムをPCで
 立ち上げたところ
F写真

CW練習機の使い方
●電源を入れると"HELLO"が表示されます。
 すぐに消えてセーブした電文が表示されます。
G写真 

●まず練習文を入れます
 手順は次のとおりです。
・セーブした電文が表示されています。
・新しい電文を入れるときはEEPROMを
 消去(サブメニューC)ロード(メニューL)します。
・キーボード入力します。
・和文にするときは半角カンマ”,”
 を打ち込みます。
  (注)先頭からカナの場合はまず半角“,”
     を入れてください。
・"kanahenkan"と表示されます。
I写真

・短点は"O"(英字"О")、長点は"I"(英字"T")
 終わったらリターンを押下します。
J写真

・カナ変換を終わる時は”.”1文字打ち込みます。
・入力した電文が全部表示されます。最後尾に半角
 ”.”が表示されます。
K写真

・続けてカナを入力するときはそのまま"O"(英字"О")、
 長点は"I"(英字"T")を入力カナ変換を繰り返します。
 変換できないときは”#”が表示されます。その時は
 バックスペースで”#”を削除します。
L写真

・カナ変換を終わる時は半角”.”を押下します。
   M写真

・入力した電文が全部表示されます。
・文字数は32文字(2行)です。
 最初は短い電文で動作確認してください。

●メニュー
 メニューは下記のとおりです。
  P CW出力(KeYing)
  S SAVE
  L LOAD
  N NEXT(SUB MENU)
N写真

 サブメニューは下記です。
  M CLEAR
  S SPEED (10-30)
O写真

・P プリント LCDに表示されている内容
        をCW出力します。
・S セーブ  練習文を入れ終わったらEEPROM
        にセーブします。
・L ロード  EEPROMから練習文をロードします。
        電源を入れた時に前回セーブした
        内容がロードされます。
・N ネクスト サブメニューを表示します。

・M クリア  EEPROMの練習文初期化をします。
・S スピード 打鍵速度を変更します。
        (10〜30 大体の速さです)

電子工作、プログラミングの参考になれば幸いです。

プログラムリスト 需要は?で長いので所々です
         暇な方は眺めてください