モールス信号シールドArduino UNO用

概要

「モールス信号シールドArduino UNO用」は、Arduino UNOのシールドとして動作するエレクトリックキーヤーのキットです。東海ハムの祭典2016・関西アマチュア無線フェスティバル2016・ハムフェア2016で数量限定で頒布しました。Webからもご注文いただけます。

モールス信号シールドはマイコン単体で動作するエレクトリックキーヤーとしてはもちろん、PCなどからCOMポート経由でASCII文字列を受け取ってCW送出することができます。Tera Termなどのターミナルソフトや、自作のソフトウェアから簡単に制御することができます。なお、USBIF4CWとは仕組みが違いますのでUSBIF4CWの対応ソフトウェアは使用できません。

キットの場合はパーツを組み立ててシールドを完成させてください。シールド上には8×2キャラクタ液晶、ブザー、LED、タクトスイッチ、ボリューム、パドル入力端子(ミニジャック)、CW出力端子(RCAジャック)などがあります。ハンダ付けの難易度について、液晶の足が1.5mmピッチで最も狭く、それ以外の部品は2.54mmピッチ以上です。表面実装部品は使用していません。

モールス信号シールド外観

機能はサンプルスケッチをベースに自由にカスタマイズできます。サンプルスケッチではシンプルなスクイズキーヤーとゲームを実装しています。

スクイズキーヤーは、パドルを操作して出力されたCW符号を順次復号して8×2キャラクタ液晶に表示します。ゲームはパドル操作によるCW送出を練習できるものです。アルファベットが1文字だけ出題されるので答えの1文字をパドル操作します。パドルを操作すると文字を復号して8×2キャラクタ液晶に表示します。正解すると「good」表示が出てWPMが1つ上がります。間違えるとWPMが1つ下がります。

組み立てたキットとサンプルスケッチは、Arduino UNO Rev3および互換機で動作を確認しました。

機能

モールス信号シールドをArduino UNOにセットしてスケッチの最新サンプルを書き込むことで下記の機能を実現します。アイデア次第でお好きな機能を持ったキーヤにカスタマイズできます。

  • エレクトリックキーヤ(スクイズ機能付き)
  • 定型メッセージの登録と再生
  • COMポート経由でASCII文字列を受け取ってCW送出(欧文と記号)
  • ランダム5文字で10セットの符号生成(欧文・和文)
  • CW出力(LED点灯)
  • CW出力(フォトMOSリレーの2次側ですので真空管式リグでも使用可能)
  • サイドトーン発生(音量調整可)
  • CW速度調整(2~50WPM)
  • パドル操作を復号して8×2キャラクタ液晶に表示(欧文・和文)
  • パドル操作を復号してCOMポート経由でターミナルソフトで表示(欧文・和文)
  • パドルリバース(ジャンパピンの位置を変更)
  • ゲームモード
  • ボタンx4操作

取り扱いできる文字の種類

動作モード 画面上のモード表示 文字の種類
欧文通常
(含む、COMポート経由で送れるASCII文字列)
ABC 「A~Z」のアルファベット26文字、
「0~9」の数字、
「.・,・?・/・+・=・-・’・”・:・(・)・@」の各記号、
「AS・BK・KA・VA」の各略号
和文通常 ワブン 「ア~ン」のカタカナ46文字
「゛」濁点、「゜」半濁点、
「0~9」の数字、
「ー・、・」・(・)」の各記号、
「ホレ・ラタ・ウウ・ホホ」の各略号
欧文5文字ずつ10回ランダム生成 ABC5 「A~Z」のアルファベット26文字
和文5文字ずつ10回ランダム生成 ワブン5 「ア~ン」のカタカナ46文字
「゛」濁点、「゜」半濁点
欧文ゲーム GAME 「A~Z」のアルファベット26文字
和文ゲーム ゲーム 「ア~ン」のカタカナ46文字
「゛」濁点、「゜」半濁点

ボタン操作一覧

