エレキーの「ー」 (了)
2013-09-14
TM-x55兄弟に相応しいミニ・エレキーがようやく完成しました
また何かに気づいてプログラムの改良はやるかも知れませんが、一応「Ver 1.0」扱いとしてみました。
◆ 諸元
ちょっとまじめな諸元です
◆ 回路図とハードウェアのポイント
回路図は以下の通りです。

PICのリーク電流は非常に小さいため、安定に動く程度のプルアップ抵抗値(10KΩ)としましたが、キーイング時は0.3乃至0.6mAを消費します。チャタ防止用には0.0022μFの積層セラコンを入れましたが、10KΩとの組み合わせで特に問題は起きていません。暇になったら波形観測してみて、もう少し大きな値のプルアップ抵抗でいけないか、次の「本格エレキー」の参考にしよう・・・って、いつになるんだろう
キーイング回路は、手持ちでhFEが一番大きかったNPNタイプでオープンコレクタとし、逆接保護用に古~いダイオードを入れておきました。相手が真空管リグでなければこの辺りは選択肢も広いんで、手持ちの「古めの半導体」を消費するには打って付けかも知れません。ちなみに、このトランジスタのhFEは実測で450以上ありましたから、多分20mA程度のキーイングは可能、キーイング時の(このトランジスタに関わる)消費電流もかなり小さくできた(50μAくらいかな
)と思います。
キーイング時の消費電流が最大でも1mA程度であることと、電源が「電池」であることから、パスコンはPICの安定動作用の0.1μFのみにしました。また、「MODE」はトグルスイッチで動作切り替えするだけのため、「チャタ取り」(セラコン)は省略しました。
まぁ総じて、普通~の回路に落ち着きました
◆ ソフト処理のポイント
(1) 状態遷移表
今回は「状態遷移表」(状態と発生イベントのマトリクス)を作り、キーイング検出や各種のタイマーON/OFFが設計してあります。状態遷移表云々は他に譲りますが、要は極力「if 文」が無いように設計しました。こうすることで、この表との睨めっこでデバッグが机上(と言ってもExcelですが・・・)で粗方終えられて非常に楽になります。
また、掛け算命令が処理時間を引っ張らぬよう、「ビットシフト」で済ますことができる演算に収束させるようにしました。例えば変数nの値を5倍したければ、「nを2ビット左シフトしたものにnを足す」といった方法です。これにより、妙な演算ライブラリが展開されず、かつ速度も稼げます。
状態遷移表も、イベント数を2のべき乗・・・といってもあんまり大きな数にはできないんですが、ひとまず「最大8」と決め、「状態番号を3ビット左シフト+イベント番号」で処理分岐できるようにしました。if 文いらずで結構いい感じです・・・って、あんまり伝わらないかな
見てもあんまり参考にならないと思いますが、キーヤー処理の状態遷移表を・・・きゃ~ハズカスィ

ちなみに、割込処理からのイベント受付には簡単なキューを設け、その中にイベント番号を放り込んで割込処理は終了し、メインループの中でイベントを拾うようにしています。ですから、タイマが比較的正確に割り込みを発生させても、メイン処理でそれを認識するまでに少しタイムラグが出てしまいますが、毎度同程度のラグに落ち着くためこの辺りは目を瞑っています。
また、メインループも「何もしないとき」・・・要は、上の状態遷移表にある「空き」の時はSleepしていますので、待機時間が支配的なエレキーの処理の作りとしては十分かと思います。
(2) メッセージキーヤー機能の工夫
もう一つのポイントは、最後に盛り込んだ「メッセージキーヤー機能」です。これは当初、2つのタクタイルスイッチの各々にメッセージを括り付けで考えていたんですが、これらのスイッチを押しながら立ち上げることで、幾つかのメッセージを付け替えようとを思いつき、結局6通りのメッセージを切り替えられるようにしました。

