月別アーカイブ: 2014年10月

PS/2 to USB 変換アダプタ 試作

週末を使ってPS/2からUSBへの変換器を作ってみました。

まあ、あえて自作しなくとも1000円以下の安い値段で普通に買えるものです。これまでの成果を寄せ集めて製作出来たのであまり手間はかかっていません。

img

いつもの通り、ブレッドボード上での試作です。後ろに見えてるキーボードにピンと来た方もいらっしゃるかもしれませんが、IBMの5576-003です。はい、これを使いたくてわざわざ自作したようなものです。

キーボードマニアの間では割と有名なキーボードにIBMの5576シリーズ4兄弟と言うのがありまして、一番末っ子の「5576-A01」は普通のPS/2接続のAT106キーボードなのですが、長男(?)の「5576 keyboard1」から3男の「5576-003」まではインタフェースこそPS/2ですが、キースキャンコードがAT106キーボードとは僅かに異なっているというシロモノです。また、前述の写真でも分かるように左ALTがありません。

Windows2000までは専用のキーボードドライバが用意されていたんですがそれも今は無く、普通に繋ぐと「いくつかのキーが刻印どおりの入力にならない日本語106キーボード」となります。大半のキースキャンコードはAT106キーボードと同じなので全く使えないという訳ではありません。

本USB変換アダプタでは繋がっているキーボードを識別し、 「5576 keyboard1」「5576-002」「5576-003」のいずれかである場合にキースキャンコードの変換を行うようにしています。これ以外のキーボードが接続された場合はなんの変哲もないPS/2→USB変換アダプタとして動きます。多分。

なお自分用に2~3個欲しいのでプリント基板を起す予定。余りを配布するかどうかは未定。PS/2は相性問題がシビアそうで配布はちょっと怖い気も。。。

 

Arduino Leonardo pro micro

eBayで購入していた商品が中国から届きました。10/6注文で10/23到着です。

img

Leonardo pro microボード、なんと送料込みで1枚750円です。無論現在の円安レートで。正直安すぎます。品質が低いと言う感じもありません。ちなみに搭載されているATMEGA32U4を単体で購入すると、概ね600円~900円位します。何かおかしい・・・

以前の日記でStrawberry Linuxさんの「ダ・ビンチ32U」に触れましたが、あちらも同じATMEGA32U4を積んでいて、送料別で1300円です(ただしあちらはマイコンの全てのピンが利用可能になっている等、単純な比較は出来ません)。 用途によっては格安pro microはアリだと思います。

ボードには最初からLeonardoのbootloaderが書かれていますので、arduinoのGUIからサクッとプログラムを流し込めます。あるいは最近増えてきた気がする、AVR-GCCで開発してavrdudeで流し込むと言うのも手です。

なおボード上3.3V生成用のレギュレータが載っており、ソルダジャンパJ1で3.3V駆動か5V駆動を選択出来ます(ショートで5V駆動)。また、非常に惜しい事にPE2/~HWBはボード上でGNDに落とされています。IOピンは5本ほど引き出されていません。

とりあえず先日作った IBM 1394099 用のUSB変換アダプタをこれに置き換えてみましたが、全く問題なく動きました。

 

TSSOPハンダ付け

0.65mmピッチのSerial EEPROMをハンダ付け

この年齢で裸眼で0.8mmピッチより細い足のハンダ付けとかもう無理。一応見た目はそれっぽくハンダ付け出来たけど、もうやりたくない

img