ボタン S1 S2 S3 S4
短押し 定型メッセージ「1」再生
(欧文通常モード時)
定型メッセージ「2」再生
(欧文通常モード時)
定型メッセージ「3」再生
(欧文通常モード時)
定型メッセージ「4」再生
(欧文通常モード時)
長押し1秒 欧文通常モードへ移行 和文通常モードへ移行 欧文ゲームモードへ移行 和文ゲームモードへ移行
長押し3秒 欧文5文字x10セット
ランダム再生
和文5文字x10セット
ランダム再生
 -

通常モード

タクトスイッチ「SW1」を長押しするとノーマルの欧文モードに移行して、8×2キャラクタ液晶上段に「ABC」と表示されます。アルファベットと数字・記号の入力に対応します。起動直後はこちらのモードです。復号できる文字は、アルファベット「A~Z」と数字・記号「0123456789.,?/+=-‘\”:()@」です。モールス信号シールド上にあるボリューム「R5」でWPM速度を調整すると8×2キャラクタ液晶上段にCW送信のWPM速度が表示されます。速度は2~50WPMの範囲で調整できます。

同じく「SW2」を長押しするとノーマルの和文モードに移行して、8×2キャラクタ液晶上段に「ワブン」と表示されます。カナと数字・記号の入力に対応します。復号できる文字は、カナ「ア~ン」と数字・記号「0123456789-、」()」です。

ゲームモード

タクトスイッチ「SW3」を長押しするとゲームの欧文モードに移行して、8×2キャラクタ液晶上段に「GAME」と表示されます。8×2キャラクタ液晶下段左端にパドル操作した文字。8×2キャラクタ液晶下段右端に出題の文字が表示されます。正解すると「good」表示とともにWPMが+1、間違えるとWPMが-1となります。何らかの文字を入力するたびに次の文字が出題されます。モールス信号シール上にあるボリューム「R5」でWPM速度を調整できます。

同じく「SW4」を押すとゲームの和文モードに移行して、8×2キャラクタ液晶上段に「ゲーム」と表示されます。。

定型メッセージの再生と登録

4つあるボタンのいずれかを押すと登録されたメッセージをCW送出します。未登録の場合は何も起こりません。

メッセージ送出中にパドルまたは4つあるのボタンのいずれかを押すと送出を停止します。

定型メッセージの登録はターミナルソフトなどからCOMポート経由でおこないます。例えば、ボタン1を押したときに「CQ DE JG5CBR PSE K」とCW送信させたい場合は、ターミナルソフト上で下記のように入力して定型メッセージを登録します。

#1CQ DE JG5CBR PSE K;

「#」の後には4つボタンに対応する「1~4」までの数字が続きます。定型文の最後には「;」を入力します。「;」の直前までの文字列がメッセージとして登録されます。登録できる文字数は各ボタンとも128文字でまでです。

スケッチサンプル

  • morse-shield_161119.ino (2016/11/19版)
    • 欧文と和文でランダムな5文字を10セットで生成できるようにしました。WPM速度は2~50WPMで可変です。
    • 4つあるボタンを押すと送出中の定型文を停止できるようにしました。パドルを操作しても停止します。
    • 起動時にスケッチのバージョン「YY/MM/DD」を表示するようにしました。
    • サイドトーン発生時のブザー周波数を変更しました。
  • morse-shield_161106.ino (2016/11/06版)
    • 登録された定型文を送出するメッセージキーヤの機能を追加しました。欧文のみです。
    • 動作モードの切り替えを4つのボタンの長押しに変更しました。
  • morse-shield_161102.ino (2016/11/02版)
    • COMポート経由でASCII文字列を受け取ってCW送出できるようにしました。ターミナルソフトなどから有効な文字をタイプするとCW送出します。
    • パドル操作後に復号した文字をCOMポート経由でPCからも確認できるようにしました。
  • morse-shield_160904.ino (2016/09/04版)
    • パドル操作後のスペースを認識して表示するようにしました。
  • morse-shield_160820.ino (2016/08/20版)
    • パドル操作時に数字と記号を復号できるようにしました。
  • morse-shield_160716.ino (2016/07/16版)
    • パドル操作時に和文を復号できるようにしました。
  • morse-shield_160709.ino (2016/07/09版)
    • 初回の一般公開版。

