JJ1WKN Log

自作や移動運用関連のログです。

Tanukino Antenna Analyzer の製作 その1

2015-09-27 | Tanukino
グラフィックLCDのテストが終わってライブラリの機能も何となく分かってきたので、aitendoのDDSモジュールAD9850-Mと組み合わせて、アンテナアナライザーを作ってみました。
FRMSもどきのようにPC接続にすれば、きめ細かいグラフ表示ができるのですが、アンテナアナライザーはアンテナ調整用なので、単体で動作できるようにしました。
もう少し大きなLCDを使えば良さそうですが、とりあえずAQM1248A-RNにしてみました。

とりあえず、スキャン開始、終了周波数を設定して、グラフィックLCDの横幅の128で分割したステップで1回スキャンし、データを収集してグラフ表示することにしました。
SWR測定部はブリッジで、アンテナの代わりにダミーの抵抗を接続してテストしました。

DDSモジュールとSWR測定部の基板です。
SWR測定部はブリッジからの出力をオペアンプで適当に増幅してアナログポートへ接続しています。


裏です。


DDSモジュールを乗せたところです。
今回の基板は動作確認用なので、Tanukinoは乗せていません。
基板上のヘッダーからちびでぃーの2へ線を引いています。


ちびでぃーの2と接続したところです。
左のVRは周波数設定用です。
普通はタクトSWやロータリーエンコーダなどで周波数を設定するのですが、操作性が悪いのでボリュームでアナログ操作することにしました。


オープニング画面です。
大きなフォントを使うと見栄えがするのですが、メモリーを消費するのでとりあえずこのサイズにしています。


SWは1個だけあって、これを押すと次の画面に進みます。
開始周波数のMHz台設定画面です。
周波数範囲はとりあえず3~60MHzにしました。
全域をVRで設定できないこともないのですが、微調整が厳しいのでMHz台だけの設定としました。
もう一つVRを付けて微調整できるようにしてもいいかもしれません。
「^^」で設定中の桁を示しており、3,4,…とVRの角度に応じて上がっていきます。
MHz台の設定が終わったらSWを押すと100kHz台の設定画面になります。


開始周波数の100kHz台設定画面です。
細かく設定することもできますが、アンテナアナライザーなので、100kHz台まで設定できるようにしました。
VRを回すと0から9まで設定できますが、回す角度が大き過ぎるので、半分くらいに狭めた方が使いやすいかもしれません。


終了周波数のMHz台と100kHz台設定画面です。
操作は同様です。
開始周波数を3400kHz、終了周波数を24500kHzに設定したところです。
SWを押すとスキャンが始まります。



スキャン画面です。
スキャン周波数が変化します。


スキャンが終了すると、自動的にグラフ表示されます。
SWR値は1から4までとしました。
縦線がMHzを示しています。スキャン周波数範囲が1MHz未満の場合は100kHz単位の表示になります。
最低のSWR値や周波数を表示するとそれらしくなります。
X軸の目盛は開始周波数と終了周波数のみです。
グラフィックLCDの画面が小さいのでこのくらいにしておきました。


SWを押すと開始周波数のMHz台設定画面に戻ります。
これだと再度同じ設定で測定するには不便なので、改良の余地ありです。
電源を入れ直せば再設定できるので、アンテナ調整には同じ設定で再度スキャンする方が実用的ですね。


ちなみにこのDDSモジュールは5Vでも動くのですが、発熱するので3.3V動作にしています。
3.3Vでも大飯食らいで、最初100mA定格のレギュレータを使ったのですが不安定なので、150mA定格のレギュレータに交換してなんとか動作しています。

SPI接続グラフィックLCD AQM1248A-RNのテスト その2

2015-09-22 | Tanukino
その2です。u8glibライブラリ使い方の覚書です。

アナログポートから読み込んだデータを時系列に表示してみました。

