メインの石
ハード寄りで石って言えば、普通(昔?)は裸のICを指しましたが、時代は変ったんですよ。今では小型のマイコンボードが昔の石の代わりをしています。Arduino の Mini とか Micro、ダ・ヴィンチ32Uとか、こういうマイコンボードはハードウェアのアーキテクチャも公開されていて、豊富なサンプルも手に入る。
さらに、マイコンと言えばちょっと前まで専用のライター(Writer)が無いと中のプログラムを書き換えられないし、石によってライターが違ったりで、なかなか手が出しにくいものだったけれど、これらのマイコンボードは、USBのインターフェースを持ってる上に、内蔵メモリが大きくなったのもあってか、ブートローダを内蔵していて、パソコンとUSBてつないでライター無しで直接ファームを書き込むことができるようになっている。
時代は変った。
Ergodoxの基板には、コントローラとして、Teensy2.0(https://www.pjrc.com/teensy/)っていうマイコンボードを使うようになっています。(このPJRCっていう会社?もすごいんだけど、まあいずれ)
Teensy2.0 には AtmelのAVRマイコンAtmega32U4が載ってます。この石、Arduinoとかにも使われているくらいポピュラーな石なので、いろいろなファームウェアが手に入るのですが、そのなかには、キーボード用のもありまして、好きなのを選ぶことができます。
さらに、その中の、いくつかのキーボード用のファームウェアは、Ergodoxにも対応していて、標準の設定で満足できるのであれば、そのまま使うこともできます。
気に入らなければ、自分で書くこともできますよ。
時代は変った。
サブの石 (I/Oエキスパンダー)
マイコンはだいたい足(端子)に掛っている電圧で外の状態を知るわけです。対してキーボードは、いずれにしても沢山のスイッチを並べて、On/Offで入力する装置で、だいたい100個くらいのスイッチが並んでいます。 マトリクスを使うなどの工夫をしても1つの石だけでチェックできるスイッチの数には限りがあるので、足を追加する石を使うことが多いです。I/Oエキスパンダーってやつです。Ergodoxでは、MCP23018というI/Oエキスパンダーを使います。Teensyとの間は、I2C接続なので、4本の線をつなぐだけで住むので、Ergodoxではこれを利用して左右を分離しています。
右の基板には頭脳であるTeensy、左の基板にはI/Oエキスパンダーを載せ、その間を4本の線(物理的には1本に見えますが)でつないでます。
ディスプレイ
Ergodoxにはディスプレイなど付いていない。でも、基板をいただいた方から、「ディスプレイに情報を表示されるようにすると、デバッグに役立つよ」との情報をいただき、なにそれかっこいいってことで僕も付けることにしたのでした。
付けたのは、紹介してもらった、Seeedが出している有機ELのディスプレイです。
このディスプレイもI/Oエキスパンダと同じI2Cのインターフェースを持っているので、線を引き出すところさえ見つければ特に改造などしなくても付けられるはずです。
つなげてみる
ブレッドボードに並べて、接続してみました。PCに開発環境を調えて、サンプルとかいろいろ書き込んで、とりあえず、目的のファームでの基本的な動作は確認できました。今はいろいろいじくっています。
画面に何を表示するかとか、マクロとかの機能追加をどうしようとか、いろいろ考え中です。
光っているのは、CapsLockとかを表示するLEDです。が、多分他の用途に使うことになるでしょう。
0 コメント:
コメントを投稿