カテゴリー「PDA」の3件の記事

2015年6月25日 (木)

USBキーボードは自作できるのか下調べをしてみる

HP200LXのキーボードの打ち心地がいまだに忘れられなくて、

HP200LXのキーボード部分の構造を用いた(模倣した、継承した)USBの小型キーボードが欲しい!、と前に書きましたが(過去のblog記事:こんな小型キーボードが欲しい!)、自分好みの物が市販されていない以上、無いものは自分で作る、欲しいものは自分で作る、の精神で行くと、まずは自作してみるしかない、という方向に向かうことになります。

そこで、もし、自分が欲しいと思っているキーボードを自作するとしたら、何が必要なのか、を、ちょっくら調べてみました。

基本的には関連するキーワードでググりまくって、情報を集めて行きます。
はっきりいって、私、素人です。
かなーりてきとーですがご容赦ください。

まず、USBキーボードは自作できるのかという問題。
USB キーボード 自作」で検索するだけで、かなりの数が出てきます。
ちゃんと完成させている人が多いことから、どうやら自作は可能なようです。

次は部品、特にキーボードの中枢になるワンチップマイコン。
(マイコンと言えばむかしのPC-8001やFM-7やMZシリーズを思い出すおっさんです。自分はPC-6001を所有していてベーマガのBASICのリストを手打ちしてゲームを遊んでたりしてました)

市販のキーボードをバラして、中の基板を流用することも考えましたが、私が今欲している小型キーボードの場合、流用しようにも「自分が必要とするキーが付いていない」「自分があまり必要としないキーをFnキーとの同時押しに逃がしたい」等々の制約があり、それらキー配置などが完全に合致する市販キーボードが皆無なことから、既成のキーボードの基板の流用は見送ることにしました。
(標準的な配列で標準的な大きさのキーボードを自作するのなら、市販のキーボードの中身を流用したり、キットを購入するのが一番手っ取り早いです)

ワンチップマイコンは昔と比べてとても便利で扱いやすくなってたんですね。
汎用I/O内蔵でピンの入出力を自由に設定可能とかA/Dコンバータ内蔵とかPWM出力可能とか、良い時代になりました。

今の電子工作で使うマイコンチップは、どうやら「PIC」と「AVR」あたりが基本のようですね。

今回、USBキーボードやUSBマウスの機能を実現させるために、チップ内にUSB機能が内蔵されているほうがよろしい。
そうなると、PICだと「PIC18F2550」「PIC18F4550」や、AVRだと「ATmega32U4」 あたり?
USBキーボードやマウスなどのUSBの入力機器では「USB HID」という規格がありまして、
USB付きのPICもAVRも、どちらもUSB HIDのライブラリがあるっぽいので、ソフトを組む労力が軽減されそうです。

そんでもって、今、考えているのは、AVRを用いたオープンソースハードウェアのマイコンボード「Arduino」シリーズで、USB搭載の「ATmega32U4」を積んだタイプを使おうかと。
PICはプログラムの書き込みに専用のライターが必要になりますが、「Arduino」ならPCとUSBケーブルで直繋ぎでプログラムの書き込みが行えること(これ、けっこう重要というか手探りで作るのにとても便利)と、今現在は「Arduino」のほうが流行ってるっぽいので、新しい情報が手に入りやすそうなこと、「Arduino」の統合開発環境「Arduino IDE」に「USB HID」の関数群が既に有り、「Arduino」の本家 http://www.arduino.cc/解説したページまであるため、ほぼ初心者の私でもハードルが低そう、などを決め手にしました。

Arduino ATmega32U4」で検索すると「Arduino Micro」や「ダ・ヴィンチ32U」が出てきました、キーボードくらいの大きさの物を作るにはちょうど良さそうです。
USBまわりのソフトウェアに関しては、さらに情報を集めるために、同じくATmega32U4を使用している「Arduino Leonardo」も参考になるので、「Arduino Leonardo USB HID」あたりの文字列でも検索をかけるとよろしいかと。
スイッチサイエンスさんの「Arduino Leonardoへのガイド」にUSB内蔵のArduinoの注意が書かれています。

続いて、これに繋ぐ物理的なキースイッチとマウスポインタですが、「Arduino」の本家のページ http://www.arduino.cc/ の 「Mouse and Keyboard libraries」に関数の詳細、Examplesに簡単な接続方法とサンプルプログラム(スケッチって言うんでしたっけ?)が掲載されています。至れり尽くせり。