アナログポートの値を変化させるためにアナログピンを触っています。
50Hzの交流が体に誘起しているとの想定ですが、FM変調がかかっているような波形です。
時間軸はいい加減なので、内部処理によって処理時間が違うのかもしれません。

このライブラリでは、picture loopといって1画面分の描画に必要なデータを全部揃えておいて、画面表示ごとに毎回描き直ししないといけません。
draw();部でお絵かきしています。
// picture loop
u8g.firstPage();
do {
draw();
} while( u8g.nextPage() );
// rebuild the picture after some delay

アナログポートから読み込んだデータを0-47ドットにマッピングして、表示用のバッファの最後に書き込みます。
ついでに数値表示用の文字列も作っておきます。
ad = analogRead(5); //0-1023
itoa(ad,temp,10);
y = map(ad,0,1023,47,0);
graph_buffer[127] = y;

描画部分では表示用のバッファのデータを直線でつないでいきます。
void draw(void) {
for(int i=0; i<127; i++) {
u8g.drawLine(i,graph_buffer[i], i+1,graph_buffer[i+1]);
}
データを数値表示します。大きなフォントを使ってみました。
u8g.setFont(u8g_font_10x20);
u8g.drawStr(0,20, temp);
}

描画後は、表示用のバッファを左にシフトします。
for(int i=0; i<127; i++) {
graph_buffer[i] = graph_buffer[i+1];
}

SPI接続グラフィックLCD AQM1248A-RNのテスト

2015-09-21 | Tanukino
先日秋月でAQM1248A-RNを買ってきたので、早速テストしてみました。

このグラフィックLCDはu8glibというArduino用のライブラリを改造すると使えるようで、DENSIKIT.COMさんで改造版のライブラリが公開されています。

ちびでぃーの2に接続して動作確認をしてみました。
下の例では、斜めの線と文字列を描画しています。
ちなみにサンプルスケッチとピン接続が異なるので修正しました。

U8GLIB_DOGM128_2X u8g(10,9); //CS=10,RS=9
u8g.drawLine(0,0,128,47);
u8g.setFont(u8g_font_unifont);
u8g.drawStr(0,30, "JJ1WKN");


色々なサイズのフォントが用意されており、簡単にお絵かきできます。
このライブラリはお絵かきは簡単なのですが、以前に描いたものを覚えておいてくれないので、毎回全部描き直しするのが面倒です。

このLDC用の変換基板が秋月で発売されているのですが、LCD本体より高いので、穴開き基板の切れ端で試作しました。
このLDCのピンは1.27mmピッチでなので、偶数ピンは空中配線にしました。


変換基板の回路図です。
Arduinoは5V駆動なので、抵抗分圧で3.3Vに対応しています。


変換基板のレイアウトです。

CW Memory Keyer ElekinoCanDoの製作 その5

2015-09-15 | Tanukino
その5です。2号機が完成しました。

2号機はブラックボディです。


斜めからです。


中身です。


スピーカーを4.5mm厚の薄型に変更したので、コマンドモード表示LEDはコマンドボタンの隣に配置しました。
メモリーボタンも含めて一直線になりました。


1号機と2号機を並べてみました。


当面2号機のレイアウトで行けそうです。

<関連記事>
K3NG CWメモリーキーヤー改良版のテスト
K3NG CWメモリーキーヤー改良版のテスト その2
CW Memory Keyer ElekinoCanDoの製作
CW Memory Keyer ElekinoCanDoの製作 その2
CW Memory Keyer ElekinoCanDoの製作 その3
CW Memory Keyer ElekinoCanDoの製作 その4

CW Memory Keyer ElekinoCanDoの製作 その4

2015-09-13 | Tanukino
その4です。2号機の製作を開始しました。

2号機は最近購入した黒色のバージョンです。
DCDCコンバータ部のフタを外して見たところ、部品の配置が変わっていました。


電池への配線も以前は基板からリード線が出ていましたが、今回は電池金具が基板から生えています。
以前は、電池への配線がクロスしていたのですが、クロスしないようになったので、基板側の部品配置が変わったようです。
意味のないフューズは廃止されましたので、基板上にスペースがあります。


