にがMSX

〜赤外線ワイヤレスコントローラの製作〜


MSX・レトロPC/FC用 赤外線コントローラシステム

猫の手リモコン

画像は試作機です

 久々のMSXネタですが、今回は当方で開発した赤外線ゲームコントローラシステム猫の手リモコンをご紹介します。

猫の手リモコンがあれば、レトロPCやゲーム機のコントローラをお手軽に無線化することができます。受信機猫の手1号(MSX用)/猫の手4号(FC用)にお手持ちの家電用赤外線リモコンの信号を登録して操作できるほか、専用送信機猫の手2号(外付け型)、猫の手3号(内蔵型)を使えばアクションゲームをワイヤレスでプレイできます。

MSX用猫の手1号受信機はM.A.D.社から発売中。ファミコン用の猫の手4号受信機、SFC/PSノーマルコントローラを送信機にする猫の手3号b/c改造キット家電のKENちゃんさんからリリース。このページでは猫の手3号a送信機の回路図、ファームウエアを公開します。腕に覚えのある方はお好みのコントローラを改造して使ってみてください。

※受信機や製品版のファームウエアは非公開です。


開発経緯

 2016年8月、リモコン制御アンプの製作を契機に、MSXのジョイスティック信号をリモコン操作するための装置としてスタートしました。引き続きゲーム用送信機の開発に着手。初期には通信距離は数10センチ程度でしたが、通信フォーマット、及びハードウエアの改良により5mの距離での安定通信を実現。連射機能の実装などファームウエアのアップデートの末、M.A.D.社により製品化され、2016年11月に受信機猫の手1号の販売が開始されました。送信機、FC用受信機も順次発売予定となっています。

試作機を撮影した際に写りこんだ「猫の手」が名前の由来になっています。コネクタがツメを出した猫の手に見えなくもありません。この頃はまだ市販のリモコンによる操作しか対応しておらず、「猫の手を借りる程度」でしか使えなかったというのもあります。

猫の手リモコンシステム

 猫の手リモコンは独自の赤外線信号フォーマットにより、8方向+4ボタンまでの操作を60fps相当、1フレーム未満の遅延で送受信することが可能です。1号〜4号に互換性があり、ペアリング操作不要でいずれの受信機・コントローラの組み合わせでも使うことができます。

同一空間内で使用できるのは1ペアのみですが、複数のレトロPC/FCやコントローラをお持ちの方は、それぞれに猫の手を装着しておけばコネクタを差し替えることなくお好みのコントローラで操作できるようになります。

家電リモコンによる制御

 猫の手リモコン受信機に家電用赤外線リモコンのコードを登録して使うこともできます。リモコン信号は、NECフォーマット、家電製品協会フォーマット、SONYフォーマットに対応していますが、一部使えないものがあります。後述する手順でコード登録した上でご使用になれます。

家電リモコンでは方向キーとトリガーボタンの同時押しはできませんが、音源プレイヤーの曲選択等の操作やコマンド選択式のアドベンチャーゲーム程度であれば利用可能と思います。受信機毎に異なるコードを学習させることで個別に制御できますが、同時制御はできません

切り替え操作は不要

 一度登録したリモコンコードは猫の手受信機EEPROMに書き込まれますので、電源を切っても保持されます。猫の手リモコンでは各送信機登録済みリモコンのいずれも切り替えを意識することなく使うことができますが、同時使用はできません

猫の手受信機

画像は試作機です

システムの要となる受信機です。

画像上段(製品版初回ロット)・中段(試作品)が猫の手1号です。MSX仕様のジョイスティックポートに挿して使います。8方向+2ボタンまでの操作に対応し、秒間8連射/16連射機能、ABトリガのリバース機能を内蔵。コードを登録したリモコンや専用送信機からのコマンドを受信することで設定できます。

画像下段が赤白ファミコン用猫の手4号の試作品です。SELECT,STARTボタンを含めて、8方向+4ボタンまでの操作に対応しています。1号同様に連射、ABリバース機能内蔵。

 猫の手1号/4号設定コマンドの送信はコントローラから下記操作によって行います。

