これを、USBで接続できるようにし、Windowsパソコンで利用しようと思います。
キーボードを、そのまま、利用することはできませんので、USBに変換する機器を製作しました。
- ダヴィンチ32U (ATmegaマイコン)
- USB A – ミニBケーブル
- 100円ショップのケース(硬貨を入れるケース)
- ソースをコンパイル
- コンパイルしたバイナリファイルをマイコンに書き込む
となります。
他に、Raspberry Piに、Raspbianでも試しました。
コンパイルは、Windowsでは、WinAVRを使うようですが、うまくいきませんでした。また、WinAVRの後継とされるtoolchainでも、コンパイルエラーが発生し、うまくいきませんでした。
このため、Windows環境でのコンパイルはあきらめました。
次に、マイコンに書き込むためのソフト、FLIPは、linux用は、x86環境で動きますが、linux用は、バージョンが古く、ダヴィンチ32U(ATMEGA32U4)に対応していません。おそらく、ATMEGA32U4用の設定ファイルを用意できれば動くのではないかと思いますが、linuxでの書き込みはあきらめました。
Debianと、Windowsの2つの環境を用意したのは、Debianでコンパイルし、Windowsで書き込むためです。
$ 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ファイルができました。
・FLIPをインストール
・コンパイルしたhexファイルを含むx68k_usbフォルダを、Windowsにコピーしました。
・FLIPを起動
・hexファイルを読み込む
・左上のアイコンで、マイコンの種類を選択
・接続のアイコンで、USBを選択
・<run>で書き込み
これで、変換器のマイコンは完成しました。
これで、再度、書き込みができるようになります。
確認するには、デバイスマネージャーを開き、キーボードデバイスを見ます。
キーボードが増えていれば、成功です。
ケーブルを通す穴を空けるだけで、大丈夫でした。
修理は、後日、行うつもりです。