X68000のキーボードをUSBに繋ぐ

X68000のキーボードをUSBに繋ぐ
X68000のキーボードをUSBに繋ぐ変換器を制作しました。
X68000のキーボード
X68000のキーボードは、押し心地の良いメカニカルスイッチが使われていて、気持ちよくキーを叩くことができます。
これを、USBで接続できるようにし、Windowsパソコンで利用しようと思います。
キーボードを、そのまま、利用することはできませんので、USBに変換する機器を製作しました。
参考にしたページ
用意した物

必要なソフト
プログラムの開発手順
プログラムの開発手順としては、

  • ソースをコンパイル
  • コンパイルしたバイナリファイルをマイコンに書き込む

となります。

開発環境は、VMware上に、Debianと、Windowsの仮想マシンを用意しました。
他に、Raspberry Piに、Raspbianでも試しました。

コンパイルは、Windowsでは、WinAVRを使うようですが、うまくいきませんでした。また、WinAVRの後継とされるtoolchainでも、コンパイルエラーが発生し、うまくいきませんでした。
このため、Windows環境でのコンパイルはあきらめました。

次に、マイコンに書き込むためのソフト、FLIPは、linux用は、x86環境で動きますが、linux用は、バージョンが古く、ダヴィンチ32U(ATMEGA32U4)に対応していません。おそらく、ATMEGA32U4用の設定ファイルを用意できれば動くのではないかと思いますが、linuxでの書き込みはあきらめました。

Debianと、Windowsの2つの環境を用意したのは、Debianでコンパイルし、Windowsで書き込むためです。

Debianでの準備
開発環境を用意するため、2つのパッケージを入れました。

$ sudo apt install gcc-avr avr-libc

変換器のプログラムのソースを取得するために、gitを入れました。

$ sudo apt install git

コンパイル
作業フォルダに移り、ソースを取得

$ git clone git://github.com/tmk/tmk_keyboard.git

tmk/keyboard/converter/x68k_usbフォルダに移動

Makefileを修正します。
atmega32u4のコメントを外し、atmega32u2をコメントにしました。

MCU = atmega32u4
#MCU = atmega32u2

Optionを変更しようかと思いましたが、そのままにしました。

このまま、コンパイルすると、ANSIキーボード(英語環境向けのキーボード)になるため、JISキーボード(一般的な日本語キーボード)の設定に変更しました。
また、キーのカスタマイズも行いました。

keymap.cを修正
JISの部分をコピーし、配列の先頭にコピー。
この配列部分を、自分好みにカスタマイズしました。
刻印通りに打てることより、他のキーボードの位置に合わせることと、Capsに全角キーを割り当てているのが特徴です。

CTRL   -> ZKHK
ひらがな -> LCTL
全角   -> CAPS
BREAK   -> FN0
COPY   -> LGUI
HOME   -> INS
ROLLUP  -> DEL
INS    -> HOME

気に入らなければ、後で、変更できるのが、変換器を自作することのメリットです。

コンパイル

$ make

無事に、hexファイルができました。

マイコンへの書き込み
マイコンへの書き込みは、Windowsで行いました。

・FLIPをインストール

・コンパイルしたhexファイルを含むx68k_usbフォルダを、Windowsにコピーしました。

・FLIPを起動
・hexファイルを読み込む
・左上のアイコンで、マイコンの種類を選択
・接続のアイコンで、USBを選択
・<run>で書き込み

これで、変換器のマイコンは完成しました。

プログラムを修正し、再度、書き込む場合は、マイコンのHWBをGNDに繋いでショートさせ、USBに繋いだ後で、リセットボタンを押します。
これで、再度、書き込みができるようになります。
一度、USBを抜き、USBに差し込むと、Windowsにキーボードとして認識されました。
確認するには、デバイスマネージャーを開き、キーボードデバイスを見ます。
キーボードが増えていれば、成功です。
キーボードとマイコンの配線
情報ページのピンの位置は、コンピュータ側の図ですから、キーボードのコネクタを見ると、左右が逆になります。この点に気をつけて、線を確認し、配線しました。
ケースに入れる
ケースは、100円ショップのコインを入れる物を使いました。
ケーブルを通す穴を空けるだけで、大丈夫でした。
試し打ち
キータッチは素晴らしく、意味もなく、キーを叩いていたい衝動に駆られました。
キー入力の確認には、
Keymill
というソフトを使いました。
debianであれば、xevが良いと思います。
一応、完成しましたが、古いキーボードのため、いくつか、入力できないキーがあります。
修理は、後日、行うつもりです。
タイトルとURLをコピーしました