後述する家電リモコンのコードを登録することで、リモコン操作で設定を切り替えることもできます。

操作

効果

備考
SELECT+START+A トリガA連射設定 連射OFF、8連射、16連射を循環
SELECT+START+B トリガB連射設定 連射OFF、8連射、16連射を循環
SELECT+START+右 A/Bリバース設定 押すたびにA/Bが入れ替わる

猫の手1号/4号リモコンコードの登録は下記操作によって行います。お手持ちの家電用リモコンで操作したい場合は設定してください。登録は何度でもやり直すことができます。

なお、猫の手専用送信機で使う場合は登録不要です。コード登録はしてもしなくても猫の手専用送信機での操作は常に可能です。

操作

応答
ジャンパーピンを「1-2ショート」に差し替えて電源投入
1秒以上待つ
ジャンパーピンを「2-3ショート」に戻す LED点滅後消灯
トリガAにしたいボタンを押す LED点灯
トリガBにしたいボタンを押す LED点滅後点灯
上、右上、右…左上と時計回りに8方向押す LED点滅後点灯
SELECTにしたいボタンを押す LED点滅後点灯
START(RUN)にしたいボタンを押す LED点滅後点灯
ABリバース設定にしたいボタンを押す LED点滅後点灯
10 トリガA連射設定にしたいボタンを押す LED点滅後点灯
11 トリガB連射設定にしたいボタンを押す LED消灯

 手順4でリモコンのボタンを押してもLEDの応答が無い場合は非対応フォーマットのリモコンです。

コード登録時にLEDが点滅している間は次のコードを送信せず、点滅が終わるまでお待ちください。このときのLEDの点滅回数は以後登録が必要なボタンの数を反映しています。

なお、連射機能、ABリバース機能は猫の手専用送信機によるトリガA/B操作時のみ有効です。設定状況に関わらず、登録リモコン操作でのトリガA/Bは入れ替わりませんし連射にもなりません。

猫の手1号の場合、手順7〜8で登録するSELECT方向キーの上下同時押しRUN方向キーの左右同時押しの扱いになります(FM-TOWNS仕様)。

紹介動画

 赤外線通信は指向性が強くて応答性能が悪いんじゃないかというイメージを持たれる方が多いと思いますが、実は意外と使えます。こちらの動画の通り、5〜6mくらい離れていても届きますし、コントローラをこねくり回しても途切れずに応答します。さすがに受信機の前に人が立ったりすると反応は悪くなりますが、部屋で一人でプレイする分にはあまり困らないと思います。

ちなみに猫の手リモコンではチェックサムで通信エラーをチェックしていて、データ化けがあれば応答しません。受信機のLEDが反応しているということは方向キー+トリガの情報を正しく受信できていることを示しています。

猫の手1号Jr.

 紹介動画の猫の手1号Jr.National JR-100用に作ったジョイスティックインターフェイスに組み込みました。猫の手1号のファームウエアを8方向+1ボタン用にデチューンしてしています。出力をオープンドレイン仕様にしているのでジョイスティックを接続しても競合せずに使うことができます。

猫の手1号同様に適当な家電リモコンのコードを登録して操作することもできますし、トリガーボタンの連射設定もできます。

12F629

出力信号は方向4本+トリガ1本=5本で済むのでPICマイコンは8本足の12F629としました。

動画

 実際にJR-100実機でSTAR FIREをロードしてプレイするところまでを動画にしてみました。JR-100のCPUクロックは0.895MHz、PICは4.00MHz動作ですから、本体より猫の手1号Jr.の方が高速に動作していることになるかと思います。

今時ワイヤレスなコントローラは珍しくありませんが、JR-100で使うとちょっとしたオーバーテクノロジー感覚が味わえます。