基板の裏です。回路自体は変更が無いようですが、パターンが変わっています。


とりあえず、USBデータラインへ電圧を供給する抵抗を外して、電源部のテストをしました。
赤丸が増設した10uFのチップコンです。


表は5Pソケットを配置して、USBデータラインの空きパターンを利用して赤丸の5V出力の端子を付けました。


電池を入れて電源部のテストです。
電解コンの下の基板の空き部分にコマンドモード表示LEDを配置する関係上、電池とICやSW類の位置が1号機とは逆になっています。

CW Memory Keyer ElekinoCanDoの製作 その3

2015-09-11 | Tanukino
その3です。

黒色のUSB充電器も仕入れてあるので、2号機を作ろうかと思ったのですが、穴開けが面倒なので、ICソケットの差し替えと、内部配線の変更しました。
ついでにラベルもスペースの穴がある面を上にして、1枚モノに変更して手間を省きました。


斜めからです。


中身です。ポリウレタン線に変更したのでスッキリしました。


<関連記事>
K3NG CWメモリーキーヤー改良版のテスト
K3NG CWメモリーキーヤー改良版のテスト その2
CW Memory Keyer ElekinoCanDoの製作
CW Memory Keyer ElekinoCanDoの製作 その2

CW Memory Keyer ElekinoCanDoの製作 その2

2015-09-10 | Tanukino
その2です。

前後しましたが、CanDoのUSB充電器分解編です。

DCDCコンバータ部分は接着されていますので、電池側からマイナスドライバーでこじって、脇に隙間ができたらそこをさらにマイナスドライバーでこじって外します。
DCDCコンバータ部のフタを外したところです。
USBソケットをそのまま利用してもかまいませんが、パドルなどを接続するUSBケーブルを作らないといけません。
いらなくなったUSBケーブルを活用してもいいでしょう。
今回はソケットを使用するので、USBソケットは外します。
F1と刻印のあるフューズ(ただの針金?)も不要なので外して基板上のスペースを確保します。
単3電池1本での駆動となりますので、ショート用の金具は取り外し、プラス側のプラグを移設します。


基板の裏側です。
右上のICがDCDCコンバータのBL8530-501SMです。データシートはこちらです。


USBのD+とD-に電圧を供給するためのチップ抵抗がありますが、USBソケット共々外します。
右下のランドが電池の入力です。左のランド(Gnd)との間に10uFのチップコンを付けます。


5Pソケットの配置を検討しているところです。
USBソケット跡地に丁度収まりました。


量産を意識して2号機を検討中です。
2号機はICソケットのピンを少し短く切って、横に曲げてこれをベースにチップ部品を配置していきます。
できるだけICソケット側に部品を配置しました。

CW Memory Keyer ElekinoCanDoの製作

2015-09-09 | Tanukino
K3NG CW Memory Keyerの改良版を100円ショップのUSB充電器に組み込み、ElekinoCanDoとしました。

先日の工作会で100円ショップCanDoのUSB充電器の解析結果がJR1JWZさんから披露され、単3電池1本でも十分動作することと、DCDCコンバータ回路が入っている部分の蓋の開け方を伝授頂きましたので、無理やり単3電池1本分のスペースに押し込んでみました。
スペース的に最初は無理かと思いましたが、ヤレバデキルもんですね。
ということでElekinoCanDoです。

出来上がりです。スペースの都合でメモリー数は5個としました。
何も考えずに16個までメモリーを増設できるので、便利です。


コマンドボタンとメモリーボタンのUPです。


コマンドモード確認用LEDが点灯中です。


中身です。スペースの都合でスピード調整のボリュームは省略しました。
従来のようにコマンドボタンを押しながらパドルで調整します。
電源電圧が5Vなので、スピーカー音量UP用のトランジスタは省略しました。
スピーカーは小型のマグネティックスピーカーです。
タクトSW6個分の幅とICソケットの幅が丁度同じで、厚みも足すと単3電池の厚みと同じになるので、ICもタクトSWも固定せずに収まっています。


