見出し画像

自作キーボードに手を出して半年の道のり。

概要

自分のキーボードにおけるEndgameに近いものが見つかったため、
一度ここまでの振り返りを行うもの。

自己紹介

普段銀行系のSEな企業で仕事をしつつ、余暇で色々創作してます。
自分が関わったやつだとTokyoDemoFest2013のInvitationDemoとかが有名かもしれません。(もう10年前とかおいおい

普段は個人でゲーム・楽曲・ツール等を作ったり、ジャズサークルPrictniumで鍵盤楽器の打ち込みを担当してます。

キーボードを自作した理由(概要)

腱鞘炎が主要因です。
わかりやすく言うと、キーボードを打つときにホームポジションを維持しつつエンターキーを押す場合、小指を伸ばすと同時に手首をエンターキー方向に傾けるという動作が困難になりました。
上記により、市販品のフルサイズキーボードはおろか、HHKBのようなレイアウトを省略しているキーボードすら利用できないような状況に陥りました。

上記を踏まえて、最初自分が考えたのは、
手首が動かなくても、ボタンの押下だけで音が鳴るようなシンセサイザーやシーケンサを作れば、少なくとも作曲については問題が解決するのでは?」ということでした。
(この時点では自作キーボードまったく関係してません)

パラメータや音の大きさ等をシンセサイザーのノブで変更する場合、手首を回転させる必要がありますが、腱鞘炎のため手首の回転動作を避ける必要がありました。
上記を踏まえて、ボタンだけですべてを制御する構成でシンセサイザーの制作を検討し始めました。

自作キーボードは上記のシンセサイザーの制作過程で手を出してしまったもので、どちらかというと偶然キーボードの自作を始めたという認識です。

この半年の道のり

大前提

内容の軸を確保するのに月ごとに作成したキーボードを書いていきます(本当はもっと多いですけど)
・作ったキーボードのレイアウト
・機能

10月の主な制作物

・10キー程度のキーボード
・シンセサイザー

電子工作については素人もいいところだったので、まずボタンの仕組みから勉強することにしました。

あとはシンセサイザー制作に便利そうなモジュールということでBelaを購入、お試しで使ってました。

こんなの作りたい

このとき上記の資料を参考にして自作キーボードのキースイッチを流用できないか検討を始めました。
ただ、最終的にBeagleBoardのチップを爆発させてしまって一時休憩します。

11月の主な制作物

・30%キーボード(Nomu30)
・MIDIキーボード・MIDIシーケンサ

追加でBelaとBeagleBoardを注文して届くまでの間、スイッチの組み立てや回路の作成についてもっと効率的に行えないか検討を始めました。

色々と調べた結果、自作キーボードの多くの設計ではキーマトリクスを構築してボタンを処理していることがわかったので、まず自作キーボードの設計を参考にすることを決定、試しに販売しているキーボードを購入し組み立てました。

構成部品もそれほど種類がなくあっさり組めたというのが第一印象でした。(物量は多いですが)

また、作っていく中で「Arduino対応のマイコンボードを装着するので、ボタン押下の処理を自分で書いてしまえばシンセに使えるのでは?」と考え始めました。

ということで以下ページのソースコードを参考に、自分でMIDIノート出力の出来るファームウェアを作り始めました。

12月の主な制作物

制作物
・40%キーボード(SU120で作成)
・MIDIキーボード、MIDIシーケンサ

ネジとはんだ付けでキーボードが作れるSU120を使って、キーボードを試作してみました。
ファームウェアは引き続き自作のものを利用してます。

また、PCBだけでキーボードを作る場合キースイッチがぐらつくため、KiCadでプレートを制作し発注、丈夫なマクロパッドを作りました。

1月の主な制作物

・50%キーボード、40%キーボード(M0ii0)
・文字入力、MIDIキーボード

コミケにて空き時間でキーボード島をうろついて、M0ii0を購入しました。
佇まいがKawaii。

試しにMIDIキーボードにファームウェアを切り替えしようとしたところMCU表面実装のキーボードであることに気づきました。

マイコンボードが使えないため、ここでようやく自作キーボードでよく使われるQMK Firmwareを使ってみようと思い始めました。
MIDI出力が可能なところまで確認しましたが、MIDI機能を有効にするとそれ以上の機能が入れられない状況に遭遇。
泣く泣く文字入力メインに切り替えました。

またM0ii0の動作確認をする中で、QMK firmwareのレイヤー機能を使ってみたところ、慣れれば快適に文字が打ち込めるなということを認識しました。
上記の経験から、
キーボードを設計し、必要なキー数を揃えてレイヤーも整理すれば、まずはPCを取り扱う環境を改善できるのではと考え始めました。

今までシンセサイザーを作るのを目標にしてましたが、このとき初めて文字入力に対して自作キーボードを使うことを想定し始めました。(遅い)

ということで自分でキーボードを設計・製作することにしました。
以後簡単な試作はSU120で行って、複雑な構成の場合はKeyboardLayoutEditorを使うというスタイルでキーボードを作っていくことになります。

2月の主な制作物

・60%キーボード(DZ60)
・文字入力

次は「ケースはどうやって作れば良いんだろう?」と考え始めました。
ケースの製造知識に疎いため、まずは既存のケースに納めることを考えました。
試しにTofu60とDZ60を購入し、取り付け手順や固定方法等を確認しました。

あとは試作をいくつか行なってますが、結果は出てません。

3月の主な制作物

・30%キーボード(picobd)
・文字入力

継続して、日常的な腕の痛み対策の一環としてキーボードを自作してました。
2月にPCBを複数設計した結果うまくいかないケースが頻発したため、配線がシンプルなキーボードを作ることを目的とし仕上げました。
周りに40%以下のキーボードが少ないのもあって、簡単に作れるキーボード・Picobdとしてオープンソースで公開中です。

元々常用を想定、かつ電子工作の難易度が低いキーボードとして作成しました。
ただ、使ってるうちに左手で打つキーレイアウトに不足を感じたので調整予定です。

4月の主な制作物

・40%キーボード(Zerobd、Twoyo)
・文字入力、マウス操作

3月に続き、文字入力用のキーボードを作成してました。
まずは幅13uの一体型キーボードを作りました。
ただ、マイコンボードの都合上か不明ですが一部ファームウェアが書き込めないことがわかったため、ファームウェアを限定して運用してます。

このボードはZerobdと名前をつけており別途公開を予定していますが、ファームウェア書き込みの問題があって作業はストップしてます。

また、上記とは別に海外で販売しているロースタッガードの分割キーボードを購入しました。

上記のキーボードは、自分にとって使いやすく取り扱いやすいものでした。

レイアウトについては、ロースタッガードに加えて1u以上の長さのキーを利用可能なため、小指におけるキーの打ち損じが減ります。

幅は12uで、エンターキーを押すために手首を曲げる必要もなくなりました。(英字配列になりますが)

機能については、文字入力に加えてマウスのコントロール機能やショートカット機能を追加して、キーボードからマウスに切り替える状況を少なくし、かつドラッグ&ドロップのように手首に負荷をかける動作が必要なくなりました。

一応上記をもって自分にとってのEndgame扱いとしました。

まとめ

非常に散発的な内容になってしまいましたが、以下に強引に内容まとめます。

  • 関係ないところから自作キーボード入門した事例があるよ

  • 電子工作素人だったけど少しずつ着手してくことでなんとかなるよ

  • バックグラウンド関係なく、自作キーボードに手を出す事例があってもいいと思うよ

自作キーボード興味あるけど怖いとか考えてる人へのヘルプになれば幸いです。

いいなと思ったら応援しよう!