クラシックミニFCへの応用

 2016年に発売されたクラシックミニファミコン猫の手受信機を組み込んでみました。コントローラのデータはカスタムチップで暗号化されてI2Cで通信しているようですが、内部のボタンはパラレルにICとGNDを繋いでいるだけです。都合の良いことに、各ボタンの信号は1箇所ずつテストパターンが露出していました。

猫の手受信機を組み込むには、ボタン操作との競合を避けるためにPICの出力をオープンドレインにしてコントローラ基板のテストパターンに接続すればOKです。PICは16F630クラシックミニFC専用ファームを書き込んで実装しました。左上の隙間にはA/BボタンのインジケータLEDを組み込んでいます。

スペースの都合で赤外線受光モジュールは本体側に取り付けることにしましたが、受光信号を伝送するためにケーブルの芯線を1本増やす必要があり、適当なUSBケーブルに置き換えました。

電源・リセット制御

 クラシックミニFCはリセットボタンを押下することでゲームの途中経過をセーブしたり別のゲームを選択することができますが、これを遠隔操作できないと何かと不便です。そこで本体側にもPICを組み込んでコントローラの操作でリセットボタンを押せるようにしました。ついでに電源のON/OFFも遠隔操作できるようにしています。

メインボードの3.3V系は電源投入時しか生成されないようなので、レギュレータを造設して本体側のPICや受光モジュールには常時電力を供給しています。受光モジュールはダミーの拡張端子の蓋の内側に仕込んでいます。

完成

 クラシックミニFCは赤白ファミコンの3/5スケールモデルということもあり、オリジナルの意匠を尊重してできるだけ見た目を変えない改造方針としました。

受光モジュールを仕込んだ拡張端子の蓋は内側をルーターで薄く削って赤外線が透過できるようにしました。A/BボタンインジケータLEDもコントローラのカバー内側を削っています。どこにも穴を開けていないので一見して改造されていることは判らないと思います。

ちなみにスイッチ上の注意書きはテプラProで作成したものを貼りつけています。

動画

 実際に動いているところを動画にしてみました。ワイヤレスでシューティングゲームを自動連射で遊ぶことができますし、電源の投入やリセットボタンの押下もコントローラから手を離さずにできるので快適です。

なお、猫の手リモコンシリーズはM.A.D.社に製品化をお願いしているので、受信機のファームウエアは非公開の方針です。今のところ猫の手1号Jr.クラシックミニFC改造キットの製品化予定はありませんが、要望が多ければMADさんにお願いして販売を検討して頂いても良いかも知れません。


猫の手3号a送信機 回路図

ファームウエア(nekote3a.HEX)はこちら

 猫の手リモコンをお好みのコントローラで使いたい方のために猫の手3号a送信機の回路図とファームウエアを公開します。3号aは各ボタンの信号をパラレルに接続する仕様なので汎用性は高いと思います。市販のコントローラを改造したり、自作のジョイスティックに組み込んでも良いでしょう。

製作される方はここからダウンロードしたnekote3a.HEXを適当なPICライターで16F630に書き込んでください。このPICは2Vから5.5Vの範囲で動作しますので電源は乾電池やエネループ(Ni-MHバッテリ)2本で十分です。最近は自作用途で使えるリチウムイオン電池パックも流通しているようですが、発火の危険性やメンテナンス性を考慮するとお勧めしません。乾電池で動作するデバイスであれば30年後でも普通に使えるでしょう。なお、コイン型電池の類は電流が足りないので使えません。

猫の手3号aの特徴としては、操作が無い時には即座にPICがスリープ状態になり、待機電流が極めて少ないことです。16F630のデータシート通りの1nAで計算すると、スタンダードな単4エネループ(750mAh)で8万年以上スリープ状態を維持できることになりますが、実際には電池かユーザーの寿命の方が先に訪れますから、待機電流は無視して構わないでしょう。とはいえ、液漏れによる損傷を避けるために長期間使わない場合は電池を抜いておいたほうが無難です。

