「PIC AVR 工作室」サイトの日記的なブログです。
サイトに挙げなかった他愛ないことを日記的に書き残してます。
PIC AVR 工作室 ブログ



ふとやってみたいことがあって、Aliexで注文してた
ブツが届いた。



NES用の、いわゆる7ピンのジョイパッド。国内だと、
NEWファミコンとかAVファミコンとか言われているやつ
でも使われている、あの特徴的な形状の端子のやつ。



これね。7ピンの、2つの角が直角の台形形状の端子。
(D-SUB9ピンとはその辺がちょっと違う)

で、だいぶ前にちょっと調べてみたら、この端子の信号って、
ものすごい単純だったのと、そもそもまだこの手の互換品って、
MD用のD-SUB9ピン端子(なのかな?)のジョイパッドとかと
同様に、まだまだ新品がいくらでも入手可能っぽいので、
MD用とか、AVファミコン用のジョイパッドなんかを使って、
MSX・P6、88SR以降、68k、ウンズあたりでも使えるように、
信号の変換が比較的簡単に行えるんじゃないかなぁ?と。

Aliexで、MSX用のジョイパッドを検索してもヒットしない
のと、ATARIのジョイパッドを検索すると、素のATARI仕様の
ものになっちゃって、ボタンが片方使えなかったりとか、
もう片方のボタン押すと自爆ボタンとしてコンピュータ自体
を壊しかねない動作になっちゃうかもしれないので、やっぱ、
この手の信号が単純なジョイパッドを使って変換した方が
安全かなと。
あと、AVファミコン用とかって、最初から連射機能が搭載
されているものがあったりするので、その辺も便利なんだ
よねぇ。

ヤフオクとかで、時々思い出してはMSX用ジョイパッドを
検索してみたりするんだけど、やっぱ高いのよね。しかも、
いつまで入手できるのかわからんし。
(新品が製造されてないから)

というわけで、作戦としては2つあって、こういった単純な
信号の制御だけで扱えつつ、新品が潤沢に入手できるものを
使う方法か、もしくは、USBジョイパッド(ジョイスティック)
を使って、マイコンでUSB信号を読み取って、MSX用に変換
するっていう方法の、どちらかじゃないかなと。

当然、前者の方が楽ちんなんだけど、後者は、ファームを
旨い事書き換えることによって、ジョイパッドだけじゃなく、
MSX用パラレルマウスの信号生成にも使えたりするんじゃ
ないかなとか思っていたりもする…。

その辺はちょっと悩ましさもあるんだけど、まぁ、ちょっと
いじってみたかったんだよな。このAVファミコンの端子。


で、ジョイパッドだけだと実験に使うには根本的に足りない
ものが…。それはオス側の端子。



ってことで、とりあえず3つ入手しておいた。多分、これ
自体はかなり汎用的に使われているっぽい感じなので、
これのパーツデータを作ってやれば、基板を起こすのも
簡単にできるんじゃないかなと。

まぁ、気になるところもいくつかあるんだけど…



この、金属端子じゃない突起の部分。二股ピンみたいに
なってるプラのところ。
この位置って、規格化されているのかなぁ?っていうの
が1点。
もう1点は、挿したあとに抜け防止になってるくさび形状
のところまでの長さ。言い換えれば、基板に挿して抜け
防止にするわけだから、基板の厚みとあってないと
意味がないわけ。

基板の厚みは、基板発注するときに指定できるだろうけど、
そもそも、この端子の加工精度…大丈夫なんだろうか?
みたいな心配があったりする。(あと、寸法データがない)

下手にこのあたりの精度が合わないと、基板を発注しても
この二股ピンが挿さらなかったり、逆にガバガバになって
しまったりしかねない。

で、そもそもこういうパーツなんて、パーツデータが
世界中で作られて公開されてたりするんじゃないの?とか
思って検索。

残念ながら、オイラが愛用しているFritzing用のパーツデータ
は見つからなかった。
まぁ、ないものは作るの原則なのかな、と。Fritzingのパーツ
データは、ここんところしばらく作ってないけど、まぁ、
なんとかなるだろう。(寸法さえ判れば)



基板とかパーツデータとかを作るのはまたあとでじっくり
進めるとして、とりあえず直近でやらないといけないなぁ
と思っているのは、このジョイパッドがちゃんと動くのか
どうかの動作確認。

こいつを実際にマイコン使って制御するっていうのは、
当然ながら初めてなので、自分が理解している内容が
それなりに正しいのかどうかは気になっているところ。
(AVファミコンが手元にあればサクッと確認できるん
だけど、あれはだいぶ前にヤフオクで売ってしまったん
だよなぁ)


そもそもこの配線を流れる信号は、4021(シフトレジスタ)
の制御そのものなので、そんなに難しいものではないはず。

ラッチ信号(出力)、クロック信号(出力)を制御して
やれば、データ(入力)端子から順番に8個の入力内容を
読み取ることができるはず。


というわけで、この4021の制御周りの理解が正しいのか
どうかを検証したいなぁ、と。

すごい単純なしくみだから、とりあえずブレッドボード
使って、ラッチとクロックの信号を、配線のオンオフで
制御して、LEDの点灯/消灯で確認してやろうかとか
思ったりしたんだけど、そもそもブレッドボードでそう
いうことすると、信号がチャタリングしちゃって、
まともに動くはずないだろと。
(特にクロック信号がある場合は)

で、なんかいい方法無いの?って思っちゃったんだけど、
そもそも、そういうときのために、Arduinoのfirmataが
あるんじゃないの?ってところに至るまでに数分を要して
しまった。
(そもそも、そのためだけに何らかのプログラムを書こう
とかいう発想は、オイラの頭の中にはないらしい)

やっぱ、最近ちょっとマイコン周りをいじってないって
いうことを改めて実感してしまったよねぇ。いかんねぇ。


というわけで、ひとまず、firmataを使いながら、この
ジョイパッドの動作確認から始めようかな…という方針が
頭に浮かんできたところ。

とりあえず、MSX互換のジョイパッドを無限増産する
っていう方向性はめどがついた気がする。
けど、MSXマウス(パラレルマウス)の互換品を無限増産
するためには、やっぱUSBマウスの信号をハックするって
いうのが一番現実的だと思うんだよなぁ。

まぁ、ちょっとずつ進めよう。お遊びの一環だしな。


コメント ( 0 )