タクタイルスイッチの横のトグルスイッチは、写真の状態ではメッセージキーヤー機能、向こうに倒すと速度調整(青が低速、赤が高速)になるスイッチですが、電源ON時にこのトグルスイッチの位置と青・赤のタクタイルの押下状態によって6種類のメッセージが選べるようにしました。青と赤の同時押下を加えると全部で8通りになるんですが、まぁそこまではしませんでした。
この機能は、当初は「QRPでS&P主体なら要らないか・・・」とも思ったんですが、V/UHFで5W運用では案外呼ばれるかも知れず(っていうか、この間の6&Dでは呼ばれたし・・・)、付けてしまうと結構便利そうです。一丁前に「CQマシーン」にもなってしまいました
◆ 総括
PICを用いた作り物は2作目ですが、やはりC言語の開発効率の良さは素敵だなぁ・・・と思いました。無償版でプログラムが冗長になってしまう部分は、メモリの大きいPICを使うようにすればよく、結構いろいろなものが簡単に作れそうです。
また、プラケースはハンドドリル1本で加工できちゃう手軽さもますます気に入りました。裏面にきちんと銅箔テープを貼れば、小物であればある程度安定したものが作れそうですし、色・形のバリエーションも沢山ありますから、今後も多用すること間違いなしですね。
ちょっとした作り物のつもりがここ1週余りは「帰ってきたらやる作業」となり、結構夜更かしもしましたが、まぁまぁの完成度で締め括れました。実戦のACAGが待ち遠しいなぁ

◆ 諸元
ちょっとまじめな諸元です

項目 | 内容 | 備考 |
動作仕様 | スクイーズモードB | |
長短点メモリ | 有り | |
メモリ禁止 | 短点の50% | 余計な長短点送出防止 |
ウエイト | 長点:短点 1:3固定 | |
メッセージ 送出機能 | 6メッセージ内蔵 同時使用2パターン | 電源投入時に選択 プログラムでプリセット |
送信速度 | 15-40WPM | スイッチ操作により送信中 でも可変可能 |
KEY出力 | オープンコレクタ | 20mAまでキーイング可能 |
電源 | 単4×2本 | |
消費電流 | 待機時:22uA 送信時:1.1mA Max | 送信時平均0.7mA程度 |
◆ 回路図とハードウェアのポイント
回路図は以下の通りです。

PICのリーク電流は非常に小さいため、安定に動く程度のプルアップ抵抗値(10KΩ)としましたが、キーイング時は0.3乃至0.6mAを消費します。チャタ防止用には0.0022μFの積層セラコンを入れましたが、10KΩとの組み合わせで特に問題は起きていません。暇になったら波形観測してみて、もう少し大きな値のプルアップ抵抗でいけないか、次の「本格エレキー」の参考にしよう・・・って、いつになるんだろう