製作上の注意点としては、COMMONをGNDから確実に切り離すことです。猫の手3号aではスリープ時にCOMMONをプルアップして入力端子にしているので、ここをGNDに接続してしまうとプルアップ抵抗で無駄に電力が消費されてしまう上に、スリープから復帰きなくなります。市販のコントローラはCOMMONがGNDに接続されていることが多いので注意してください。

赤外線LEDは100mAまで流せる高出力品を使用してください。低出力品を使うと応答性能が悪くなります。この回路図通り作ると発光時にLEDには約300mA流れますが、Duty比1/3のパルス駆動なので問題ないと考えています。トランジスタはコレクタ電流を600mAまで流せる2SC2120を選択しました。2SC1815は150mA程度しか流せないので代用できません

なお、猫の手送信機には連射機能を追加実装しないでください。電池の消耗が早くなるばかりでなく、猫の手受信機が正しく赤外線信号を受信できなくなる恐れがあります。連射が必要な場合は、前述の猫の手受信機に内蔵の連射機能をご使用ください。


2017.8.28追記

 これまで公開していたこちらの猫の手3号a送信機のファームウエアに、稀にプチフリーズのような状態になるバグがあることが判明しました。発生条件はスリープへ移行する非常に僅かな時間に入力状態が変化することで、対策として1分間の無操作を確認してからスリープする仕様としました。上記リンクのファームウエアは対策済みのものです。動作チェックをしてくださったMikasen.さんに感謝します。


猫の手3号aの製作例

 紹介動画で登場した猫の手3号aの改造前の状態がこちら。2004年にゲームセンターのプライズ品として作られたファミコンコントローラ型のTVリモコン2です。「2」となっているのは以前にも同じものがプライズ品として流通していたからで、違いは「デコレーションシール」が付いているかいないかくらいだと思われます。

TVリモコン

 内蔵マイコンのメモリに国内メーカーのテレビリモコンのコードが入っていて、初期設定でメーカーを登録して使います。チャンネルとボリウムを混同しやすいので使い易くはありません。

単4電池2本で動作し、赤外線LED実装済み、かつ全てのボタンが有効ですので、猫の手送信機に改造するのに都合が良いです。

電池BOX

オリジナルの赤白ファミコンの1コンと形状互換性があり、ファミコン本体のコントローラホルダーに入れることもできます。裏面は梨地ではなくツルツルですので傷が目立ちます。

単4電池ボックスがはじめから組み込まれているので、スッキリしています。

オリジナルとの比較

 画像左がオリジナル赤白ファミコンの1コンです。接点のシリコンゴムの部品が一部異なります。TVリモコンの方は電池BOXのスペースのため、基板に余裕がありません。

ベアチップ実装
 TVリモコンのマイコンはベアチップ実装です。綺麗に剥がすのは難しい上に、信号を取り出すのも面倒です。改造難度は結構高いかも知れません。

赤外線LEDドライバ

 片面基板で部品面はこのようになっています。画像右側にパスコンや赤外線LEDのドライブ回路、マイコン用のセラロック等が実装されています。

この基板では赤外線LEDドライバにPNPトランジスタが使われていていました。公開ファームで作る場合はNPNに変更して繋ぎ直す必要があります。

左側の赤色LEDは赤外線信号と同期して光るようになっていましたが、電力が無駄になるので改造の際に無効化しました。

改造後

 ほぼ回路図通り実装した状態です。スペースが限られているため、PICは足を広げて両面テープで貼り付け、空中配線しています。

十字キーやABボタンを押下すると基板にストレスがかかりますが、背面カバーにそれを受けるための支えがありません。TVリモコンならそれでも構わないのでしょうけど、ゲームコントローラとして使うには心許ないです。そこで基板の裏面にスライスした木の丸棒を貼り付けて補強しました。

拡大

 PIC周辺ですが、抵抗が多いので結構ゴチャゴチャしています。開発の過程で配線のやり直しやファームの書き換えをしましたので仕上がりは綺麗ではありません。

配線はなるべくジュンフロン線を使用していますが、必要に応じてポリウレタン線を併用しています。

