蟹好きのメモ

情報系の学生が思ったことやログなんかを書いておきます.

【DZ60】設定したキーと違う文字が入力される

はじめに

前回までで,自作キーボードDZ60を作ってファームウェアを書き込めるところまできました.

今回は,実際にファームウェアを書き込んで起きた問題を記録に残しておきます.

(...調べた内容をまとめるだけ)

状況

まずは実際にレイアウトを自分で作成して,DZ60に書き込み.

書き込んだレイアウトを晒します.

f:id:r7cancer:20191021014318p:plain f:id:r7cancer:20191021014328p:plain

レイヤー変えると十字キーとか使えるようにしたいなぁってことでこの配列にした.

これをコンパイルして,hexファイルを生成. 書き込みもする.

そしていざ,テスト!って時に事件はおきた.

普通にアルファベットを入力するのはできた. でも記号を入力すると,設定と全然違うものが入力される!!!

対策

これは考えてみれば思い当たるものがあった.

今回作ったキーボードは,ノートPCに接続して使用している. ノートPCにもともと載っているキーボードはJIS配列なので,今回作ったUS配列と互換のないキーがあるんだ.

ハードウェアに詳しいわけじゃないけど,PCは任意のシグナル(キーボードからの入力)に対して設定されている文字を返す.

今回PCに設定されているのは日本語の配列なので,例えばShift + 2キーを押すと,"を入力する.+とか[]のキーの位置も変わってしまう.

でも作ったキーボードはUS配列なのでこれでは困る.

これを直す方法は以下の2種類がある.

前者はc言語で書かれたソースファイルをいじるので,プログラム触ったことないよって人は少々めんどくさく感じるかもしれない.

僕は両方やった結果,後者の方がキーキャップと配置があっているみたいだった.

両方のやりかたは下記のリンクを参考にしてください.

unsolublesugar.com

qiita.com

おわりに

ここまで終われば,ひとまずは自作キーボードとして完成したといえそう.

後は使いながらレイアウトを修正していけば慣れていくと思う.

あと時間があるときに,DZ60作成記録ファームウェア編を書いて,自作キーボード記事のまとめをつくりたい.