アマチュア設計におけるDendy Remote

画像



多くの場合、無線のアマチュアは、デバイスのリモートコントロールパネルを設計する問題に直面しています。 ボタンの数が多い場合、接続ケーブルのワイヤ数を減らすために、コンソールには押されたボタンのコマンド用のエンコーダーが装備され、デバイスにはデコーダーが装備されます。 この状況では、古いジョイスティックは、かつて人気のあったDendyゲーム機から助けられます。 ラジオのアマチュアのタスクは、ジョイスティックのデザインが良く、ボタンを押すための既製のエンコーダーを備えているため、非常に簡素化されています。



ジョイスティックの中身は何ですか?



Dendyジョイスティックで使用されるエンコーダーの模範的なスキームを図1に示します。 6 、記事の終わりに。 ジョイスティックとゲームコンソール間のインターフェイス、ジョイスティックスキームのバリエーション、およびデコーダスキームのバリエーションに関する情報は、Radioマガジンのページにあります。 [l]ジョイスティックの押されたボタンに関する情報は、被制御デバイスからのクロック信号「クロック」を使用してシーケンシャル形式で送信されます。 それと同期するために、ジョイスティックには入力「ラッチ」があり、ジョイスティックからデータを受信する各サイクルの開始時に、論理レベルの高い短いパルスが入力されます。



デコーダー装置とその操作



電気回路図が図に示されている提案されたデバイス 1は、ジョイスティック信号を、押されたボタンに対応する個別の論理レベルに変換するデコーダーです。

画像

ベースは74HC595N(DD3)チップで、情報のシリアル入力とシリアルおよびパラレル出力を備えた8ビットシフトレジスタです。 情報の並列出力は、3つの状態を持つ出力を備えたバッファレジスタを介して実行されます。 情報信号はSER入力(ピン14)に、書き込み信号はSCK入力(ピン11)に、出力信号(「ラッチ」)はRSK入力(ピン12)に送られます。 このレジスタは、押されたボタンに関する情報を連続して運ぶバイトを受信し、出力に並列形式でQ0〜Q7を出力します。 したがって、個々の出力の状態、つまりマイクロサーキットの出力レジスタは、ジョイスティックで割り当てられたボタンに対応します。 レジスタピンとジョイスティックボタンの対応を表に示します



画像



DD2チップには、「ラッチ」クロックドライバーが組み込まれています。これは、ジョイスティックのボタンの状態を固定し、データの最上位ビットをジョイスティックから「データ」出力に出力するために必要です。 これは、インパルスの正のフロントで発生します。 このパルスのネガティブエッジで、バイト読み取りデータサイクルが開始されます。 この瞬間は「ジョイスティックポーリングサイクル」と呼ばれます( 図2を参照)。 次のビットは、ジョイスティックの「クロック」入力で、クロックパルスのポジティブエッジが現れる「データ」出力に発行されます。 また、「ラッチ」クロックパルスがシフトレジスタの入力RSKに供給されます。これは、出力レジスタの受信バイトを「クリック」して、出力Q0〜Q7に並列に出力するために必要です。 受信したバイトの「ラッチング」は、パルスのポジティブエッジに沿って発生します。 この時点は、「74595レジスタの出力での情報更新サイクル」として指定されます( 図2を参照)。 各クロックが到着すると、レジスタの出力の情報が更新されます。

画像

DD1チップには、クロックジェネレーターが組み込まれています。 周波数は100キロヘルツです。 クロックパルスは、ジョイスティックのクロック入力と74NS595受信レジスタのSCK入力に供給されます。 ジョイスティックボタンの状態に関するデータは、上位ビット-D7、D6 ... D0から順に「データ」出力に出力されます。 これは、ジョイスティック入力「クロック」のクロックパルスの正のエッジで発生します。 「データ」出力から読み取られたビットは、SERレジスタ74595の入力に送られます。 受信したビットは、このジェネレータのパルスの立ち上がりエッジに沿ってレジスタに書き込まれます。



-おい! 「データ」の出力の情報ビットを更新する瞬間と、「データ」の出力の設定ビットを読み取る瞬間があります。

「はい...それは確かです。」 しかし、ジョイスティックは非常に「ブレーキがかかっている」ため、クロックパルスのポジティブエッジの到着後、120 nC後にビット更新が発生します。 ジョイスティックが考えている間、高速74NS595は20 nCの「データ」出力から以前の値を記録します。

