16F88 エレキー

電子工作

スポンサーリンク


「PIC16F88を使った微妙なタイミングを調整できるエレキー」を製作しました。

背景
アイアンビックパドル用エレキーにはスクイーズ時の動作にモードA、モードBの2つがあります。
詳しくは、ここに解説がありますがエレキー実装上では、
1:短点送信中に、長点パドルの押し下げをメモリする機能
2:長点送信中に、短点パドルの押し下げをメモリする機能
の2つになるのではないでしょうか?
モードBでは、いわゆる長短点メモリが利いた状態になると思いますが、短点送信中にどの時点から長点メモリを有効にするか? 長点送信中にどの時点から短点メモリを有効にするか? 明確に規定されていないような気がします。
このメモリ開始タイミングを可変できるようにすれば、モードAからモードBへと連続的に変化させることができ、自分にあった設定ができるのではと思いました。
今回、長短点のメモリタイミングをVRで自由に設定できるようなエレキーを製作しました。
これによって、自分の技量、パドルの種類、速度にあった微妙な設定を見つけ快適なパドル操作を実現しようとしています。

エレキーチップ(16F88)
PICの16F88を使って、エレキーを実装しました。
16F88は18ピンのうち16ピンをIOとして使えます。
DIOの割付は以下のようにしています。

電子工作


クロックは内部発振8MHzとして、MCLRはOFFにしてます。
各ピンは、
1:AI:0−5V 速度設定。キーイング速度5−68WPM。電圧が高いと高速。
2:AI:0−5V ウエイト設定 2:1 〜 4.2:1 電圧が高いと長点が長くなる。
3:DI:未使用。
4:DI:未使用。
5:電源GND
6:DI:パドルのDOT入力。DOTパドルを押したときにGND電位になるようにする。
7:DI:パドルのDASH入力。DASHパドルを押したときにGND電位になるようにする。
8:DI:パドルの反転指定。5V−>非反転 0V−>反転(右手、左手切り替え用)
9:DI未使用
10:DO:KEYOUT エレキーのキー出力
11:DO:Buzzer用出力(KEYOUTと同じ出力)
12:DO:LED用出力 長短点メモリ可能時にHI
13:DO:LED用出力 動作表示 メインループが動作中に点滅
14:電源+5V(レギュレートされた+5Vを接続)
15:DO:ウエイトが3:1のときに点滅出力(LED点灯用)
16:DO:速度は20WPMのときに点滅出力(LED点灯用)
17:AI:0−5V DASHタイミング。DASH送信中にDOT予約のタイミングを設定する。電圧が高いとメモリタイミングは遅れ(モードA)になる。
18:AI:0−5V DOTタイミング。DOT送信中にDASH予約のタイミングを設定する。電圧が高いとメモリタイミングは遅れ(モードA)になる。
(注:DOTタイミングを最大まで遅らせる(5V)とDOT、DASHの両方をつまんでスクイーズしたときに、キー出力はDASHの連続になって
しまいます。これはソフトウエア上の制約です。)



長短点メモリについて
メモリ機能に関しては以下のように実装しています。
DOTの送信は、1短点分のメイク期間と1短点分のスペース期間からなります。DOT送信中は、ある時点よりDASHパドルのON/OFFを監視して
DASHの押し下げをメモリします。DOTタイミングのAI入力電圧が0Vであると、DOT送信開始直後からDASHメモリを受付ます。DOTタイミングのAI
入力電圧が3Vであれば、DOT送信期間のうち最初の3/5はDASHパドルのメモリは受け付けず、後半2/5の期間にDASHメモリが可能になります。
このメモリ可能期間は基板上のLEDは点灯します。
DASH送信中のDOTパドルのメモリも同様に行われます。
電子工作


動作(フローチャート)
内部発信で1msのタイマー割り込みを生成し、パドル入力の監視、キーイング出力のタイミングはすべて1msタイマー割り込みで行って
いあます。私自身の常用キーイング速度が20−25WPMと遅めですが、1ms周期の入力監視でパドル操作の不自然さを感じることは
ありませんでした。
メインルーチンでは、数百ミリ秒周期でAI入力からアナログ電圧(速度、ウエイト)を取り込んで、割り込みルーチンからも参照できる
グローバル変数に書き込んでいます。また、動作確認用LED(LED3)もメインルーチンから点滅させています。
割り込みルーチンでは、パドルの入力を定周期で監視し操作に違和感がないようにしています。内部で、短点送信中、長点送信中のフラグ
を設け、ブザー、キー出力を1ms単位でコントロールしています。


製作例
以下のような回路で、基板上に組んでみました。
電子工作

完成した基板は下の写真の通りです。
メモリータイミング用のVR2つは基板上においてあります。また、モニター用に5V動作のブザーを外部につけるため、3端子レギュレータは大きめの1Aタイプをしようしてます。
電子工作

スポンサーリンク

IO用のピンヘッダの割付は以下の通りです。

電子工作

デバッグ作業
基板のピンヘッダにブザー、パドル用の配線をしてデバッグをします。

電子工作

2006/06/07
デバッグ&動作確認中にLED3,LED4に「動作中表示」、「メモリ可能期間表示」を割り当てました。

出来上がった基板を100円ショップで購入したタッパにおさめました。
半透明なので基板上のLEDの点灯が確認できます。

電子工作

パドルに接続して動作確認中の写真です。

電子工作


動作確認時の機器の接続は以下の通りです。
電源として、12V1A出力のACアダプタ、スピード、ウエイト調整用の50KのVRを使っています。
ブザーは秋月で購入した5V動作の発信機内臓タイプです。ブザーの音質が個人的な好みと合わないため別のブザーを検討したいとおもいます。
また、回り込み防止のためフェライトコアによるRF対策をしています。現在の運用環境では、21MHzのみSWRが高くたまに、マイクロフォンに回り込む
現象があるため用心のためです。

ソフトウエアのデバッグの途中でN/AのつもりのLEDをメモリ開始タイミング表示用にしましたのでこの点灯具合を見ながらパドルを変えて遊んでみました。
固定運用用のパドルですと、パドルの接点間隔もぎりぎりまで調整でき、安定した姿勢でパドル操作ができるので、メモリ開始タイミングを早めにしても意図した
通りにキーイングができるようです。
移動運用で使う小さなパドルでは、接点間隔を広めにセットしてあるのと、パドル自体が軽く安定しないのでメモリ開始タイミングは遅らせたほうが間違いなく
キーイングできました。

電子工作



このエレキーで製作したソフトを元に、PIC16F886を使ったメッセージメモリキーヤを製作しました。

スポンサーリンク

TOPへ