斜めからです。1分でスリープモードに入るので電源SWは省略しました。
待機電流が気になる場合は、電池に紙でも挟んでおけばいいでしょう。


DCDCコンバータ部のUPです。
ここにはUSBソケットがありましたが、取外して跡地に5Pのソケットを設置しました。
USBソケットと丁度同じ幅ですが、下にボール紙を敷いて、少し上げ底にしました。
5Pソケットの上に送信制御用のトランジスタを配置しました。
DCDC基板のフューズと書いてある針金を外してできたスペースにコマンドモード確認用LEDを付けました。
このLEDは便利なので、省略することはできません。


回路図です。

K3NG CWメモリーキーヤー改良版のテスト その2

2015-09-04 | Tanukino
その2です。

ブレッドボードでは不安定なので、穴開き基板に引っ越しました。

AVRと端子だけにしようかと思ったのですが、基板を切るのも面倒なので、メモリーSWを4つ実装しました。
白SWはCMDボタンです。


電源は使い古しの単3電池で、2.6Vで動作しています。


安定して動作する環境ができたので、改良機能を確認してみました。

以降の説明では、下記記述を使用します。

 [Cmd]は、白色のコマンドボタンを押すことを示します。
 [M1]は、黒色のメモリーボタンを押すことを示します。
 ♪ピは、高い音の発声を示します。
 ♪プは、低い音の発声を示します。
 ♪プピは、[Cmd]を押した時にコマンドモードに入ったことを示します。
    コマンドモード中はCmdLedが点灯します。
 ♪ピプは、[Cmd]を押した時にコマンドモードから抜けたことを示します。
    コマンドモードから出るとCmdLedが消灯します。
 「P1」は、パドルからP1などの文字列を打つことを示します。
 ♪「CQ DE」は、CQ DEなどが再生されることを示します。
 ♪⇒「CQ DE」はCQ DEなどが再生・送信されることを示します。
 「-.-. --.-」は、パドルからCQなどの符号を打つことを示します。
 「H_H」は、「........」の訂正符号をパドルから打つことを示します。
 「B_T」は、「-...-」のBT符号をパドルから打つことを示します。
 「.-.-.-」は、「.」終点/ピリオド符号をパドルから打つことを示します。
 「.-.-.」は「+」または「A_R」符号をパドルから打つことを示します。
 「\」は「------」(長点6個)をパドルから打つことを示します。
 「//」はコメントです。

1.メモリー書き込みと送信

この例ではP1メモリーに「CQ DE JJ1WKN K」を書き込みます。

[Cmd]♪プピ                 //コマンドモードに入ります
「P1」♪ピ                  //書き込み対象のM1=P1を指定します
「CQ」♪ピ「DE」♪ピ「JJ1WKN」♪ピ「K」♪ピ //メッセージをワード単位で入力します。
[Cmd]または「.-.-.-」
♪「CQ DE JJ1WKN K」             //確認のため、書き込んだメッセージ内容が再生されます。
[Cmd]または「X」               //コマンドモードから抜けます
♪ピプ                    //コマンドモードから抜けました
[M1]♪⇒「CQ DE JJ1WKN K」          //メモリー内容が送信されます。

改良前は、「CQ DE JJ1WKN K」と一気にメッセージを打たないと行けなかったのですが、ワード単位に一息入れながら打てるので便利になりました。
また、改良前はコマンドモード中かどうかがわかりにくかったのですが、コマンドモード中はLEDが点灯するので、とても便利です。

2.直前ワードの消去