パターンカットと配線

 改造後のパターン面です。十字キーの中心にはストローク調整のために0.5mm厚のプラ板を貼り付けています。ベアチップを剥がすのは面倒なのでパターンカットで殺しています。

不要な回路は完全に切り離さないとスリープ時に電流がリークする恐れがありますので、回路図にない部品は全て除去し、元のICに繋がっているパターンは全てカットしておいたほうが良いでしょう。

シリコンラバーに注意

 各ボタン信号の取り出しポイントですが、接点のシリコンラバーのストレスを受けない部位にするべきです。実際にあてがって検討しますが、ご覧のようにかなり制約されます。

細部

個々のパターンカット部位については解説しませんが、この基板では変則的な回路になっていたためあちこちパターンカットしています。

信号取り出しポイントも狭いのでポリウレタン線で繋ぎました。

ベアチップ周りです。この2本のワイヤーはシリコンラバーの端が被ってしまいますが、他に適切な取り出しポイントが見つかりませんでした。

面倒でもベアチップを剥がした方が良かったかも知れません。


ELECOM製SFC型PADの改造

 SFCやPSの純正PADの改造はMAD社から発売の猫の手3号b/c改造キットで可能となりますが、改造用コントローラの中古品は徐々に手に入りにくくなっているようです。SFCタイプのUSB-PADならELECOMやBUFFALOの製品が比較的安価に流通しています。これらを猫の手3号aで改造できないか、takedaさんに検証をお願いしました。

改造レポートを頂戴しましたので、以下に掲載します(takedaさんから頂いたコメントを緑字で表示)。

分解と不要パーツの除去


 まずは分解します。
 予想通りのベアチップ。


 今回はベアチップも剥が
しましたが、結構大変なの
で周囲をぐるっとパターン
カットしてもOKです。

基板の加工例

 パターンカット2か所(黄色)ジャンパー2か所(青色)、穴あけ10か所(赤色)です。パターンカットは上下左右のボタンを独立させるためのもので、ジャンパーはコモンを全てつなげるためのものです。穴あけするパターンには裏側からワイヤーを差し込んで半田付けするので、0.5mm程度の細いピンバイスで開けておきます。
 基板パターンをLEDの固定と配線の一部に利用しています

裏蓋の加工

まずは電池ボックスを取り付けます。ピンバイスは本当に便利ですね、惚れてしまいます。基板を抑える部分に、ボタンへの配線を通すための窪みを作ります。(黄色部分)


 赤外線LEDがはまるように、コード用の穴を1ミリ程度広げます。
(赤色部分)

回路作成と配線

 ボタン操作に干渉しないよう、盛り上がらないように半田づけします。(半田づけしてから、出っ張りをヤスリで削ってもいいと思います。)


 ボタン裏は、裏蓋に作った窪みにあわせて配線します。


 回路部分についても、パッド本体に干渉しないよう、確認しながら組み立てます。

  LEDのリードの形を作るのに少し苦労した位で、コツコツやって終了です。 方向ボタンからの配線は、斜めに出したほうがスムースだと思います。 配線を間違えないように、裏側に何をつなぐかを書き込んであります。 他の6つのボタンを自分の使いやすいようにつなげて有効利用するといいと思います。

完成

 パーツや道具など必要なものが全て揃っていれば、ベアチップを剥がさない場合でゆっくりやって1日かからない位でしょうか。
 バッファローパッドが手に入るなら、安くて加工も単純なのでお勧めですね。
 以上、作ってみました報告でした。色々とありがとうございました。

BUFFALO版

  バッファローPADの基板写真です。
 こちらは単純な構造で、コモンが全てつながっており、ボタンの一方は全て独立でベアチップにつながっています。 なので、ベアチップ以外のパーツを除去し、ベアチップ周辺のパターンをカットすればあとは素直に配線するだけで出来上がると思います。


 現在、バッファローパッド用入れ替え版猫の手3号a基板をKiCADで作っているのですが、特殊な形のパッドあるいはパターンがうまく作れず、色々試しているところです。
 実際に発注するかはわかりませんが、自分の勉強を兼ねてやってみます。


