JH3DRN 趣味の徒然

主にアマチュア無線、電子工作について書いてます.

K3NG CW Keyer を作る:ソフトウェア編 その壱

ハードウェア編の纏め

組み上がった状態がこちら。

完成した状態
製作の纏めとして、
1. 入手困難部品は無く、手持ち部品でも製作可能。ちょっと「持ってないなあ」的なMIDIコネクタは、キーボードを使わなければ無くても良い。
2. CPU基板は下記写真の、Arduino UNO , Arduino Mega 2560 等の基板が有れば使用可能だが、UNOを使う場合には実装出来ない機能がある。(メモリ容量が少ない)
3. 2,の場合、供給電圧に寄って液晶のコントラストが変化するので要注意(コントラスト調整VRを外付けすると良い)
Arduino UNO 互換ボード(aitendo製:懐かし)
Mega 2560 CPU (何時、何処で買ったか覚えていない)
今回は領府頂いたCPU基板、UNO、Megaで動作検証を実施した。

開発環境

Arduino はその昔、お家騒動じゃないけど2つの団体がそれぞれに開発環境を作っていた事があって、IDEのバージョンに加えて何方を使う?問題で苦労した覚えがある。久々にIDEのDWページを見たら、団体は1つになった様でこれは幸い。最新のバージョンが 2.3.2 結論から言うとK3NG Keyに関してはこのバージョンで使用可能であった。まあ、最初は怖いので前のバージョン 1.8.16 を使ってみたのが(当然これもOK)折角なので検証を含めて最新バージョンを使ってみた。1.8.16 は旧来のIDEとUIがほとんど同じなので違和感が無いが、2.3.2 は別物とは言わないが 結構変わっている。好みもあるがこれからは2系になると思うので慣れた方が良いかも。昔も有ったのだが、スケッチによって動作するIDEのバージョンが特定される物もあるので、IDEのバージョンを複数稼働出来る様にしてさらにソースの保管場所をIDE毎に分けると良いかもしれない。開発環境を纏めると

  • PC macMini M1 chip 16GB memory
  • OS Sonoma 14.2.1
  • Arduino IDE 2.3.2
  • 対象Arduino CPU UNO , Mega 2560( Mega 2560 pro mini は同じ環境)
準備

K3NGやIDEのダウンロードが皆さんが書いておられるので割愛するが、IDE2.3.2を使おうと言う方で、今まで1系で開発された事のある方はちょっと注意
1. K3NGスケッチを配置するディレクトリは単独とする
2. Arduino直下のlibraries にはK3NGで使用するライブラリのみ配置する
今回、最初は今まで開発環境をおいていたディレクトリにK3NG スケッチ配置したのだが、旧のライブラリ(主に液晶関連)と同じ宣言が有ったりでコンパイルが成功しなかった為、単独にすると旨く行った。と言う経験上のアドバイス。 (下記参照)

私の Arduino ディレクトリ構成

1602液晶 & I2C コンバーター

今回は常にこの1602関連で苦労した。液晶表示を諦めれば他の手持ちCPU(例えば DUE )でも動作したのだが。最初に I2C コンバーター だが、オリジナル K3NG ではアドレスが ”0x27” と定義されている。この基板、見た目は同じだがアドレスが 0x27, 0x38 , 0x3f 等のバージョンが有るらしくまず使用する基板のアドレスを確認する必要がある。そこで使用するのが i2cscan スケッチ。ネット上に多数登録されているのでどれかを使ってアドレスを確認する。私の基板をスキャンした結果がこちら

I2C コンバータのアドレス検索結果
アドレスの変更は

Arduino  
    k3_cw_keyer_master  
        k3ng_keyer  
            keyer_settings.h   → このファイルの45行目付近を修正  

//#define lcd_i2c_address_ydv1_lcd 0x27    // I2C address of display  for FEATURE_LCD_YDv1
#define lcd_i2c_address_ydv1_lcd 0x3f       // I2C address of display  for FEATURE_LCD_YDv1  

こんな感じで修正して保存する。少し長くなったのでその弐へ続く。