ポインティングデバイスですが、アナログ値をA/Dで読みとるのであればX-Yの座標を抵抗値の変化で示す部品「アナログジョイスティック 部品」で出てくるパーツが直付けできそうですね。
トラックボールはパルス出力でしょうから、その信号形式などを読み取って数値に変換してやるプログラムを追加してやれば良さそうです。
超小型トラックボールモジュール」で検索すると出てくる、小型基板にひっついたトラックボールは、ブラックベリーで使われていたトラックボールと同じ仕組みのホール素子(磁気センサ)を使った物です。この超小型トラックボールのパーツはどうやら販売終了っぽいのですが後続品があります。
実は調べていたら、Macintoshの「マイティマウス」のスクロールボールが、どうやら同じ仕組みっぽいので、中古を購入してバラして流用してみるのも手かもしれません。

肝心のキーボード部分ですが、今回の私が欲しいと思っているキーボードでは80keyもありまして、I/Oポートが足りません。Arduino はI/Oが20pin。

キーボードのスイッチ入力には古くから「キーマトリクス」という手法があって、これを使用します。
キースキャンの出力側に汎用ロジックICのデコーダ 3 to 8 line decoder74HC138を使えば使用するピン数を減らせそうです(出来る?) HCはCMOS、74HC138」は出力が負論理(ローアクティブ Active Low)74HC238なら出力が正論理(ハイアクティブ)
負論理の74HC138は使えないっぽい?!試しに74HC138で回路を組んでみたら、同じライン上のキー同時押しが読めかった!(多分、電流逆流防止(電流の引き込み抑制)用のダイオードを入れれば正常に動く、かも?)
正論理の74HC238に交換したら、正常に動きました。ほっとひといき。
DIP(ゲジゲジ)もSOP(ひらべったい)もあるのでよさげです。
これでも足りなければ、4-16 デコーダの、74HC154で。
74HC154は入手困難っぽいです。
74HC138を複数使えばピン数を増やせるけれど、チップが増えちゃうのは困りもの、でも無い袖は振れない。
他の人はシフトレジスタを使ってるので74HC16474HC595を連結するのがいいのかも。データ線とクロックだけで済むし。使用例も多いし。オススメかも。

問題なのは誤入力防止のダイオードとキーマトリクスの配置。マトリクスの配置には何か法則性があるのだろうかと調べてみたけれど分かりませんでした。

なぜダイオードが必要なのかは「キーマトリクス ダイオード」で検索すると出てきます。
押されていないキーが押されていると認識されてしまうゴーストキーの対策。

なんか、ダイオードを入れずにマトリクス上のキーの配置と読み込みルーチンを工夫して対処しているような雰囲気も・・・
このへんの配線は要検討というかもっと調べるか作りながら決めていくかしかなさそうです。

あと、キーボードに「Num Lock」「Caps Lock」「Scroll Lock」のLEDを付けたいのですが、これらのLEDは実はPC本体からの信号で点灯してたりします。
この機能をArduinoに行わせる方法ですが「Arduino HID KEYBOARD LED」で検索して出てくる
Topic: Leonardo keyboard leds emulation? - Arduino Forum」でパッチを当てた人が居るので参考に。

あとは、Arduinoに実装される USB HID は、ちょっと特殊というお話を ksmakotoさんが「Arduino leonardoはUSB機器としてちょっと特殊だ、という話」で書いていらっしゃるので、一度読んでおくとよろしいかと。
USB HID 複合デバイス arduino」も検索して、現在色々と勉強中です。

※素の状態だと「Boot Interface」として使用できない(システムが起動するまで使えない?)ような感じ?もしBIOS等でも使えるような素直なキーボード&マウスにするためには書き換え必須な雰囲気?それともなんか大丈夫っぽい?USBの仕様書をもっと読まないと。えいごめんどくさい

USBキーボードが送信するキーコードは「Universal Serial Bus HID Usage Tables」のp53からと、「USBキーボードのキーコード」に記載があります。

Universal Serial Bus HID Usage Tables」で日本語キーボードに特有のキーを表している p60 の Footnotes 15-20 の表が、最初は?だったのですが、Usage Name の右肩の数字と対応してるとやっと気がつきました(以下の追加の脚注を見ろや!って書いてあるよ・・・ちゃんと読まにゃ)。DOS/V-109 の「¥」のキーのNote17は、Keyboard International 3(17) の「17」、つまりキーコードは89。
確かに「USBキーボードのキーコード」で「¥」は Keyboard International 3 でキーコードは 07 / 89 (07はキーボード)になってます。
日本語キーボードを作る方は参考にしてください。
ちなみにArduinoの素のUSB HID ライブラリではキーコードが101までしか送信できないそうで。101より先のキーコードに割り当てられている「¥」などを送信するには、HID.cpp の HID report descriptor を書き換える必要があります。

