DirectPad Pro

世の中には凄いものを作る人がいるもので、PlayStationやNINTENDO64のコントローラーをパソコンで使えるようにするドライバがあるそうです。今回は友人にそれを作ってくれと頼まれて初めてその存在を知りました。USB経由でPSのパッドを繋ぐアダプタなら既に存在する事は知っていたのですが、これはパラレルポート経由で接続し、なおかつメモリーカードリーダー(WinPSMやメモリカードキャプターさくら等)を使ってメモリーカードも読み書きできるもののようです。
ところが参照してくれと教えられたURLでは電圧降下にダイオードを使っていたりして電気的に宜しくないので、これはちゃんとしたものを作るかなというのが今回の次第です。

使用部品

部品名数量備考
抵抗 10KΩ14個茶黒橙金/プルアップ,ダウン用
抵抗 330Ω2個橙橙茶金/LEDの制限抵抗
抵抗 100Ω2個茶黒茶金/LM317の電圧調整用
積層セラミックコンデンサ 0.1μF7個ノイズ除去用
電解コンデンサ 470μF2個ノイズ除去用
電解コンデンサ 10μF3個ノイズ除去用
トランジスタ 2SC18152個アクセスランプ用
発光ダイオード2個アクセスランプ用
IC 74HC071個レベル変換用
IC LM3172個電源レギュレーター
IC 78051個5V電源レギュレーター
可変抵抗 1KΩ2個LM317の電圧調整用
ユニバーサル基板1枚10cm四方くらい

PlayStationコントローラーコネクタ1個マルチタップを分解しても可
5インチベイ用マウンタ1個プラスチック製
電源分岐ケーブル1個PC内部から分岐させて取る
25ピン以上のコネクタオス/メス1組使えるならなんでも可
プリンタケーブル1.5m程度片方を切断して使用する
ネジ類適量5インチベイ用マウンタに止める
部品的には特別なものはありません。唯一問題となるのはプレステのコントローラーコネクタ部ですが、手に入らない場合はマルチタップを購入してばらす方法もあります。それを除けば大体\2500程度で全ての部品が揃うかと思います。

抵抗、コンデンサは普通のもので構いません。積層セラミックコンデンサは青いパッケージに「104」と書かれているかと思います。電解コンデンサは当然耐圧が電源電圧より高くなるように(12V以上)選びましょう。トランジスタは最もポピュラーな2SC1815を使いますが、増幅をする訳では無いので2SC型ならピン配置さえ気を付ければ恐らくなんでも大丈夫でしょう。
発光ダイオードは好みの色・形のものを選びましょう。よっぽど変なものを選ばない限り、通常LEDは2Vの電圧と20mAの電流を流せば光ってくれます。

ICの74HC07については後述しますが、HC型を推奨します。電源レギュレーターのLM317と7805については、それぞれ電圧可変型と5Vを出力するものなら特にこの型番に拘る必要はありません。ユニバーサル基板はそれらが載るサイズのものを選びましょう。10cm四方あれば大丈夫だと思います。

プレステのコントローラーコネクタは壊れたプレステ等から取ってきて使いましょう。もし無いのであればマルチタップを購入して分解してもいいようです。ただ、そうすると5インチベイマウンタに載せるのが困難になるかもしれませんが…

5インチベイ用マウンタもなんでも構いません。普通は\400程度で売っているでしょう。電源分岐ケーブルはPC内部の電源コネクタから電源を取るためのものです。わざわざ「分岐」ケーブルとしたのは、このDPPのせいで電源コネクタが一つ潰れてしまうのが嫌だったからです。

25ピン以上のコネクタ、というのはプリンタケーブルと基板を直付けにしてしまうとメンテナンス等に問題があると思ったからです。私はフラットケーブル用のコネクタを使用しましたが、バラのケーブルを強引に自力で圧着するのは大変な労力なのであまりお勧めしません。適当な扱いやすいやつを見つけて使いましょう。

プリンタケーブルに関してはコネクタとケーブルを買ってきて自作してももちろん構いませんが、面倒だしケーブルそのものを購入してもそんなに高くないので素直に買いましょう。それで片方を切断してコネクタを付けて使います。ネジ、というのは5インチベイ用マウンタとユニバーサル基板、及びプレステコントローラーコネクタを止めるためのものです。どのサイズ、とは一概に言えないので必要に応じて近所のホームセンター等から買ってきましょう。

ちなみに電源スイッチはありません。5インチベイ用マウンタに取り付けるスペースが取れそうになかったので付けませんでした。元々あまり電流を喰うわけでもありませんし、別に支障がないかなと思いましたので。気になる方は大元の+12VをON/OFFするようなスイッチを取り付けて下さい。


