<<梅>>備忘録 ~Random Walk~

★ ドライブ、旅行 ★ 水彩画 ★ アマチュア無線 ★ 電子工作 ★
ランダムウォーク de JA1OHP/AC2BF

K3NG Arduino CW Keyerの簡単な操作法

2012年07月31日 | ・PIC/Arduino

K3NGのarduino CW Keyerのソフトの簡単な説明です。

原文および詳細は下記
http://radioartisan.wordpress.com/arduino-cw-keyer/

ソフトか下記からダウンロード
http://sourceforge.net/projects/k3ngarduinocwke/files/

K3NG_Arduino_Keyer_2012070201.ino <<-現在の最新ソース

コンパイルはarduino 1.0.1を使いました。
http://arduino.cc/en/Main/Software <<-ここからダウンロード

共に無料ですからソフトに費用はかかりません。

AVRエレキー試作
 <<--ハードの実験



最初のところに変更した機能項目をちょっと入れておきました。


K3NGのAruduino CW Keyer

特徴

・最大6台までのリグのキーイング可能
・USBからコマンド操作可能(command line interface)
・PS2キーボードで(パソコンなしで)CWオペレーション可能
・4ビットモードのLCDが付けられる
・メモリは最大12まで
 メモリへの書き込みはパドル、KBから等いろいろ出来る
・599001形式のシリアルナンバが扱える
・スピードはVRまたはコマンドキー+パドルまたはコマンドで可能
・バグキー、ストレートキーモードあり

・パドルリバース機能
・サイドトーン周波数変更、オンオフ機能
・ドット/ダッシュ比の変更
・K1EL Winkey1,2エミュレーション機能
 ctestwinとかでusbif4cwような使い方が出来る

・そのほかHellschreiber modeとかFarnsworth Timing機能、コールサイン受信練習機能
等々があるというが不明


すべての機能をATmega328Pには入れられないので、機能ごとにソースの変更が必要です。
もしくは大容量のAVRチップを使うかですが、なにを使ったら不明。 

なお、機能の詳細は自分でHPを読んで理解してください。私に聞かれてもよくわかりま
せんので。Hi


簡単な操作法

ボタンは、コマンドボタンと複数のメモリボタンがあり、メモリにパドルから書き込め
ます。

コマンドボタンを押すと(ポ・ピという音)コマンドモードに入り、もう一度押すと(
ピ・ポ)通常のモードになります。
いろいろな機能はコマンドモードにしてからパドルでコマンドを打ちます。

メモリ2に書き込む方法
1.コマンドボタンを押す。
2.パドルから"P2"とうち、続けてメモリの内容"CQ DE JA1OHP"等を打ちます。
3.コマンドボタンを押すと今打った内容が出てくる。
4.もう一度コマンドボタンを押す。

Pの次の数字がメモリ番号です。

メモリからの送信
1.メモリボタンを押せばよい。

スピードを変える方法1
1.コマンドボタンを押しながら短点パドルを押すと早くなる。
逆に、コマンドボタンを押しながら長点ボタンを押すと遅くなる。

スピードを変える方法2
スピードボリュームで調整する。ただし、事前にVコマンドでボリューム(ポテンショメーター) の有効/無効を有効に切り替えておくこと。
あと、 Wコマンドでも可能。

オールリセット
1.電源を切る
2.短点、長点両方のパドルを押しながら電源を入れるとすべて初期状態にもどる。

コマンドをいろいろ入れてどういう状態かわからなくなった時使える。

 

コマンド例
(コマンドボタンを押してからパドルで入力)

F – サイドトーン周波数の調整

G – バグキーモード切替

I– 送信の有効/無効

J – 長点/短点長

N – パドルリバース

O – サイドトーンのオン/オフ

P# – メモリ書き込み。#はメモリ番号

T – チューン、モード

V– VRでスピードを変える機能の有効/無効

W – スピード変更

X – コマンドモードから出る(コマンドボタンを押すのと同じ)

# – メモリを送信せずに出す(メモリ内容の確認用)


そのほかSerial Command Line Interface (“CLI”) / CW Keyboard機能、Winkeyエミュ
レーション機能などがあるがここでは省略。
 

ソース変更点
なお、前回のブレッドボードに単体で組んだエレキ-用のAVRには、
エレキーの単体機能のほか、
CLIは削除、
Winkeyエミュレーション機能追加、
開始時のHI送出機能削除、
デフォルトスピードを26WPM->23WPMに変更、
などの変更を加えています。(ソースに書いておいた)