-ええと、「クリビン!」 「ラッチ」パルスの間、出力レジスタ74595にゴミが書き込まれます-D7の2ビットが連続して!

-はい、認めます-ハック。 しかし、バイト全体の書き込みサイクルの終了後、余分なビットはレジスタからどこにも「抜け落ち」ず、受信した情報の精度に影響しません。


SPIインターフェース



そしてもう1つ...多くの人が、写真( 図2 )を見ると、SPI通信インターフェースのタイミングと類似していることがわかりました。 はいはいはい...いくつかの違いについては、これです! 信号名を変更する必要があります:「ラッチ」をCSまたはSSに、「クロック」信号をCSLKまたはCLKに、「データ」信号をMISO、SDOまたはSOに(必要に応じて)。 ジョイスティックは、MKの統合された周辺モジュールSPIで問い合わせることができます。 これを行うには、デバイスにバイトを送信します(FFなど)。



確かに、このバイトが誰かに役立つ場合は、必要な情報をロードできます。 たとえば、LED付きのレジスタの場合。 または、ダウンロードせずに、受信した情報をジョイスティックから他の人に転送します。 つまり、MOSIピンを使用できます


受信したバイトには、押されたボタンに関する情報が含まれます。 押されたボタンは、押されたユニットではなく、ゼロに等しいビットに対応します。 ジョイスティックでボタンが押されていない場合、FFバイトが受信されます。すべてのボタンを一度に保持できる場合、受信バイトには00が含まれます。SPIインターフェースは、マスターモードで動作するように設定する必要があります。同期モードをCPOL = 1、CPHA = 0(モード2)に設定します。 この状況では、「データ」出力(MKのMISO)からのデータは、ジョイスティックの「クロック」入力に適用されるCSLKクロック信号のネガティブエッジに基づいてマイクロコントローラーによって読み取られます。 また、ジョイスティックの「データ」出力およびマイクロコントローラのMISO入力での情報ビットの更新は、クロックパルスの立ち上がりエッジで発生します。 同様に、ジョイスティックはArduinoボードに接続できます。

画像



ターボAおよびターボB



初期のジョイスティックモデルには8個のボタンが含まれ、後の10個にはボタンが含まれました。 2つのボタン「Turbo A」と「Turbo B」が追加されました。 しかし、データ交換プロトコルでは、これは何の影響もありませんでした-同じままでした。 追加されたターボボタンは「A」および「B」ボタンと同等です。唯一の違いは、「ターボA」ボタンを押すと、「A」ボタンが1秒あたり12回半の速度でのみ押されることです。 これはTurbo BおよびBボタンにも当てはまります。 ターボクリックジェネレーターがジョイスティック自体に追加されました(赤で強調表示された図6を参照)。 ターボボタンを押すと、DD3レジスタの出力Q6およびQ7には、周期80 mS、デューティサイクル2のパルスがあります。



画像



小さいボタンだけでなく、さらに多くのボタンを持つジョイスティックがあります。 このようなジョイスティックで追加のボタンを押すことは、古いモデルで2つのボタンを一度に押すことと同じです。 コントロールLEDをデコーダーに接続する場合、「スーパージョイスティック」ボタンの操作を理解することは難しくありません。 (私の意見では、これらはSega Mega Driveのジョイスティックでした)



UPD: SNESについて。


記事へのコメントでは、次のように正しく指摘されています。



テキストでは、ターボクリックジェネレーターについて説明していますが、そのようなジェネレーターがない場合は、ジョイスティックのある画像が表示されます。 「このようなジョイスティックで追加のボタンを押すことは、古いモデルで2つのボタンを同時に押すことと同等です」と書かれていますが、これもSNESにとって不公平です。



SNESジョイスティックにはターボ発電機のクリック音はありません。 つまり、このようなジョイスティックを接続すると、デコーダーの出力にパルスは表示されません。 それだけでなく、SNESは急進的ではなく、NESとは異なります。 違いは、16ビットであることです。 情報ビットのみ-D15-D4、ビットD3-D0は常に1です。 このようなジョイスティックを提案されたデコーダーに接続すると、ボタンに関する情報が表示されます:「B」、「Y」、「選択」、「開始」、「上」、「下」、「左」および「右」。 ボタンに関する情報:「A」、「X」、「L」、「R」は失われます。 SNESコネクタを図に示します 3右。