FM TOWNSキーボードのUSB変換(続2

大型の台風接近で折角の祝日に外出もままならないので、FM TOWNS用USBキーボードアダプタのキーマップカスタマイズ対応を行いました。

実際手を動かしてコードを書くまでは「USB HIDプログラミングって何か難しそう」という印象だったのですが、ネットで公開されているサンプルを参考に試行錯誤するうちにあっさり対応出来ました。なんだ、HIDクラス使うのって結構簡単じゃん(笑

見た目がダサいですがWIndows側のアプリです(汗。さすがにキー1つずつ変換定義を入力するのは面倒と思いましたので、全キーの変換定義を記したファイルを一気に流し込めるようにしています。キー変換定義はPIC内蔵のEEPROM に記録しています。

今回、Windows側アプリはVB.NETで作成しました。こうした小物を作成するならVB.NET(や、今回は使ってないけどC#)は優秀だと感じました。VisualStudioのExpress版を無償で公開しているMicrosoftに感謝です。

 

FM TOWNSキーボードのUSB変換(続

ついかっとなって買ってしまった。少し後悔している

FMT-KB205、いわゆる親指シフトキーボードです。もともとアダプタはJISキーボードと親指シフトキーボードを自動で判別してキー配置を個別に対応していたんですが、実機確認のために買ってしまいました。 案の定、キーコード変換のバグが見つかったのでやはり実記動作確認は大切です。

FM TOWNS用のキーボードはALTキーが存在するもの(FMT-KB107、FMT-KB207など)と、ALTキーが存在しないものがあります。今回購入したFMT-KB205はALTキーが存在しないキーボードです。今時のWindowsで使うのにALTキーが無いのはさすがに辛すぎます。JISキーボードは最下段のキーに余裕があるので振り替え可能なんですが、今回のFMT-KB205は最下段に最低限のキーしかないのでALTに振り返られそうなキーがありません。

また、左側の「英字、カタカナ/英小文字」キーや、親指シフトキーボードを最も特徴付けている「親指左、親指右」をUSBキーボードのどのキーにマップするかも悩ましいところです。この辺り、多分使う人によって好みが大いに分かれそうです。

やっぱりキーマップのカスタマイズ機能は必須かなぁ。JISキーボードだとあんまり必要性感じないんですが、親指シフトキーボードだとカスタマイズ機能が無いと辛そう

 

追記
結局キーマップのカスタマイズ機能もつけました

 

IBM 1394099

IBM の 3471/3472 というターミナルマシン専用のキーボードを購入しました。こんなやつです

でかい、でかすぎる

24個のファンクションキー、左端に5×2列のキー、カーソルキーが5キー構成というのはまさに日本IBMの5576 keyboard1を彷彿とさせるキー配置です。そういえば5576 keyboard1もAS/400用の端末に繋がってたりしました。まあ、どちらかが先行するモデルを模した結果、同じ配列になったんだと思いますが。

オークションで中古が開始価格50円で出品されていたので試しに2つ入札してみたら、そのまま50円で落札出来てしまいました・・・。送料安かったからいいんですけど。中古という事でしたが、綺麗な専用の箱&発泡スチロールに収まっていて、キーボード自体にも殆ど汚れが無く新古品か、限りなく使用頻度の低い中古という感じです。

こいつはかのModel Mキーボードと同じ、バックリングスプリング採用のキーボードです。真っ直ぐに立ったバネに対して上から加重をかけていくと、ある時点でバネがヘニャっと折れ曲がるという仕組みをキーに利用しています。日本IBMから出ていたキーボード、5576-A01もバックリングスプリングを用いていますがこいつやModelMとはキータッチが大いに異なります。ちなみにコイツは Made in UKです。

 

専用ターミナルとの通信自体はPS/2と同じ電気特性、プロトコルのようですが、いかんせんコネクタがRJ-45です。また、PS/2キーボードとしては珍しい、codeset3のキーコードを返すらしいです。そこで以下のような変換アダプタを用意しました。

キーボードコネクタは秋葉原の秋月電子で「LANコネクタDIP化キット」を購入、マイコンはストロベリーリナックスさんの「ダ・ヴィンチ32U」というATMEGA32U4マイコンボードです。とりあえず実験なのでブレッドボードで組みましたが、LANコネクタとマイコンボードを4本(5V, GND, CLK, DATA)繋ぐだけで変換アダプタとして動きました。

秋月のLANコネクタDIP化キットを使った場合の配線ですが、コネクタを背面から見て左端を1pin、右端を8pinと数えた場合に次のようになります

1,2pin 未使用
3pin 5V
4pin DATA
5pin CLK
6pin GND
7,8pin 未使用

正直、今となってはバックリングスプリングのキーボードはちょっとキータッチが重すぎますね。あと、タイプ音が大きいです。バネがカシャカシャ鳴る音が結構響きます。昔はメインキーボードとして5576-A01を使っていましたが、最近はずっとALPS軸のX68000キーボードばかり使っているので1394099のキーは私にはちょっと重い感じです。あと大きすぎ

今でも人気があり、オークション等ではそれなりの価格で取引されている Model M と同じキータッチのキーボードが超破格値で入手出来た事で満足です

 

ちなみにカーソルキーの上部にある機能キーの一つですが

一見、棒人間のような謎の記号キー。本来のターミナルにおいてどのような役割のキーだったのか、私、気になります。マルチステーションのキーボードと見比べる限り、コピー/連続コピーでしょうか?

retr0bright

Apple Extended Keyboard を購入したんですが、いい感じに黄ばんでいたので紫外線+過酸化水素による黄ばみ取りを行いました。

使ったのは定番のワイドハイターEXとこちらのブラックライトです。少佐率いる科学技術世界一の部隊やSPW財団がバックにいませんのでカーズを倒せるほどのパワーはありません。

img

上が処理前。下が処理後

img

ブラックライトを30時間くらい照射しています。ワイドハイターはキムワイプに染み込ませてキーボードに密着させて、さらに乾燥を防ぐ為にラップで包みました(それでも途中で何度か液を継ぎ足しています)。画像で見ると結構白くなってますが、実際にはまだうっすら黄色が残ってます。

とはいえここまで白く出来れば十分です。

携帯電話

とあるコミックより。こういう携帯電話出してくれませんかね。ほとんど着信しかなく、かける場合もほぼ固定の相手だけ、と言う場合はシンプルでいいと思うんですよねえ。タッチパネルじゃなくて独立したスイッチが欲しいんですよ。

img1

img2

後者はIpodを模しただけでしょうけど。そういえば、iPhone6の発表の裏でついにiPod Classicが消滅して、ホイールクリック搭載のデバイスは完全に姿を消すようですね。デザイン的にホイールクリックが好きなだけに残念です。

ちなみに、バッテリが膨張・爆発する(かもしれない)初代iPod nano 4GBを所有してますが、交換プログラムに出すと初代nanoではなくて最新の7G nano (16GB) に交換されてしまうとのことでまだ交換出来ていません。7G nanoの方があらゆる面でスペック上なんですけどね。初代nanoのデザインはcoolで最高です。

 

FM TOWNSキーボードのUSB変換

出来ました

と言いたい所なんですが、VUSBに繋ぐ0.22μFのコンデンサがストック切れてた・・・ とりあえず0.1μFを付けておいたけど、推奨は0.22~0.47μFなので後日付けなおす予定。

キーマップのカスタマイズ機能かー。折角のUSB接続なんだし、定義ファイル(キーマップをカスタマイズしたEEPROMのHEXファイルとか)をUSBから流し込めるようにした方がいいのかな。HID BootloaderとWin側の更新プログラムの両方修正が必要になるけど。

EEPROMだけピンポイントに更新出来るようにして、キーマップ情報をEEPROMに流し込むほうが楽かも。

 

追記
親指シフトキーボードで動作確認しました

 

基板到着

elecrowに発注していた基板が届きました

IMG

10枚発注で11枚入っていました。9/19にWebからオンライン発注後、到着は10/1でした(実際には10/1は不在だったので受け取ったのは10/2ですが)。

ちょっと解せないのは、9/27の午前中に “Shipped” のメールを受け取った後、DHL側のステータスでは9/29の深夜に “picked” なんですよねぇ。丸2日ロスした気分なんですが、日曜日を挟んだせいですかね。

IMG

長穴も思い描いていた通りに加工されています。しかし横幅はあと2mmは縮められたかも。

IMG

取り急ぎ部品を乗せてみました。HR12コネクタもばっちり嵌ります。