秋月の「FT232RL USBシリアル変換モジュール」を使うとCLI機能とかWinkeyエミュレーション機能が使えます。
ちょっと実験した感じでは一応動くが細かな機能のチェックはしてない。
ctestwinからは使えるようだったがちょっと変なとこもある。 


なお、いろいろ機能を使いたい方はAruduinoの基本がわかって、ArduinoのIDEが使え、かつデジタル回路をある程度わかるひとでK3NGの記事をある程度理解できるといいです。

ATmega328Pは秋月で250円くらいだったとおもう。

 <<--「投票」してくれるとうれしい!

人気ブログランキングへ にほんブログ村 その他趣味ブログ アマチュア無線へハム にほんブログ村 美術ブログ 水彩画へ水彩  <<--クリックしてください


コメント (13)    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« 関越、高坂SAのパン | トップ | 巣鴨のパン屋さん「トースト」 »
最新の画像もっと見る

13 コメント

コメント日が  古い順  |   新しい順
K3NGのエレキー (JR1JWZ)
2014-05-05 16:48:09
梅さん、こんにちは。

先日、蒲kURA会でArduino のエレキーの話を聞き、Arduino Unoを購入しました。
Webでも古い情報が乱れ飛んでいて、情報収集に苦労しましたが、何とか頭の中を整理できてきました。

本日、K3NGのエレキーを書込み、8M内部クロックモードで、動作しました。

さて内蔵クロック8Mで動かす方法ですが、私は下記の手順で行いました。
1) 8M内蔵クロック用ブートローダーを書き込んだ ATMega328Pを用意する。(ブートローダーの書込み方はここでは省略。)
2) 書き込むスケッチを用意。(もちろん K3NG のエレキーです。)
3) 「ツール -> マイコンボード -> Arduino Pro or Pro Mini (3.3V, 8 MHz) w/ ATmega328」を選択
4) 「ツール -> シリアルポート」で該当のポートを選択。
5) keyer_features_and_options.hで、以下のコメントアウトをはずして有効にする。
#define FEATURE_COMMAND_BUTTONS
#define FEATURE_POTENTIOMETER
6) 「→」ボタンでスケッチを書き込む。
7) ATMega328Pを取り外して、梅さんの手書きの回路図で動作テスト。

上記 3)の選択は重要です。

トーンの周波数も正常、操作感も16Mクロックと変わりはありません。
ヒューズ書き換えも不要です。
16M発振子も不要で、消費電流は 3Vで約 3mAでした。


Arduino Unoは最安値を探し、アマゾンで1550円(ただし、互換品)でした。今はちょっと値上がりしたようです。
しかし、Arduino はハード、ソフト、価格等を含めた総合的な開発環境がすばらしいですね。
返信する
to:JR1JWZ (<<梅>>)
2014-05-05 21:02:58
やることがすばやいですねえ。
うまく行ったようでおめでとうございます。
8MHzで動かせば省エネにもなりますね。

あのHPに出ているソフト(スケッチ)はけっこう改版されているので自分が使ったバージョンはとっておいたほうがよさそうです。

また鎌田でよろしくおねがいします。
返信する
さらなる省エネへ (JR1JWZ)
2014-05-06 12:38:40
K3NGのエレキー(8M内部クロック)の追試です。
電源ONから、8Mブートローダーを介しての起動が遅い(数秒)。
(ちなみに、16M外部クロックブートローダーの場合は早い。)
  なので、8Mブートローダーを介さず、直接スケッチを起動するよう、再書き込み。
  結果、起動が早く(瞬時)なりました。

電源電圧が2.7V以下になると、起動しなくなる。
  ヒューズビットを書き換えて、リセットがかかる電圧を1.8Vに変更。結果、
  起動に必要な電圧 1.83V。
  リセットがかかる電圧 1.81V。
  2V時の消費電流 1.74mA。
  データシートではクロック 8Mでの動作電圧は推定で2.4V位。
  それ以下の電圧で堂々と使うのは、我々アマチュアの特権...(^^;;;汗)。

SLEEPの設定。
  Sleep を設定して書き込む。
    Sleep時、5V 0.24mA
  でした。
  これだと電源スイッチは必要。SLEEPを60分位にして、電源OFF忘れ対策する位。

余談
  エレキーの設定で
    Iambic A mode
    Iambic B mode
  があり、デフォルトが Iambic A modeになっている。
  最初、操作した時、最後の長短点が抜けるので、あれ?と思った。Iambic B modeにして、事なきを得た。