以上、takedaさんからの改造レポートでした。SC-3000互換機用猫の手1号(改)+ELECOM版猫の手3号a改造PADの組み合わせで快適にゲームをプレイできたそうで、赤外線通信とは思わせない自由度の高さに驚いておられました。ご協力に感謝いたします。


猫の手シリーズの送信機

猫の手3号b

画像はM.A.D.社の試作機です

3号b キーアサイン

操作

出力信号

上下左右

上下左右

A

A

B

B

X

B

Y

A

SELECT

SELECT

START

START

L

B

R

A (Wake up)

 こちらが純正SFCコントローラに対応する猫の手3号b。元のコネクタを引っこ抜いてそこに基板を増設し、2本のワイヤーを配線するだけの簡単加工で改造できます。乾電池2本で動作し、電池BOXはカバー背面に貼り付ければOK。穴あけもピンバイスで4箇所開けるだけです。

3分間操作が無ければ自動的にスリープ状態になり、Wake Upボタンで動作再開します。Rボタンの基板に繋がっている青い2本のワイヤーはWake Up信号用の配線です。

SFCコントローラ固有のY・Rボタン=トリガAとして、 X・Lボタン=トリガBとして機能します。SELECT/STARTキーはファミコン用です。FM-TOWNSのSELECT/RUNキーには非対応です。

猫の手3号c

画像はM.A.D.社の試作機です

3号c キーアサイン

操作

出力信号

上下左右

上下左右

A

×

B

A

B

SELECT

SELECT

START

START

L1

B

R1

A

L2

SELECT

R2

START (Wake up)

PSノーマルコントローラに対応する猫の手3号c。こちらもコネクタを引っこ抜いてそこに基板を増設します。一部対応していない基板があります。

Ni-MH電池3本で動作し、無操作3分タイマーでスリープします。Wake Up用の配線は、R2ボタンのワイヤーを1本引っこ抜いてダイオードを挟み、そこにワイヤーを接続するだけです。

PSコントローラ固有のキーは、○・□・R1=トリガA、 △・×・L1=トリガB、 L2=SELECT、 R2=STARTとして機能します。SELECT/STARTキーはファミコン用です。FM-TOWNSのSELECT/RUNキーには非対応です。

猫の手2号

画像は試作機です。

MD モード

操作

出力信号

上下左右

上下左右

A

A

B

B

C

SELECT

X (6B)

B

Y (6B)

A

Z (6B)

SELECT

MODE (6B)

SELECT

START

START

不使用

(Wake up)

MSXモード

操作

出力信号

上下左右

上下左右

A

A

B

B

SELECT

START (Wake up)

 試作品ですが、外付けタイプの猫の手2号送信機です。MSX仕様のジョイスティック、メガドライブ純正3B/6B PADに対応しており、これらを起動時に自動的に識別します。タクトスイッチ(青・赤)を実装しており、MSXジョイスティック接続時でもファミコン用猫の手4号にSELECT/START信号を送信できます。FM-TOWNS専用PADを接続することでTOWNS仕様のSELECT/RUN信号を送信できます。

各モードでのキーアサインはこの表の通りです。猫の手受信機への設定コマンドの送信は、SELECT+STARTに割り当てられたキーとの組み合わせで行います。

猫の手3号シリーズと同様に無操作3分タイマーでオートパワーオフし、赤いタクトスイッチ押下でWake Upします。

 猫の手シリーズでお手軽にレトロPCコントローラの無線化をしたい方はM.A.D.社(2018.2現在、猫の手1号のみ発売)または家電のKENちゃんさんでお求め下さい。

  一応お約束ですが、この記事を見て改造などを行い故障やその他問題が発生しても責任は負えません。各自の責任において情報を広く集めて行うことをおすすめします。


ご意見、ご感想、ご質問はにがBBSまで!

Top pageへ戻る

copyright (C) 2017 Niga