Arduino IDE」をインストールした場所の Arduino\hardware\arduino\avr\cores\arduino の中にある「HID.cpp」と「USBAPI.h」を書き換えると、USB関係の機能追加や変更が出来るっぽいです。「HID.cpp」と「USBAPI.h」の素のソースと、機能の追加で変更後のソースを読むと、何やってるのか分かります

例えばですが、「HID.cpp」の素のソースを覗くと、「Keyboard.press()」関数の、Shiftキーが押された状態で入力されるであろう文字の処理や、USB HIDキーボードのReportで特別扱いになっている修飾キー(modifier Key :左右のCTRL,SHIFT,ALT,GUIキー)の処理とかが書いてあります。

Arduino IDE の 1.6.x の後半と、1.8.x では、Arduino\liblaries\ の Keyboard と Mouse に、ライブラリの形で分離されています。src の中の、*.h と *.cpp を読んでみてください。

USBのHIDデバイスの解説は「USB.org」の「HID Information」にあります。
Device Class Definition for HID 1.11
HID Usage Tables 1.12

 

なんとなく、回路構成は、こんな感じになりそうな予感。
まだ全くの仮です。組んでみないと動くかわかんないし。
(クリックで拡大します)

Photo

追記:2015/10/29
ネットを検索して見て回っていたところ、次のファイルを見つけました。

USB and PS/2 Multimedia Keyboard Interface Designer - Reference Manual
http://cache.freescale.com/files/microcontrollers/doc/ref_manual/DRM014.pdf

これは、 Freescale社の 68HC08 というマイコンチップを使用してPS/2 & USBキーボードを構成するための、リファレンスボードのマニュアルです。
これには、USBキーボードとして動作させるための回路構成、具体的なキーマトリクス、フローチャート、マルチメディアキーのUSBでの扱い、等が書かれています。

※これに記載されているキーボードマトリクスなのですが、私の手元にあって分解した無名メーカー製のUSBキーボードのキーマトリクスとかなり似通っていました。全く異なる2個をバラしたのですがその2個が全く同一のマトリクスで驚きました(但しメンブレンシートの配線のパターン図は異なってました)
もしかしたらですが、今出回っているUSBキーボードに使われているいくつかのマイコンチップとそれのファームウェアは、このリファレンスの68HC08とソースを使っているか、またはセカンドソースか、互換品か、または他のチップに置き換えたコピーだったりするのかもしれませんね。あくまで想像ですけれど。
今のほとんどのUSBキーボードの中の制御チップは、チップ表面の刻印が無くて不明だったり、COB実装(Chip on board、半導体チップをそのまま基板に載せて配線して上から黒い樹脂をかぶせちゃう)なので、中身までは分からないのですよね。

このリファレンスボードの、ファイルの参照元になるページはどうやら無くなっているようなのですが、

HC08K: 8-bit USB K MCUs
http://www.freescale.com/products/more-processors/8-bit-mcus/hc08/8-bit-usb-k-mcus:HC08K

の、Software & Tools に、

USB Hub Keyboard Reference Design
http://www.freescale.com/products/more-processors/8-bit-mcus/hc08/usb-hub-keyboard-reference-design:RD68HC08USBHKEYBD

を見つけました。どうやらこちらが現行のページっぽいです。
これは、USBのHUB及びUSBキーボードのリファレンスと開発ボードで、USBキーボードの部分は上記 DRM014.pdf の内容が含まれています。

Documentation に、リファレンスマニュアルのPDFがあります。
USB Hub Keyboard for the MC68HC08KH12 Designer - Reference Manual
http://cache.freescale.com/files/microcontrollers/doc/ref_manual/DRM015.pdf

そして、Software & Tools からは、回路図とソースファイル一式がダウンロード可能になっています。

やった!ソースファイルが手に入った!、これで具体的な処理内容が分かる、特に不明だったゴーストキーの対処法が分かるぞ!、と思ったのですが、

プログラムはアセンブリ言語で書かれていました。当然ですが。

68HC08 のアセンブリ言語なんて読んだことないし(Z80なら学生の頃にかじったのですが)ニーモニックやらレジスタやらアドレスやら定義されているラベルやら訳分からん状態です。

解読するしか無いかなぁ、、、68HC08って、どうやらMC6800 の系統らしいのですが、、、

追々、調べますか。

以上、追記終わり。

 