返信する
to:JR1JWZ (<<梅>>)
2014-05-06 23:34:19
スリープお機能は入ってましたっけ??
ソースを見てトレースしてても気が付かなかった。
もっとも私の使ったスケッチはそうとう古いものだからだいぶかわってるんだろうな。

でもAVRのスリープはずいぶん電流を食いますね。PICだと1マイクロ以下なんじゃないかなあ。

私もヒューズビットを書き換えて1.8Vにしているが電池は単3電池2本なので十分余裕があります。

アイアンビックA,Bの区別は気にしなかったが私の場合は偶然かどうかパドルの操作時は遅いのでどちらでも同じ感覚でした。

じつはWINKEYエミュレーションをやってみたいが、昔のスケッチだとどうも動作が不安定だった。
WINKEYはやってみましたか?
コンテスト用にほしいんだが。
返信する
Winkeyは (JR1JWZ)
2014-05-07 22:51:25
すみません。Winkey というのが、ネットで検索しても、これをコンテストで使うと何が便利なのか、よくわからないです。小生コンテストに疎いので...。

ちょっと気になったのが、ソースのコメントで
disabling Automatic Software Reset is recommended...
と書かれている点。

ArnuidoボードのシールドコネクタのRESETの端子を10μF位のコンデンサでGNDに落とす必要があるのではないかと推測。

それにしても、Winkey を定義すると、コンパイルサイズがオーバ気味になって、苦労するような...。
返信する
to:JR1JWZ (<<梅>>)
2014-05-08 08:31:56
CWのコンテスト用のソフトはCTESTWINとかRTCLを使っているんですが、パソコンからCWを出すのにインターフェースとして普通はUSBIF4CWを使います。
WINKYはアメリカで有名なもので、このUSBIF4CWの代わりになるものなんです。

私はUSBIF4CWは1つ持っているんですが、もう1つほしいのでwinkeyでやりたいと思っているんです。

1年前くらいにK3NGので実験したんですが、ある程度動くがどうも動作が安定しなかったもんで。

おっしゃるように、機能をけずって入れるのに苦労します。Hi
返信する
Winkey その後 (JR1JWZ)
2014-05-10 14:48:56
Winkey を有効にしてコンパイルし、CTESTWIN でテストしてみました。結果、F5、F6キーの送出で

WinKeyer Timeout error..

が出まくります。OKを押して続けることはできますが...。
ちなみに、
F6キー: 45WPM位までスピードアップすると出ません。
F5キー: 35WPM位までスピードアップすると出ません。
それ以外、うまく動いているような...。

コンパイル設定は、nanokeyer
http://nanokeyer.wordpress.com/
を参考にしたのですが、
#define FEATURE_COMMAND_LINE_INTERFACE (CLI)
はあきらめるしかありませんでした。

nanokeyer はCLIもPS2も有効なようで、明らかにサイズオーバーなはず...。どうなっているのだろう...。
返信する
to:JR1JWZ (<<梅>>)
2014-05-10 15:04:15
試していただいたようでありがとうございます。

F5,F6がタイムアウトだでるということはF7,F8,,,等はうごくんですかね?
だとすると送出するメッセージによるのかも。

スピードは30WPMまででればまあ、大丈夫です。

CLIとWINKEYは私が試したときも同時には無理でしたので仕方がないです。

もっとメモリーサイズが大きいのを使えばいいんでしょうがDIPパッケージのはないんでしょうね。

私もそろそろ実験再開するかな。
返信する
to:JR1JWZ (<<梅>>)
2014-05-10 15:08:12
そうそう、WINKEYはHam Radio Deluxeにリモートから使えるので、その意味でも欲しかったんだが、Windows をXPから7に変えたらHRDが動かなくなってしまったのでそっちはあきらめています。
返信する
CTESTWIN で WinKeyer Timeout error.. が出る件。 (JR1JWZ)
2014-05-31 12:31:35
CTESTWIN で WinKeyer Timeout error.. が出る件。

文字キーイング中にステータスを返していないことが原因と判明。

文字キーイング中の長点または短点直後にもステータスを返すようにしました。

以下の二つの関数
void send_dah(byte sending_type)
void send_dit(byte sending_type)

の #ifdef FEATURE_WINKEY_EMULATION の箇所に以下を追加。

if (winkey_sending && winkey_host_open) {
Serial.write(0xc0|winkey_sending|winkey_xoff);
}

よほどのQRSでない限り、これでたぶんOKのはず。
返信する

コメントを投稿

・PIC/Arduino」カテゴリの最新記事