keyboard

Moduloアーキテクチャ

キーボードを設計する際には、スイッチマトリクスを使用することが多いのです(キーボードの作り方 参照)が、その難点は、マトリクスを使ってもピン数が足りなくなるということと、行と列という概念があるため設計がその影響を受けやすい(無論、論理的な行列と物理的な配置を無関係に設計することはできますが)といった点が上げられます。

また、日本で人気のセパレート型のキーボードを作る際には、MCU(Micro Control Unit)ひとつでまかなうことが難しいため、左右のそれぞれにMCUを載せ、何らかの通信手段でそれらを連携する必要があります。

そこで、 @Biacco42 さんが提唱したのが、「 Moduloアーキテクチャ」です。その特徴は、

  1. MCU(Micro Control Unit)をPendant Moduleと呼ぶモジュールとして、キーボード本体(Input Moduleと呼ぶ)から分離独立させる。
  2. Pendant ModuleとInput Module(複数でも可)の間は、オーディオケーブルとして入手しやすいTRRSケーブルで接続する。
  3. Pendant ModuleとInput Module(複数でも可)の通信 は、I2Cを使用することで、複数の入力デバイスとのやりとりをシーケンシャルに分割して行う。
  4. 電池駆動のキーボードなど省電力が求められるもののために、Pendant ModuleとInput Moduleの通信には、I2Cに加えてINT(割り込み信号)も含まれている(なので、TRRSケーブルが2本必要)。
  5. 一対のコネクタとして、I2C用のケーブルとINT用のTRRSジャックの配置は、3×19.05mm、もしくは4×19.05mm。

などが上げられます(もっとも詳細な仕様は、@Biacco42 さんの同人誌なので、興味のある方はご購入ください)。

といっても、当研究所では経験に基づいて、

  • ペンダントに分離するのはキーボードというくくりで考えたときに煩わしいので、原則としてMCUもキーボードに載せている(ただし、そのキーボードがペンダントを兼ねるので、他のInput Moduleを接続して使用することは可能)。
  • I2C用のケーブルとINT用のTRRSジャックの配置を仕様通りに合わせるのが、難しいときは、すぐそばに並べてしまうこともある。
  • そもそも、INT用のTRRSジャックを省いてしまうこともある。

といった点で、Moduloアーキテクチャから外れています。