さて、今後、色々そろって、いざハードの実験や試作をするとなると、キースイッチを用意しないといけないのですよね。
私が目指しているキーボードは小型の物なので、とりあえずの試作は市販のタクトスイッチでも使いますか。
問題は大きさ、想定しているキーピッチが1cm X 1cm なので2.54ピッチのユニバーサル基板だとズレちゃうんですよ。
なので2mmピッチのユニバーサル基板を買わないと。
ガラスエポキシの基板って堅くって、切るのしんどいんですよね・・・

最終的にはバラの部品を乗っけられる専用の基板を作り起こすことになりそうです。
基板 試作」で検索すると企業向けだけでなく個人向けにも小ロットで作ってくれる会社があるみたいです。

これで回路周りは作れそうなのですが、一番の問題はキートップ!!!
キートップとその構造は、HP200LXのキーボードの要とも言えます。
ここを再現してみないことにはどうにもなりませんし始まりません。
3DCADでデータを起こして、3Dプリンタで試作品を出力するのが順当でしょうが、
私、2次元の機械図面しか引いたことがないのです、私が学校に通ってた頃は、まだCADは普及していませんでした。
なので紙の上にえんぴつで機械図面を引くのは出来るのですが(成績そこそこ良かったんよ)CADは全く触っていないのです。
フリーソフトの3DCADを入手はしてあるので、早く使えるようにならないと。
数ヶ月前に10年使ったマザーボードとCPUを買い換えたので、やっと普通の速度でソフトが動くようになったはずなので。

あぁ、はよやらにゃ。

追記:とりあえず作り初めてみました。
Arduino Micro を使って、試しにUSB スライドパッド マウスを作ってみた(小型USBキーボード自作のための準備色々)
ネットの情報をかき集めるだけで、かなーり簡単にポインティングデバイスが自作出来ます(出来ました)。一応普通に動作してます使えます。
皆さんの参考になれば。
Pict0007

 
追記:2016/02/01
今、出来てる、キーボード部分の回路とソフトをテストするための機材一式。
キーマトリクス配線をしたタクトスイッチ基板。
 
20160122pict0003
 