このスケッチにできることは「機能」のリストに記載してあることが全てです。左右のパドルをリバースに設定したい場合はシールド基板上のジャンパーピンの位置を変更します。ジャンパーピンの位置はシールド基板上のシルクに記してあります。もちろんスケッチの中で変更しても構いません。

インストール

Arduino-IDE自体のインストールは既に済んでいる前提で説明します。

モールス信号シールドのサンプルスケッチは、下記の外部ライブラリを使用しています。スケッチをコンパイルする前にこれらのライブラリをインストールしておく必要があります。

    1. TimerOne
    2. ST7032

ライブラリ: TimerOne

「TimerOne」はArduino-IDEからインストールできます。Arduino-IDEのメニューから「スケッチ」→「ライブラリをインクルード」→「ライブラリを管理」を選択すると現れるウィンドウ「ライブラリマネージャ」で検索すると見つかります。

ライブラリ: ST7032

「ST7032」は「オレ工房」で公開されているものを利用させていただきました。http://ore-kb.net/archives/195から入手できます。リンク先サイトで下記のように説明されているとおりインストールします。

zipファイル内のフォルダ「arduino_ST7032-master」を「ST7032」にリネームし、Arduinoの「libraries」フォルダにコピーして下さい。

東海ハムの祭典・関西アマチュア無線フェスティバルでご購入いただいたシールドをお使いになるには、1箇所だけライブラリの修正が必要です。なお、ハムフェア2016版ではこの修正は不要ですので読み飛ばしてください。

ライブラリ内のファイル「ST7032.cpp」の117行目から始まる実装の中の「LCD_BOOST_ON」は使用しない機能ですので削除しておきます。もし削除しないままにしておくと液晶が真っ黒な表示になってしまって何を表示しても読むことができません。定格電圧を越えてドライブして液晶を傷めないように、ブーストは切っておくことを強くおすすめします。

void ST7032::setContrast(uint8_t cont)
{
(省略)
//command(LCD_EX_POWICONCONTRASTH | LCD_ICON_ON | LCD_BOOST_ON | ((cont >> 4) & 0x03)); // Power, ICON, Contrast control
command(LCD_EX_POWICONCONTRASTH | LCD_ICON_ON | ((cont >> 4) & 0x03)); // Power, ICON, Contrast control
(省略)
}

キットの組み立て

モールス信号シールドのキットには下記のパーツが含まれています。シールド基板のシルク印刷のパーツ番号をよく確認してパーツの位置を間違えないように実装します。下記のリスト順に実装していくとスムーズに組み立てられます。

パーツリスト

  • R1: 2.2kΩ
  • R2: 24kΩ
  • R3, R9, R11: 1.5kΩ
  • R6, R10, R12: 47Ω
  • R7, R8: 12kΩ
  • C1, C5, C6: 0.001uF
  • C2, C3: 1uF
  • C4: 0.1uF
  • U1: 8×2キャラクタ液晶
  • OK1: フォトMOSリレー
  • X2: ステレオミニジャック
  • LED: Φ3.2 LED
  • S1, S2, S3, S4: タクトスイッチ
  • R4: 10kΩ (POT)
  • TR1: 2SA1015
  • BZ: 圧電スピーカ
  • CN2: 2×3ピンヘッダ(+ジャンパー)
  • X1: RCAジャック
  • R5: 10kΩ (POT)
  • 連結ピン: 1×10, 1×8, 1×8, 1×6

シールド基板

Arduino UNOに挿せるシールドとして設計してあります。電源はArduino本体から供給されます。
シールド基板のシルク印刷

  • X1のRCAジャックからはCW信号を出力します。無線機のKey端子へ接続する際は、無線機を縦振り電鍵の設定にしてください。信号はフォトMOSリレーでアイソレーションされた2次側ですので真空管式の無線機によるマイナスキーイングにも対応できます。
  • R4の可変抵抗でサイドトーン音量を調節できます。
  • R5の可変抵抗でCWの送信速度(WPM値)を調節できます。
  • X2のミニステレオジャックにはパドルを接続します。
  • CN1は未使用です。

Posted by JG5CBR


PAGE TOP