|
PIC 12F1822 エレキー タッチパドル |
|
CW復帰をめざすにも縦振り電鍵もエレキーのパドルもない^-^;;
エレキー用のパドルは買うとお高いのでタッチパドルを作ってみることに。
タッチセンサーはPICのCapacitive Sensing Module(CPS)を使います。
タッチセンサーの動作原理はネット上に詳しい解説サイトが多数ありますので
ここでは省略します。
機能
機能はパドルにさわると電気的に接点出力をONにするものです。
エレキー(キーヤー)の機能はありません。
タッチセンサの判定時間
タッチ電極(センサーパッド)に一瞬チョンとタッチする時間は運動神経の鈍い私の場合
オシロスコープで見てどんなに早くても50msくらい。
CPSは同時に複数のタッチ電極を処理できないので50msの間にDOTとDASHを判定するための
時間は25ms以下でなくてはいけません。さらに余裕を見てタッチの判定は10msとしました。
DOT:10ms 1msあけてDASH:10msの繰り返しです。50msあればそれぞれ2回判定できます。
タッチセンサの電流値
10msの判定時間でTimer1がオーバーフローせずそこそこカウント数をかせぐには
充放電電流は18μAとします。
電流値と1ms・10msのTimer1のカウント値 ( )内は10進数 Clock:8MHz
ブレッドボードから10cmリード + 20mm X 20mmのアルミ板
CPSCON0: CAPACITIVE SENSING CONTROL REGISTER 0
bit 3-2
00 = Oscillator is off
01 = Oscillator is in Low Range. Charge/Discharge Current is nominally 0.1μA
10 = Oscillator is in Medium Range. Charge/Discharge Current is nominally 1.2μA
11 = Oscillator is in High Range. Charge/Discharge Current is nominally 18μA
使用環境によるスライスレベルの変更
タッチセンサーは「タッチ電極に指が触れるとTimer1のカウント数が減少する」はずですが
私は幽霊なのかカウント数が増加する時も^-^;; → くわしくはこちら
そこでタッチしたときにカウント数が増加するのも考慮してスライスレベルを5段階に
調整できるようにしました。
パドルモードと電鍵モード
DOT、DASHのパドルで使う時と、DASHのみの電極で縦振電鍵の代用として
使えるようにしました。
私の使用リグのIC-7300の場合は電鍵はGNDとDOT端子に接続する仕様に
なっているのでDASHに触るとDOT側に出力するようにしてあります。
スリープ
およそ5分間タッチなしでスリープします。
動作電流は動作時PICが1mA + 動作中表示のLED電流です。
スリープ時は変動がありますが30uA以下です。
PIC12F1822はスリープ電流やや多めです・・・・
回路図
※ TLP222A-2はフォトリレーですが回路図ではフォトカプラーになっています。
※ TLP222A-2発光側の抵抗はもう少し低いほうがいいかも 100Ωで3V時の実測=5mAくらい
※ ジャックは使用機器に合わす
プログラム
MPLAB X IDE v2.15 XC8 v1.32 です ソースリスト HEXファイル
初めてのCプログラムです。 ソースは限りなくアセンブラ的かもしれません・・・・^-^;;
コメントは入れてありますので必要に応じて適当に改良してください。
使い方
・電池を入れるとLEDが点灯しパドルモードで起動します。リセットスイッチはありません。
・5分間タッチがないとスリープし動作表示LEDが消えます。
スリープからの復帰はSWを1回押します。
・動作中にSWを2秒以上押すと 「エレキーモード」 ←→ 「電鍵モード」 を交互に切り替えます。
SWを押すとLEDは消灯し2秒経過すると点灯します 点灯したらSWをはなしてください
パドルモードはLED点灯 電鍵モードはLED点滅
・タッチ判定のスライスレベル(感度)の変更
初期設定はスライスレベルを80%(120%)にしてあります。
感度が悪いか良すぎる場合60%(140%)〜90%(110%)の範囲で調整ができます。
・スライスレベル変更方法
SWを1回押す → LED消灯 → 2秒以内にスイッチを2回押す → LEDが2回点滅します
このあと3秒間隔で 5回 → 4回 → 3回 → 2回 → 1回 とLEDが点滅します
いずれかの点滅後にSWを押すとその点滅回数に応じたスライスレベルが設定されます
5回 → 90% / 110%
4回 → 85% / 115%
3回 → 80% / 120% デフォルト値
2回 → 70% / 130%
1回 → 60% / 140%
※ 何も操作しなければ変更はしません
上記以外に変更する場合はソースファイルの void MODE_Set() サブルーチン内の
switch文のcaseの値を書き換えてください。
・基準値更新
使用場所など変更した場合タッチしていない時のカウント値(基準値)も変わる場合があります。
基準値はあまり変動しないためプログラムで常に更新はしていません。
そのため手動で更新できるようにしました。
動作中にSWを押し続ける → LEDが消灯し2秒後に点灯 → さらに押し続けると2秒後LED消灯
ここでSWを放せば完了です。SWを押している時間は約4秒です。
※ 操作中はタッチ電極Iに手を近づけないようにしてください。
猛烈な速さでモールスを打つ人にもちゃんと対応できるかのテストはしていませんが
とりあえず今のところ順調に動いています・・・・・
まぁ、短点が1個多く出てしまうとかは少し慣れが必要かもしれませんが・・・
パドルに最適な形が思いつかずとりあえずこんなケースに組み込みました。
ケースはタカチ TW4-2-8 パドルの間隔が40mmと広いけど・・・・ |
|
|
タッチ電極は 20mm X 13mm の銅板 |
|
カウント数表示プログラム
CPSの充放電電流や時間、タッチ電極の大きさでTimer1のカウント数が変わるため
単純にカウント数をUARTで表示するだけのプログラムです。
PIC 12F1822の RA2にタッチ電極を接続 RA4がTXなのでFT232Cなどを接続
SPEEDは9600BPSです
ASMソース CPS_to_SEND.ASM HEXファイル CPS_to_SEND.HEX
ソースはアセンブラです。余分なものがくっついていますがMAINプログラムはわずかですので
すぐにわかると思います。
パドルをそれらしくしてみました |
2018/2/12 |
前回作ったものは電極の間隔が40mmと広くて練習用にもいまいちいでしたので
ちょっとそれらしくしてみました。
全体はこんな感じ 重量:120g
ケース後ろにモードスイッチとLED、出力ジャック ケースの穴を利用
ケースの中はこれだけ 回路・プログラムの変更はなし
使わなくなった2.5インチHDD用の外付けケースを利用して作ってみました。
パドルは番号札に(文具生活ではキーホルダーではなく番号札として売られていました)
電極用の30Φステンレス板を両面テープで固定しています。
ステンレス板はハンダができないので番号札とステンレス板の間に銅テープをはさみ
銅テープにリード線をハンダしています。
ケース内部は11mmと高さがなく電池BOXが使えないので電池に直接ハンダしてます^-^;;
電極用の30Φステンレス板があるためなんだか間抜けなような感じもしますが
使ってみてなかなか使用感はいいです^o^
ただ重量が120gとまだ軽いので空いたスペースにいらなくなった電池を5本ほど入れて
重りにするとなんとかホールド感もでます。
あとは番号札とステンレス板をプリント基板で作ってしまえば見栄えも良くなるかも??・・・・
|
|
|
|
2017/11/4 |
|
TWE-Lite DIP モービル用ワイヤレスPTT |
|
TWE-Lite DIPという2.4GHzの無線モジュールを使ったワイヤレスPTTを作ってみました。
機能は単純にモービル用マイクのPTTスイッチをワイヤレス化(無線化)したものです。
リグ(無線機)付属のマイクについている周波数のUP/DOWNなどの機能は省略しました。
そのかわりスタンバイトーンをおまけでつけています^-^;;
回路図はかなり昔のリグでKENWOODのTW-4000用となっていますが
マイク端子を手持ちのリグにあわせば問題はありません。たぶん・・・
TWE-Lite DIPでPTTを無線化する動作原理についてはこちらを参照してください。
回路図 クリックすると拡大します
PTTを無線化する方法は動作原理で説明したとおりですが
受信部と送信機TYPE2はPICマイコンでの処理を追加しています。
・もともとのハンドマイクも使えるようにマイクの切り替えはリレーで行います。
・誤って「送信」を押しても3分間以上送信しないようにタイマーをつけました。
・モービルマイクは必要に応じてマイクアンプを実装した方が良いかもしれません。
TW-4000のマイクはダイナミックマイクですのでモービルマイクにコンデンサマイクを
使う場合はアンプはなくても問題ないかもしれません。
私の場合はKENWOODのカーナビGPX-07についていたマイクスピーカーユニットが
残っていたのでそれを使ってみました。4558(OPアンプ)による20dbのアンプ内臓です。
そのため9にVが必要になりました。
受信部
TWE-Lite DIPのDO1、DO2の出力をPICでラッチして無線機の送受信を切り替えます。
PIC12F683のGP0はPTT、GP1はマイクの切り替え用リレー駆動用です。
またGP1は送信状態を子機送信機に伝えるTWE-Lite DIPのDI1入力も兼ねています。
このGP1はマイク切り替え時のノイズ防止のためGP0のPTTより10ms早く切り替わり
10ms遅れて復帰します。必要ないかもしれませんが無線機によってはマイクが
切り替わる時にプチッというノイズがはいることがあったため実装しました。
GP2はスタンバイトーンの方形波出力用で「スタンバイ」スイッチが押されたら
約150ms間トーンを出します。おおかたの方は不要でしょうから未接続でかまいません。
最近の無線機はマイク端子に8V程度の電圧供給端子がありますがたいていは十数mA程度と
思います。TWE-Lite DIPは常に17mA程度消費しますので別電源にした方が無難でしょう。
またこの回路図のように12Vから3.3Vを3端子レギュレータでつくる場合は1Wクラスの物を
使用します。
入出力電圧差が11Vくらいあると20mAの消費電流でも0.22Wもの損失が発生します。
基板は秋月電子のCサイズ ケースはタカチYM-80
TW-4000に取り付けた状態 マイク・スピーカーユニットはAMP内臓でサンバイザーへ取り付け
送信部
・PTTスイッチは送信側の無線モジュールTWE-Lite DIPを省電力で動かすために
「送信」と「スタンバイ」の2つの独立した押しボタンスイッチです。
PTTの無線方式では「送信」を押しても無線機が100%確実に送信状態になっているとは
限りません。送信機側でも無線機がちゃんと送信になったかLED表示でモニタできるように
TWE-Lite DIPを子機間欠受信モードで動作させています。
→ TWE-Lite DIPのM1とM3をGNDに接続
だだし状態をモニタするためにはスイッチの2度押しが必要なのが欠点です;・・・
^-^;
「送信」スイッチを押す → 受信側のDO1がLowになる → 無線機は送信状態になる
「送信」スイッチをもう一度押す → LEDが点灯して無線機が送信状態になったのを確認
「スタンバイ」スイッチを押す → 受信側のDO2がLowになる → 無線機は受信状態になる
「スタンバイ」スイッチをもう一度押す → LEDが消灯して無線機が受信状態になったのを確認
現実はスイッチのチャタリングで3回に1回程度は2度押ししなくても大丈夫のようですが・・・・
このめんどうな操作を回避するためにTYPE2ではPICマイコンでスイッチからの入力を
2度押しした状態にしてTWE-Lite DIPに渡します。
TYPE2は「送信」「スタンバイ」を普通に1回押せばいいわけです。
つまり1回スイッチを押せば必ず2回電波を送信するのでスイッチを押しても送信にならない
または受信にもどらないといった誤りも回避できる確率が高くなります。
このモニタLEDを点灯させるために電池はCR2(3V 750mAh)を使用しています。
青色高輝度LEDと560Ωで実測1.1mA程度でも眩しいくらいです。
もう一つの理由は子機間欠受信モードは親機が動作していないと動作時間が長くなり
電池の消耗が大きいということです。 詳しくは こちら 子機間欠受信について
電池の消耗を防ぐためにコンフィグ情報を変更します。
--- CONFIG/MONO WIRELESS TWELITE DIP APP V1-08-1/SID=0x81014a63/LID=0x00 --
a: set Application ID (0x67720102)
i: set Device ID (--)
c: set Channels (16)
x: set Tx Power (13)
t: set mode4 sleep dur (60000ms) ← 60000ms 60秒に変更
y: set mode7 sleep dur (10s)
f: set mode3 fps (32)
z: set PWM HZ (1000,1000,1000,1000)
o: set Option Bits (0x00000002) ← ここも定期送信しないに変更しておく
b: set UART baud (38400)
p: set UART parity (N)
電池の消費電流について
スイッチの動作がないときはいつもスリープしています。
TWE-Lite DIPとPICあわせて1uA以下。
テスタの250uAレンジで針の太さ分振れるかどうかくらい。
間欠受信時は17mAで親機が動作していないと100msくらいONしています。
上記のようにコンフィグで間欠時間を60秒に変更して親機が全く動作していないと仮定すると
1uA x 24時間 + (1日1440回オン X 100ms = 0.04時間) X 17mA ≒ 700uAh
CR2 750mAh ÷ 0.7mAh = 1071日 何もしないとこれくらい持つ計算になります。
ケースはタカチSW-55 CR2の電池ケースは端子部分を切り取って使います。
単三電池ケースの端子でもだいたい同じ大きさです。ケースと基板でぴったりになります。
スイッチは両面テープでくっつけてスイッチの足の部分に穴を開けてケース内に入れました。
ケース以外の部品はすべて秋月電子 CR2は1個140円でお得です・・・・ 総重量:50g
送信状態のモニタLEDが不要の場合は子機間欠10秒で動作させれば
コイン電池CR2032等で動作できます。(TWE-Lite DIPのM1、M2、M3をGNDに接続)
その場合はコイン電池に100μF程度の電解コンデンサを並列に接続してください。
受信部
ASMソースF683_TW4000_PTT_V01.ASM HEXファイルF683_TW4000_PTT_V01.HEX
送信部
ASMソースF683_TW4000_PTT_TR_V00.ASM HEXファイルF683_TW4000_PTT_TR_V00.HEX
送信部はハンドルに両面テープで取り付け。 リグはコンソールBOXに立てかけてます。
PICの開発環境もないしTWE-Lite DIPの設定もできない場合でも動作原理のページの
回路をそのまま使って作ることもできるかと思います。
CQ ham radio 2017年6月号にも動作原理はちがいますがTWE-Lite DIPを使った
ワイヤレスPTTの製作記事が出ていました。
|
|
|
2018/2/4 |
|
OPC-2350LU たぶん同等品?を作ってみました |
|
D-STARのターミナルモードなどを使うためには「OPC-2350LU」が必要となっていますが
Windowsでは一般的な「USB ⇔ RS232C」変換ケーブルでもOSが認識すれば問題なく
使用できるようです。 ⇒ こちらを参照
ところがAndoroidスマホは「FT232RL」チップしか認識しないようです。
ほかにも認識するチップがあるのかもしれませんがあまり情報がありません。
OPC-2350LUもこのFT232RLを使用しているようなので自作してみることにしました。
秋月電子のパーツを利用すれば簡単にできます。
ZenFone Max と VAIO Phone A で問題なく動作(D-STAR)しています。
FT232RLは秋月電子の[AE-UM232R]モジュールを使います。
RS-232C ⇔ C-MOSレベル変換はADM3202またはMAX232Cなどをつかいます。
ケースはタカチ PS-65
私は232Cレベル変換にADM3202のSOPを使いましたが
おすすめは → [AE-ADM3202]3V・3.3V・5V系−RS232レベル変換基板
これならもっと小さく簡単にできてしまいます。
|
|
|
2019/10/20 |
|
なんちゃってマイク |
|
ID-4100をお使いのみなさん、リグに付属のHM-232というマイク
あの硬くて太くてどうにもならないカールコード何とかしてほしいと思いません?
固定で使うのもさることながらモービルで使うには最悪です!
IC-7300やIC-9700のHM-219は全然そんなことないのに
どうしてこうも違うのでしょうかねぇ ICOMさん・・・ リグの値段のせいか??
そんなわけで昨年の今頃、ちっちゃなマイク(写真右)を作ってみました。
モービル用としてはコンパクトでいいのですが、PTTのスイッチがいまいちなのと
軽すぎてしっくりきません。それにちょっと小さかった!
大きさと適度な重さは重要なファクターかと・・・
そこでふと現在休眠中の「PIC 12F1822 エレキータッチパドル」を眺めてるうちに
コンデンサマイクを追加すれば無線機のマイクになるじゃん!・・・という訳で
ICOM ID-4100用のマイクに改造してみました。
題して「タッチパドル 改 なんちゃってマイク」 UP/DOWNのスイッチはありません。
回路図 クリックで拡大します
回路はタッチパドルにコンデンサマイクを追加しただけ。
HM-232の回路定数はR1のみしかわかりません。コンデンサはネット上にでている
HM-36の値を参考に手持ちの部品で適当にそろえています。
特にひどい音質ではないと思いますが・・・
PIC 12F1822のプログラムは一部修正
・両方の電極にタッチするとPTTがONになる → LEDが点灯して送信中表示
・ミスタッチを防ぐために300msのディレイをいれました。
・スリープ解除中LEDは2秒間隔で点滅
使い方の基本はエレキータッチパドルと同じでセンスレベルの調整もできます。
重さは電池込みちょうど60グラム
私の小さめの手にはぴったりのサイズと重さ
音の良し悪しは別としてわりと使い心地がいいです^O^ ← 自己満足
PTTは触れるだけなのでしゃべってる時にPTTスイッチが途中でOFFになっていた
なんてことがあまりない。かわりにミスタッチですぐにPTT ONになる^-^;;
こんなもの好きなマイクを作るのは私だけかもしれないけど
せっかく作ったタッチパドルの有効活用としておきましょうか・・・
ソースリストはここに置いておきます ご自由にどうぞ goto文のオンパレード^-^;;
ソース 12F1822_CPS_Mic_V00.c HEXファイル CPS_MIC.hex
|
|