画像

UPD: Turboから得られるメリット



おそらく、ターボAボタンとターボBボタンを押したときにデコーダーの出力のパルスについて読んだ誰かが動揺しました。



-ええと...ターボボタンは使用できません、残念です、2つのボタンが失われます。

-いや! それらはまったく失われません。



デバイスを制御する場合、パラメータを増加または減少する方向にインクリメントする必要があると想像してみましょう。 同時に値の設定の高い離散性が必要な場合は、プラスボタンとマイナスボタンを絞るのにうんざりすることがあります。それをボタンAとBにします。 これは、ターボボタンが便利な場所です。 ジョイスティックをマイクロコントローラと組み合わせて使用​​すると、高度なインターフェイス機能を2つのボタンにプッシュする必要がなくなるため、余分なプログラムコードを書く必要がなくなります。 すでに4つに拡張されており、作業ロジックが装備されています。



インターフェースSNES、NES



提案されたデコーダーと一緒に、SNES、NES、または「Virtual Boy」インターフェースを備えたジョイスティックを使用できます。 また、「デンディ」、 「セガ」などの多数のクローンもあります。 違いは、設計とジョイスティックをゲームコンソールに接続するコネクタにあります。 私が知っているコネクタのピン割り当ては図に示されています。

画像

デバイスをデコーダーに接続する



デコーダー出力の信号は、TTLレベルに対応しています。 リモコンで押されたボタンは-高レベル、低-押されていません。 デコーダーに接続されたデバイスがTTLレベルに従って一致する場合、調整のための追加の手段は必要ありません。



インバーター出力に逆信号状態が必要な場合(ボタンを押す-ゼロ、ボタンを押さない-1)、DD1.4要素( 図1 )を回路から除外する必要があります。

デコーダに接続されたデバイスをロジックレベルで制御できない場合、または電源にガルバニック絶縁が必要な場合は、リレーまたはフォトカプラを使用する必要があります 4 a、b

画像

何かの制御に静的なタイプの制御信号が必要な場合(ボタンが押され、カップルがオンになり、再度押され、オフにされる)、デバイスにトリガーを追加する必要があります。 1つのK155TM2チップ( 図4 cを参照)を使用して、「開始」ボタンと「選択」ボタンをスイッチに変えることができます。 おそらく、連絡先の跳ね返りの効果がここに表示されます(抑制がジョイスティック自体に実装されていない場合)。 この場合、クロックジェネレータの周波数を、たとえば100ヘルツに下げる必要があります。 この場合、ジョイスティックは1秒間に10回尋問され、バウンスの問題は解決されます。



デバイス設計



ほとんどの部品は、厚さ1〜1.5 mmの、片面にホイルでコーティングされたファイバーグラス製のプリント基板に取り付けられています。 5 。 わかりやすくするため、LEDはセットアップ段階でのみ取り付けることができます。

画像

デバイスは、抵抗器C2-23、MLT、フィルムコンデンサーC4-K10-17、セラミックコンデンサーC3-KM-6、酸化物コンデンサーC1、C2-K50-35、またはこれらのタイプの部品の輸入アナログを使用します。 XR1コネクタは、故障したDVDプレーヤーから借りていました。 元のコネクタがない場合、デバイスには、設計および全体の寸法に適した他のデバイスを装備する必要があります。 12 V電源と50 mAの電流からデバイスに給電します。

UPD:突然誰かが便利になった場合、NATO分類によると、DD2-SN7493、DD1-SN7400、これは155番目のシリーズになります。 またはSN74LSxxは555シリーズになりますが、一般的にあなたが見つけたものすべてを入れて、主なことは番号93、00、74があることです。

画像

参照:


Dendy Joystick-リモートコントロール

S.クレショフ、クルガン市

2002年ラジオ雑誌4号



ゲームデコーダージョイスティックデコーダー

S.リュミク、チェルニーヒウ、ウクライナ

2004年ラジオ雑誌第6号



ダンディジョイスティックの修理

S.ゴルベフオムスク

1996年ラジオ雑誌第6号



PS。

誰かがそれを必要とするなら-ここにボードがあります。 (アーカイブは写真に隠れています)



画像



映画ファンのために、ある種のビデオレポートを見つけました-彼らは言う、軟膏のスキーム...






All Articles