74HC138x2を使ったのですが、動かすソフトのお試し版を作って、そのバグ取りが終わって動かしたら、電気的に一部が動いてないことが判明。(具体的には同一ライン上のキーの複数押しを認識しない、けれどそこ以外はちゃんと動いていて、一応キー入力出来てます
「あーそうか、そーゆーことなのか?」という思い当たる部分があるので、今、別の汎用ロジックICをネット通販で注文中。
届いたら交換して再検証します。

追記:2016/02/10
部品交換で一応正常に動いたので、暫定ですが現状をブログに書きました。
Arduino Micro を使って、USB 小型キーボードを自作(製作途中、暫定公開)
今のところ普通に動いてるっぽいです。
是非、上記キーボードのページを覗いていってくださいませ。

追記:2017/06/09 の時点での動画がこちら。

ネットの情報を集めるだけで、かなーり簡単に、普通に動くUSBキーボードが自作出来ます(出来ました)。
Arduino様々です。電子機器DIYにとって良い時代になりました。
皆さんの参考になれば。
 

2016/06/18 現在、停滞している作業
・検証用プラ製キートップの手作り
・キーボード、マウスとして、実際に動作している様子を動画で撮影

今後予定される、予定している、行いたい、出来ればいいな、作業
・ゴーストキー対策の実装
・NumLockの実装
・Arduinoの標準ライブラリの改変
 ・日本語キーボード特有のキーの有効化
 ・キーボードLEDの機能追加
 ・マルチメディアキーの実装
・キーバックライト用のLED点灯まわりの電子回路の検討、実験
・ATmega32U4(TQFP)と74HC164(SOP)などを用いて、キーボード自作専用のArduino下位互換基板の製作
 ・回路図CADの操作習得と、回路図の描画
  ・動作試作回路の製作(手半田で)
 ・回路基板CADの操作習得と、基板のデザイン製作
 ・※実際に試作基板を発注するところまで行けるかは不透明
・Arduinoの標準ライブラリの、さらなる改変
(Arduinoはかなりの電気食い。USBのConfigurationDescriptorでMaxPowerが500mAと定義されていて、なおかつ実際に消費電力が多いためにモバイルに不向き)
(Arduinoには省電力のためのライブラリ等もあるらしいので、ソフト的にもハード的にも電力を出来るだけ抑えたい)
・3Dモデリングソフトの操作習得と、樹脂製キートップのモデリングおよび試作の3Dプリント

とりあえず思いついているのはこのくらい。
以下、完全に未定

 

| | コメント (0) | トラックバック (0)

2014年11月30日 (日)

こんな小型キーボードが欲しい!

20年前「HP200LX」という小型の情報端末が、電子小物好きの間で深く広く愛されていました。
Hp200lx01

こちらに詳しい解説があります↓
ユーザーが育て愛した手のひらサイズのPC - YHP「HP-200LX」
http://news.mynavi.jp/column/history/007/

私もその前進のHP100LXと、HP200LXを購入して、仕事や実生活で活用していました。

今は液晶が劣化してしまい、予備の液晶パネルを持ってはいるものの、交換が面倒なので修理せず使っていませんが予備として保存してあった液晶も、経年劣化で真っ黒になってました!交換用の液晶を手に入れないことには修理不可能になってしまいました。
※修理できました。
液晶が生きていた2年前までは、テキスト打ち専用機として現役でした。
683314922

今現在、時代が変わって、HP200LXで行っていたことのほとんどは、スマートフォンなどで可能になりました。
但し、唯一、どうしてもHP200LXに敵わないところがあるのです。それがテキスト入力。

HP200LXのハードウェアQWERTYキーボードはとても良く考えられて作られていて、HP200LXを手に持ったまま親指でポチポチ入力するのに加えて、机などに置いて普通のキーボードのように両手の指で入力が出来てしまうのです。
その打ち心地は、とても良くて、私は未だにこのキーボードを超える小型のキーボードに出会えていません。

※追記
黒く変色してしまった液晶の偏光板を自分で交換することで、復活させました。
(けっこうかんたんでした)
せっかくなので、キーボードでの日本語入力の様子を動画で撮影してみました。

本体基板無改造(倍速化改造はしていません)
オカヤ・システムウェアのキットで日本語化済み
SDカード8MB使用中(PCカードタイプのSDカードアダプタ使用)
VzエディタとWX2で日本語入力
両手で持っての親指入力と、机に置いての入力

追記終わり。

 

小型の外付けの無線キーボードはそこそこ売ってるのですけれどね。
これとか
41pfkfc7fgl
http://www.amazon.co.jp/dp/B00CZCNJSQ

これとか
41zq4jutwl
http://www.amazon.co.jp/dp/B00L1HU5D8

これとか
81ddfa5wpjl_sl1500_  
http://www.amazon.co.jp/dp/B00KW3OFG0

こんなのとか
51smgusrx7l
http://www.amazon.co.jp/dp/B00ALC6DNK

最近だとこれが発売になったのですが、
4194399116880
http://www.donya.jp/item/26896.html
発売されたらすぐに売り切れました。

 

HP200LXの本体自体の用途は今のスマートフォンなどで十分ですが、キーボードだけ、HP200LXと同等かそれ以上のものが欲しいのです。
出来ることなら自分で作ってしまいたいくらいなのです。

イメージとしては、HP200LXのキーボード部分をそのまんま独立させた感じ

これ(画像クリックで拡大)
Hp200lx02
これにポインティングデバイスを追加した感じで。

Image1
(Windowsキーを右に寄せないほうがいいかな)
Image2

横幅は14cm~16cmで。15cmあたりが適正かも。
キー配列はQWERTY英語配列、キーの省略は極力避けたい。
上図は仮のキー配列。
キーピッチは10mm
キートップは7mm x 5mm
キーボードの構造はHP200LXをほぼそのまま模倣、

HP200LXのキーボードの詳しい構造は以下のページにまとめてあります。
LXのキーボードのひみつ
http://kato-h.cocolog-nifty.com/khweblog/2014/06/lx-f990.html

出来ればキーボードバックライトを付けたい。

ポインティングデバイスは
・トラックボール
・スティック式ポインティングデバイス
・光学式ポインティングデバイス
のどれか。
スクロール機能も付けたい。

端末との接続は
・有線USB接続
・専用2.4GHz無線接続
・Bluetooth接続

厚さは電池無しの有線USB接続で1cm以内。
乾電池を使う場合でも2cm以下。

机に置いても、手に持っても、使えるように。

基本はただの板状だけれど、オプションのパーツやケースを付けると、スマートフォンと一体化が出来るように。
(スライドやクラムシェル。あとシステム手帳のリフィル型とか)

と、まぁ、こんな感じのキーボードが欲しいのです。

 

ではなぜ上記の仕様にしたいのか説明を。

横幅ですが、HP200LXの外形寸法が160mm x 86.4mm x 25.4mmなので、最大幅160mmでも良いところですが、auのIS01の横幅が149mmだったので。

キー配列は英語配列なのは、日本語配列だとキー数が増えるので。
あと、繋ぐハードウェア側が日本語配列に対応していない場合がちょこちょこあるので。
LXのキーボードと同じ配列にせずに、一般的なキー配列にする理由は、LXのキー配列はLX用に特化されているので(内蔵アプリケーションの起動キーがあったりカーソルキーの使用頻度か高いので両手で持った時に親指が来る右上の部分にカーソルキーが配置されていたり)
ShiftとCtrlとAltは右側にも欲しい。
Windowsキーとアプリケーションキーは必要ないかもしれませんが、例えばAndroid端末に繋いだUSBキーボードのアプリケーションキーを押すとメニューが開いたりとかするので、個人的には付けときたいのです。

キーボードの構造はHP200LXと同じにしてしまって、樹脂キートップとドームシートとプリント基板によるクリックのあるスイッチに。
Hp200lx03
LXではシートにパターンが引かれていましたが、
Hp200lx04
今回はキーボード単体なので、直にプリント基板の片面にパターンを引いてしまおうかと。
制御チップとか裏面でもいいですし。

ドームシートは「ドームシート スイッチ」で検索をかけるといろいろ出てきます。
40
携帯電話のテンキーとかで使われています。
メンブレンスイッチとは│キーボード│メンブレンスイッチ解説
ドームシート - 不二電子工業株式会社
メンブレンスイッチの主流-クリックエンボス

HP200LXと同じ打鍵感にしようとすると金属ドームのシート貼りよりもドーム加工して裏に導電剤塗布したPETシートのほうがいいかも。
Memcl_p3

キーボードバックライトは、キートップを光が透過する樹脂で成形して、基板表面にLEDを点在させれば良さそうです。

ポインティングデバイス
トラックボールは光学式で小型のだとこんなのがありました。
741870
http://www.donya.jp/item/10499.html

400ma018_ma
http://direct.sanwa.co.jp/ItemPage/400-MA018

品切れ

あと小型のトラックボールでは、BlackBerry(ブラックベリー)に使用されていたトラックボールがあります。

226_1
https://www.switch-science.com/catalog/226/
これ。ホール素子を使っているそうです。

そうそう、トラックボールを搭載するなら、ボールと受けの掃除がしやすくしたいですね。

スティック型のポインティングデバイスといえば、ThinkPadシリーズのトラックポイント。
むかしの日本IBMのPC110では、ほぼ同じポインティングヘッドが使われていました。
Pc110a_11


光学式でセンサーの上を指でなぞるタイプのポインティングデバイスだと、上のほうで紹介した
4194399116880_2
http://www.donya.jp/item/26896.html
がありますね。

むかしシャープからNetWalkerという情報端末が発売されたのですが、
Product_big_b
http://www.sharp.co.jp/netwalker/pcz1j/index.html
これのポインティングデバイスも光学式で、
http://www.sharp.co.jp/netwalker/pcz1j/feature/operation/index.html
当時店頭で触ったところ、カーソル移動はとてもスムーズでした。
ただし、このNetWalker、キーボードの作りがあまりに駄目駄目だったのと、ソフトの動作速度がとてつもなく遅かったのです、店頭で触った限り。

マウスクリックのボタンはポインタ側に集めずに離して両手操作。
ポインタ周辺にボタンが集まっていると片手操作が出来るものの、ドラッグとかがとても苦しくなってしまうので。

 

キーボードと端末(スマートフォンやタブレット、PCなど)との接続ですが、バリエーションを作りたいです。

:有線USB接続
利点
・キーボード側がちゃんとHID準拠で作ってあれば、PCでもUSBホスト対応のスマートフォンでもゲーム機でも、USBのキーボードとマウスが使える機械なら、なんにでも使える。
・ケーブルを接続するだけですぐに使える。
・電池がいらない。
欠点
・有線であること。

:専用2.4GHz無線接続
利点
・無線なので当然ケーブルレス。
・有線のUSBと同じ扱いになるので、通常のUSBキーボード等が使える機器なら使用可能。
欠点
・専用のUSBドングル(USB送受信機)が必要。
・キーボード側に電池が必要。

:Bluetooth接続
利点
・無線なので当然ケーブルレス。
・本体がBluetoothを搭載していれば、Bluetooth USBドングル(USB送受信機)は必要ない。
欠点
・本体側がBluetoothに対応している必要がある。
・本体側のBluetoothが有効になるまで使用不可。
・キーボード側に電池が必要。

 

※ページの上の方で紹介した小型キーボードって、みーんな無線なんですよね。自分としては、有線USBの小型キーボードが欲しいのです。

 

以上、こんな外付け小型キーボードが欲しい、を書き殴ってみました。
本当はもういっそ自分で作ってしまいたいくらいなのですが、時間はあるものの、知識や環境やコネクション(人脈、お付き合い)やおかねが全く無くて、どうしようもなくて・・・
どこかの会社で作ってはもらえないでしょうかね。

追記:自分、個人で、試作くらいは作れないか、下調べ始めました。
 ↓
USBキーボードは自作できるのか下調べをしてみる

 

追記:画像を作ってみました。

Kb_00

こんな感じ。
画像を切り貼り。

Kb_01

バリエーション。USB有線は汎用性がとても高いと思うのです。
このページの上の方に羅列した小型キーボードってどれも無線なんですよね。USB有線なら、USBキーボード対応機器であれば何にでも繋げられるという、とても大きなメリットがあるのですよ。

Kb_02

こんな感じでオプションでスマートフォンと合体させたりとか。
両手で持っても、机に置いても使えるような感じで。

Kb_03

バッテリーもモジュール化したりとか。
迷走。

これらはキーボードを使用する時だけ取り付けるイメージ。

常に一体化させておくのであれば、機種決め打ちで専用にして、クラムシェルにしたり。

Kb_04

色々迷走しましたが、スマホとの合体はあくまで応用例。

基本は

・USB有線接続
・小型(横幅15cm以下)
・HP200LXと同等の構造で、
両手で持っても、机においても快適に打鍵が出来る。
・マウス機能装備
・キーの省略は出来るだけ無し


といったキーボードを希望します。

ほしい。

けれど、どこからも発売されそうにないので、いっそ自分で作ってみようかと考え始めています。

USBキーボードは自作できるのか下調べをしてみる

| | コメント (1) | トラックバック (1)

2014年6月24日 (火)

LXのキーボードのひみつ

HP200LXという機械を御存知でしょうか?
米ヒューレットパッカード社が開発し1994年に販売した小型の情報ツールです。

06032701 06032702

HP200LXの詳細が知りたい方はネットで検索してみてください。

私はHP200LX(以後LX)に惚れこんでいまして、購入から10数年以上ずっと使用していました。
(現在は液晶の故障で使用を休止しています)

このLXのキーボードは逸品なのです。
テンキーの付いたQWERTY配列のボタン型のキーで、キーとキーの間に間隔が開いたタイプなのですが、そのキーの形状やサイズ、その構造に伴うクリック感とキーストロークが絶妙なのです。
LXを両手で持って親指でポチポチとタイプしたり、またはLXを机などに置いて片手3本、両手で計6本の指で普通のキーボードのタッチタイプのように入力したりと、場所を選ばず、また比較的快適かつそこそこの速度で長文の入力が行えるスグレモノなのです。

※追記
キーボードでの日本語入力の様子を動画で撮影してみました。

本体基板無改造(倍速化改造はしていません)
液晶は経年劣化で黒く変色してしまったので偏光板を自分で交換
オカヤ・システムウェアのキットで日本語化済み
SDカード8MB使用中(PCカードタイプのSDカードアダプタ使用)
VzエディタとWX2で日本語入力
両手で持っての親指入力と、」机に置いての入力

 

そのHP200LXのキーボードについて、自分なりに調べてみました。

キー配列は基本的にテンキー付きのQWERTY配列、但し通常の上部数字キーの部分には内蔵ソフトのダイレクト起動キーが並んでいます。
(テンキー付きというより、通常は上に並んでいる数字キーを右側に集めた形です)

06042001

電源キーとカーソルキーがキーボード右上にあります。
ここは液晶を開いた時の重心位置に近く、本体を手で持った時に、頻繁に使うカーソルキーが操作しやすい位置です。
(タッチパネルやポインタは無いので、カーソルキーで選択項目の移動等を行います)

06042002

また、ENTERキーとMENUキーは、手で持った時の、ちょうど親指の移動範囲に来るため、操作性を向上させています。

06042003

ここから以下はHP100LXのキーボード部分です。
HP100LXは200LXの前の機種です。
メイン基板や内蔵ソフトウェア等は異なりますが、キーボード部分は色とキートップの印刷以外はHP200LXと同じだと思われます。

06033101 06033102

キーボード自体は、横約16cm、縦約8.5cm、

06033103

キーピッチは縦横ともに約10mm、
キートップの大きさは約7mmX4.7mmで、間隔の空いたボタン型。
キーとキーのあいだには、横約3mm、縦約5.5mmの隙間が空きます。
この隙間のおかげで、指がキーを押した時に、隣りのキーまで押してしまうのを防いでくれます。

06033108

キートップの高さはキーの最高部分で1.5mmで、
キーストロークは約0.5mmです。
奥側に沈みこむようにキーが押し込まれます。

06033109 06033110

押した時、ちょっと重めの、しかし明確なクリック感があります。

キーボードユニットの裏面にはメイン基板と接するキーマトリクスの端子が出ています。

06033104 06033105
06033106 06033107

では構造を見てみます。

キーボード上にはShiftやFnキーを押した時に入力される文字が書かれています。
ここは薄いプラスチックのシート状になっていて、接着剤で貼り付けられています。
これをめくると、キートップの成型品が現れます。

06033111 06033112

テンキーの部分だけ成形色が違うので部品が分かれています。

06033113

キートップの部品は、その裏面の多数のピンで、キーボードユニットに接合されています。
キートップとキーボード本体が、この多数のピンで強固に固定されているために、キーボード全体の剛性を上げる効果が生まれています。
このピン郡は、圧入されているだけなので、裏から全部のピンを少しずつ押して外していく事によって、キートップの部品をキーボード本体から外すことができます。

テンキーの部分だけキートップを外しました。

06033114 06033115
06033116

キートップの下にはメンブレンスイッチ?タクトスイッチ?があります。
(ドーム加工を施したシートを用いたクリック感のあるメンブレンスイッチ)

06033117 06033118

透明なプラスチックシート2枚と白い回路のシート1枚の合計3枚がキートップの下に敷かれています。

06033119

一番上の透明のプラスチックシートには、ドーム型の形状が加工されています。
上から押すと、一定の力でペコンとへこみます。

06033120

裏には導電材(カーボン?)が塗られています。

二枚目は穴の空いたシートで、一番上のシートと下の回路のシートを分けています。

06033121 06033122

一番下は導電材でキーボードマトリクスの回路が引かれたシートになっています。

06033123

これらはキートップの部品のピンで位置決めがされています。

06033124 06033125

基本的には携帯電話などのメンブレンのタクトスイッチと同じような仕組みです。
ただし、面白いことに、下の画像を見てもらうと分かりますが、ドームの頂点、接点の部分の位置がキーの中心から上にずれています。

06033126

この位置のズレとキートップの成型品の形状が、LXのキーボードの打ちやすさの秘密だと思われます。

テンキーのキートップの部品の画像です。

06033127 06033128
06033129 06033130

キートップは下側から上側に向けて傾斜が付けられています。
裏側にはキーボード本体と組み合う無数のピンが出ています。
裏側の画像を見ると分かるのですが、横から見ると、キートップの裏の、キースイッチを押す突起が、キートップの上側に寄っています。

06033131

キートップ自体はキートップの外側の部品と、細い帯2本でキートップの下側で繋がっていて、キートップを押すと、帯の部分がプラスチックの弾性でシナって、キートップが帯の根元を支点に、下に弧を描くように下がり、裏の突起がキースイッチを押します。

06033132

06033133 06033134

概略図を見てください。

060331zu

小さなキートップを指で押す時、手前から奥の方向に指は動きます。
キートップは下側が2本の帯で固定されているためにぐらつかずに、キーの下側を支点にして、押し込まれます。
この時、てこのように、キートップには、裏側の上の辺りに、下に向けて力が加わり、そこに配置されたキースイッチを押す形になっています。
この機構によって、適度なクリック感と力で、キースイッチは押されることになります。

これがLXのキーボードの打ちやすさの秘密だと、私は考えています。

この構造が偶然の産物なのか、それとも開発者が考え抜いて生まれた物なのか、私には知る術はありませんが、LXの全ての部分のこだわりを考えると、あえてこの構造にしたのだろうと考えます。

日本のPDAを開発している皆さん、これを越える親指うちキーボードを作ってみませんか?

最後に、キートップを繋ぐこの部分は、どこも折れやすいので、注意。 特にスペースバー。

06033135

 

追記:2015/10/25

・HP100LXのキーマトリクス
キーボードのスイッチの回路の配線に当たる、シートを調べてみました。

回路のパターンが導電塗料(カーボン?)で描かれたシートは、多層になっていて、表面の回路の下にさらに配線があるのが透けて見えます。
(画像クリックで拡大します)

Lx_key01

この上と下の配線は、画像の赤丸で囲った部分で結線されています。

Lx_key02

キーマトリクスの配置を調べてみました。
メイン基板と接する端子の左側を仮に1番としています。

Lx_key03_


| | コメント (0) | トラックバック (0)