電圧変換の仕組み

今回の部品の中で強いて注意する必要があるものをあげるなら、CMOS-ICの74HC07です。これは論理回路的にはただのバッファですが、厳密には「オープンコレクタタイプ」というもので普通のロジックICの使い方とは違います。このオープンコレクタを利用して3.6V-5Vの論理レベル変換を行っているのが今回の目玉です。

よくメモリーカードリーダー及び今回のDPP等のWebページを見ますと電源や信号ラインにダイオードを直列に噛ませているものを見かけます。これは、プリンタポート側のHレベルは5Vですがプレステパッド側のHレベルは3.6Vであり、論理レベルが違うためです。このまま直接繋いでしまうと、厳密に言えばプリンタポート側から見ると電圧不足に、パッド側から見ると電圧過多ということになりあまり安心できる状況ではありません。普通のメモリーカードにアクセスするだけなら問題は少ない(※)のですが、ポケットステーションでは厳密に3.6Vでないと駄目なようです。そこで、ダイオードの電圧降下(シリコンダイオードの場合、大体1個で0.6V程度)を使って3.6Vに近づけてやろうと言うことです。

そこで74HC07ですが、オープンコレクタタイプのICというのは必ず出力を希望電圧でプルアップして使わねばならないという特殊なタイプです。詳細な解説は専門書に譲りますが、要はこれで都合良く電圧変換が行えると言うことです。但し、今回はHCタイプと限定して使います。
74LS等の一般のTTLですと電源電圧はきっかり5V、Hレベルは2V〜3V以上となっています。ところがCMOSタイプのHC型ICでは電源電圧は2V〜6Vの範囲、Hレベルはほぼその電源電圧の半分以上からとなっています。ちなみに入力電圧の上限は電源電圧+1.5Vとなっています。
このため、HC型を5V電源で使用した場合にHレベルは約2.5V以上という事になります。これならプレイステーション側の3.6VというHレベルでもHIGHとして認識してくれます。一般のLSタイプでも今回の場合には大丈夫でしょうが、元々TTLレベル(5V)の信号を扱うICなのに3.6VをHレベルとして入力するというのが個人的に嫌だったので意図的にHC型を使うことにしました。

制作

どのような順序から作成しても構いませんが、まず電源レギュレーター部から作るといいでしょう。3つが大体同じような回路なので作りやすい筈です。次に74HC07のレベル変換部を作り、最後に余ったスペースでアクセスランプ用の反転回路を作りましょう。プリンタケーブルを接続するコネクタは必要に応じて適当な場所に取り付けます。
プレステコントローラーコネクタに関しては、テスターで測るとわかると思いますが裏の基板を外す必要はありません。丁度理想的に1Pと2Pの端子が6番を除いて並列になっているので、SEL端子だけ1Pと2P別配線で繋いでやって下さい。

 
左図:完成した基板を上面から
右図:完成した基板を裏面から

 
左図:完成した基板全体図
右図:5インチベイ用マウンタに取り付けた完成図


上図:実際にPCに取り付けて動作させている様子。アクセスランプが光っている



回路図

回路図はあまりにもサイズが大きくなったので2枚の画像ファイルとして分割しましたが、実際には同じ基板上に組んでしまって下さい。回路図1上にある黒塗り三角型は信号の流れを表した参考の記号であり、実際の部品ではありませんのでご注意下さい。パラレルポートの18番から25番までは全てGNDです。


ソフトウェア

実際にはこのハードを作っただけではどうにもならず、制御するソフトウェアが必要となります。DPPを本来の目的通りプレステコントローラーを接続して使う場合には「DirectPad Pro」というデバイスドライバが必要となります。以下のページよりダウンロードして下さい。
http://www.ziplabel.com/dpadpro/
設定としましては、マルチタップ使用モードのチェックを入れないと2Pコントローラーが使えません。


メモリーカードの読み書きをする場合には「メモリーカードキャプターさくら」が便利です。Nissie氏のWebページよりダウンロードすることが出来ます。
http://ww1.tiki.ne.jp/~nissie/
これも設定をきちんとすれば1Pコネクタ、2Pコネクタ両方で使えるようになります。ここまで作れる人であれば、恐らく説明はいらないでしょう。


今回のこれは元々他の人に頼まれて制作したものですが、完成してテストしてみるうちにかなりいい感じでちょっと自分で欲しくなってしまいました。作るのは面倒ですが、それに見合うだけの便利さは得られるので興味のある方は是非どうぞ。

Copyright(C)1999 JSRC/All right reserved.