上記の例で、「JJ1WKN」を「JJ1WK」と誤って打った場合は、
「CQ」♪ピ「DE」♪ピ「JJ1WK」♪ピ
ここで訂正符号の「H_H」を打つと、直前ワードの「JJ1WK」が消去され、この時点での最後のワードの「DE」が再生されます。
「CQ」♪ピ「DE」♪ピ「JJ1WK」♪ピ「H_H」♪「DE」
ここから「JJ1WKN」以降のワードを打てばOKです。

3.認識できない符号を誤って打った場合

例えば「CQ」の次のワードで、認識できない符号「...---」を打った場合、♪ビプビプビプビプに続いて直前のワードの「CQ」が再生されるので、ここから正しい符号を打てばOKです。
「CQ」♪ピ「...---」♪ビプビプビプビプ♪「CQ」

4.メモリーの全ワード消去

メモリー書き込みの途中で「B_T」を打つと、書き込み中のメモリーのが全ワードが消去されるので、最初からやり直せます。


5.16メモリーの活用

メモリー用のボタンは今回は4つしか実装していませんが、実は16個のメモリーが使えます。もちろん、16個まで実装することは可能です。
ボタンを押して送信する場合はP1からP4の4つですが、P5からP16までのメモリーにもメッセージを書き込むことができます。
P0だけは特別でP10と同じ扱いになります。
コマンドモードからメモリー番号を打つと、再生され内容を確認することができます。
送信はできませんが、P1からP4までのメッセージ内でP5からP16までのメモリーを呼び出すことができます。

例えはP5に「JJ1WKN」を書き込んでおき、P1に「CQ DE \I5 K」と書き込んでおけば、\I5がP5に書き込んであるメッセージに置き換わり「CQ DE JJ1WKN K」が送信されます。ちなみに「\」は「------」の長点6個です。
この状態でP5を「JJ1WKN/1」に書き換えれば、P1は変更せずに移動運用対応になります。

6.連続符号への対応

「B_K」や「A_R」などの連続符号は「\+BK」=「------ .-.-. -... -.-」のようにメモリーに書き込めば、対応できます。

7.その他

USBシリアル変換ケーブルを使えば、USB経由でPCに接続して、PC側からメモリーの書き込み、Winkey対応など色々な制御ができますが、回路変更や設定などが必要なので、ここでは省略します。

ElekinoSdはパドル操作無しでメモリーを書き込めて簡単ですが、パドル操作でもワード単位で修正ができれば以前よりだいぶ便利になりました。
また、構成が簡単なのもメリットですね。

K3NG CWメモリーキーヤー改良版のテスト

2015-09-03 | Tanukino
横浜電子工作連絡会の2015年4月例会でJR1JWZさんが、K3NG CWメモリーキーヤーの改良版を発表されたので、試作してみました。

以下が主な改良点です。

・3V以下での電池駆動が可能(2~3mA)
・メモリー数を16に増強
・PC接続してコマンドラインから送信可能
・スリープ機能搭載
・メモリー書き込み時、ワード単位で修正が可能
・コマンドモード表示用LEDを搭載

その他詳細はこちらをご参照ください。

JR1JWZさんのオリジナルでは、Arduinoのブートローダーをoptibootに変更して書き込む方式ですが、以前作ったArsuino as ISPを書込装置としてArduinoのIDEからブートローダーを使用せずに直接書き込む方式にしました。
ブートローダー方式は開発段階では便利ですが、開発終了後単体版を作るときは、直接書込の方が便利です。

この方式の注意点は、「ファイル」/「書き込み装置を使って書き込む」ではhexファイルのみが書き込まれて、フューズビットなどは書き込まれません。フューズビットなどを書き込むためには、「ツール」/「ブートローダーを書き込む」でダミーのブートローダーを書き込む必要があります。

とりあえずブレッドボードで試作してみました。
Elekino互換の構成で、シリアル接続機能は省略しました。
ピエゾスピーカーでは音が小さかったので、トランジスタでアンプして小型スピーカーを接続しました。


ブレッドボードのUPです。


今回テストした回路図です。ブレッドボードでは送信回路は省略しています。