キーイング回路は、手持ちでhFEが一番大きかったNPNタイプでオープンコレクタとし、逆接保護用に古~いダイオードを入れておきました。相手が真空管リグでなければこの辺りは選択肢も広いんで、手持ちの「古めの半導体」を消費するには打って付けかも知れません。ちなみに、このトランジスタのhFEは実測で450以上ありましたから、多分20mA程度のキーイングは可能、キーイング時の(このトランジスタに関わる)消費電流もかなり小さくできた(50μAくらいかな

キーイング時の消費電流が最大でも1mA程度であることと、電源が「電池」であることから、パスコンはPICの安定動作用の0.1μFのみにしました。また、「MODE」はトグルスイッチで動作切り替えするだけのため、「チャタ取り」(セラコン)は省略しました。
まぁ総じて、普通~の回路に落ち着きました

◆ ソフト処理のポイント
(1) 状態遷移表
今回は「状態遷移表」(状態と発生イベントのマトリクス)を作り、キーイング検出や各種のタイマーON/OFFが設計してあります。状態遷移表云々は他に譲りますが、要は極力「if 文」が無いように設計しました。こうすることで、この表との睨めっこでデバッグが机上(と言ってもExcelですが・・・)で粗方終えられて非常に楽になります。
また、掛け算命令が処理時間を引っ張らぬよう、「ビットシフト」で済ますことができる演算に収束させるようにしました。例えば変数nの値を5倍したければ、「nを2ビット左シフトしたものにnを足す」といった方法です。これにより、妙な演算ライブラリが展開されず、かつ速度も稼げます。
状態遷移表も、イベント数を2のべき乗・・・といってもあんまり大きな数にはできないんですが、ひとまず「最大8」と決め、「状態番号を3ビット左シフト+イベント番号」で処理分岐できるようにしました。if 文いらずで結構いい感じです・・・って、あんまり伝わらないかな

見てもあんまり参考にならないと思いますが、キーヤー処理の状態遷移表を・・・きゃ~ハズカスィ


ちなみに、割込処理からのイベント受付には簡単なキューを設け、その中にイベント番号を放り込んで割込処理は終了し、メインループの中でイベントを拾うようにしています。ですから、タイマが比較的正確に割り込みを発生させても、メイン処理でそれを認識するまでに少しタイムラグが出てしまいますが、毎度同程度のラグに落ち着くためこの辺りは目を瞑っています。
また、メインループも「何もしないとき」・・・要は、上の状態遷移表にある「空き」の時はSleepしていますので、待機時間が支配的なエレキーの処理の作りとしては十分かと思います。
(2) メッセージキーヤー機能の工夫
もう一つのポイントは、最後に盛り込んだ「メッセージキーヤー機能」です。これは当初、2つのタクタイルスイッチの各々にメッセージを括り付けで考えていたんですが、これらのスイッチを押しながら立ち上げることで、幾つかのメッセージを付け替えようとを思いつき、結局6通りのメッセージを切り替えられるようにしました。

タクタイルスイッチの横のトグルスイッチは、写真の状態ではメッセージキーヤー機能、向こうに倒すと速度調整(青が低速、赤が高速)になるスイッチですが、電源ON時にこのトグルスイッチの位置と青・赤のタクタイルの押下状態によって6種類のメッセージが選べるようにしました。青と赤の同時押下を加えると全部で8通りになるんですが、まぁそこまではしませんでした。
この機能は、当初は「QRPでS&P主体なら要らないか・・・」とも思ったんですが、V/UHFで5W運用では案外呼ばれるかも知れず(っていうか、この間の6&Dでは呼ばれたし・・・)、付けてしまうと結構便利そうです。一丁前に「CQマシーン」にもなってしまいました

◆ 総括
PICを用いた作り物は2作目ですが、やはりC言語の開発効率の良さは素敵だなぁ・・・と思いました。無償版でプログラムが冗長になってしまう部分は、メモリの大きいPICを使うようにすればよく、結構いろいろなものが簡単に作れそうです。
また、プラケースはハンドドリル1本で加工できちゃう手軽さもますます気に入りました。裏面にきちんと銅箔テープを貼れば、小物であればある程度安定したものが作れそうですし、色・形のバリエーションも沢山ありますから、今後も多用すること間違いなしですね。
ちょっとした作り物のつもりがここ1週余りは「帰ってきたらやる作業」となり、結構夜更かしもしましたが、まぁまぁの完成度で締め括れました。実戦のACAGが待ち遠しいなぁ

- 関連記事
コメントの投稿
まんにー
こんにちは。おひさです。
台風18号そちらは大丈夫ですか?
当局も重い腰を上げPICプログラミング始めました。
Cではなくいまさらのアセンブラですがw
さし当たってモービル用のPTTスタンバイ回路を作り、ブレッドボード上で動作テストしながら悪戦苦闘してやっとプログラムが出来上がりました。
昔はロジックICあーだこーだしていましたが、今はちっさいPIC1個で出来てしまうってのは楽しいものですね。
キーヤーの記事参考にさせていただきました。今度はキーヤーとDDS制御プログラムを作ろうと思います(無謀?w)
台風18号そちらは大丈夫ですか?
当局も重い腰を上げPICプログラミング始めました。
Cではなくいまさらのアセンブラですがw
さし当たってモービル用のPTTスタンバイ回路を作り、ブレッドボード上で動作テストしながら悪戦苦闘してやっとプログラムが出来上がりました。
昔はロジックICあーだこーだしていましたが、今はちっさいPIC1個で出来てしまうってのは楽しいものですね。
キーヤーの記事参考にさせていただきました。今度はキーヤーとDDS制御プログラムを作ろうと思います(無謀?w)
雨台風、去る・・・
ぶんさん、こちらこそお久です。我が主力アンテナであるステルス君、風には強い・・・っていうか、「細い」っていいことだなぁ(^^; モビホは無論、室内に待避させてあります(^^)v
おお、遂に「禁断のPIC」(?)に手を染めましたか・・・アセンブラは、1ステップずつの意味がはっきり解りますから、地道に勉強していくには最適だと思います。何かお手伝いできることがあったら言ってくださいね。
この三連休は引き籠もり三昧・・・ミニ・エレキーの固定メッセージを、何とかボタンとパドル操作で書き換えられるようにと、ひとまずメッセージをEEPROMに追い出しました。メモリがあと僅かなんで、機能的に作り込めるか心配ですが、何とか頑張ってみたいと思っています。
おお、遂に「禁断のPIC」(?)に手を染めましたか・・・アセンブラは、1ステップずつの意味がはっきり解りますから、地道に勉強していくには最適だと思います。何かお手伝いできることがあったら言ってくださいね。
この三連休は引き籠もり三昧・・・ミニ・エレキーの固定メッセージを、何とかボタンとパドル操作で書き換えられるようにと、ひとまずメッセージをEEPROMに追い出しました。メモリがあと僅かなんで、機能的に作り込めるか心配ですが、何とか頑張ってみたいと思っています。