このセッションでは、ジョイスティックをRaspberryPiとインターフェースします。ジョイスティックは、主にさまざまなゲームをプレイするために使用されます。USBタイプのジョイスティックは簡単に接続できますが、今日はRaspberry Pi GPIOピンを介してジョイスティックを接続する予定ですが、これは多くの場合に役立ちます。
ラズベリーパイとジョイスティックモジュール:
ジョイスティックにはさまざまな形状とサイズがあります。典型的なジョイスティックモジュールを次の図に示します。このジョイスティックモジュールは通常、アナログ出力を提供し、このモジュールによって提供される出力電圧は、移動する方向に応じて変化し続けます。そして、いくつかのマイクロコントローラーを使用してこれらの電圧変化を解釈することにより、移動の方向を取得できます。以前は、ジョイスティックでAVRマイクロコントローラーを使用していました。
ご覧のとおり、このジョイスティックモジュールには2つの軸があります。X軸とY軸です。ジョイスティックの各軸は、ポテンショメータまたはポットに取り付けられています。これらのポットの中間点は、RxとRyとして追い出されます。したがって、RxとRyはこれらのポットへの可変ポイントです。ジョイスティックがスタンバイ状態のとき、RxとRyは分圧器として機能します。
ジョイスティックを横軸に沿って動かすと、Rxピンの電圧が変化します。同様に、縦軸に沿って動かすと、Ryピンの電圧が変化します。したがって、2つのADC出力に4方向のジョイスティックがあります。スティックを動かすと、各ピンの電圧が方向に応じてハイまたはローになります。
ご存知のように、Raspberry Piには内部ADC(アナログ-デジタルコンバーター)メカニズムがありません。したがって、このモジュールをPiに直接接続することはできません。オペアンプベースのコンパレータを使用して、電圧出力をチェックします。これらのオペアンプはRaspberryPiに信号を提供し、Piは信号に応じてLEDを切り替えます。ここでは、4つのLEDを使用して、ジョイスティックの4方向への動きを示しています。最後にデモビデオを確認してください。
17個のGPIOピンのそれぞれは+ 3.3Vを超える電圧を取ることができないため、オペアンプの出力は3.3Vを超えることはできません。したがって、オペアンプLM324を選択しました。このICには、3Vで動作できるクワッドオペアンプがあります。このICを使用すると、Raspberry piGPIOピンの出力に適した出力が得られます。Raspberry PiのGPIOピンについて詳しくは、こちらをご覧ください。また、RaspberryPiチュートリアルシリーズといくつかの優れたIoTプロジェクトも確認してください。
必要なコンポーネント:
ここでは 、Raspbian JessieOSでRaspberryPi2モデルBを使用しています。すべての基本的なハードウェアとソフトウェアの要件については前に説明しましたが、必要なものを除いて、RaspberryPiの概要とRaspberryPIのLEDの点滅で調べることができます。
- 1000µFコンデンサ
- ジョイスティックモジュール
- LM324オペアンプIC
- 1KΩ抵抗(12個)
- LED(4個)
- 2.2KΩ抵抗(4個)
回路図:
LM324 IC内には、ジョイスティックの4方向を検出するための4つのOP-AMPコンパレータがあります。以下は、データシートからのLM324ICの図です。
ジョイスティックモジュールとRaspberryPiのインターフェースで行われる接続は、以下の回路図に示されています。U1:A、U1:B、U1:C、U1:Dは、LM324内の4つのコンパレータを示します。回路図の各コンパレータと対応するピン番号を示しました。LM324ICの。
作業説明:
Y軸に沿ったジョイスティックの動きを検出するためにOP-AMP1またはU1:AとOP-AMP2またはU1:Bがあり、X軸に沿ったジョイスティックの動きを検出するためにOP-AMP3またはU1があります。 :CおよびOP-AMP4またはU1:D。
OP-AMP1は、Y軸に沿ったジョイスティックの下側の動きを検出します。
コンパレータU1:Aのマイナス端子は2.3V(1Kと2.2Kの分圧回路を使用)で、プラス端子はRyに接続されています。ジョイスティックをY軸に沿って下に動かすと、Ry電圧が上昇します。この電圧が2.3Vを超えると、OP-AMPは出力ピンに+ 3.3V出力を提供します。OP-AMPのこのHIGHロジック出力は、Raspberry Piによって検出され、PiはLEDを切り替えることで応答します。
OP-AMP2は、Y軸に沿ったジョイスティックの上下の動きを検出します。
コンパレータU1:Bのマイナス端子には1.0V(2.2Kと1Kの分圧回路を使用)が供給され、プラス端子はRyに接続されています。ジョイスティックをY軸に沿って上に動かすと、Ry電圧が低下します。この電圧が1.0Vを下回ると、OP-AMP出力はLowになります。OP-AMPのこのLOWロジック出力は、Raspberry Piによって検出され、PiはLEDを切り替えることで応答します。
OP-AMP3は、X軸に沿ったジョイスティックの左側の動きを検出します。
コンパレータU1:Cのマイナス端子には2.3V(1Kと2.2Kの分圧回路を使用)があり、プラス端子はRxに接続されています。ジョイスティックをx軸に沿って左に動かすと、Rx電圧が上昇します。この電圧が2.3Vを超えると、OP-AMPは出力ピンに+ 3.3V出力を提供します。OP-AMPのこのHIGHロジック出力は、Raspberry Piによって検出され、PiはLEDを切り替えることで応答します。
OP-AMP4は、X軸に沿ったジョイスティックの右側の動きを検出します。
コンパレータU1:4のマイナス端子には1.0V(2.2Kと1Kの分圧回路を使用)が供給され、プラス端子はRxに接続されています。ジョイスティックをx軸に沿って右に動かすと、Rx電圧が低下します。この電圧が1.0Vを下回ると、OP-AMP出力はLowになります。OP-AMPのこのLOWロジック出力は、Raspberry Piによって検出され、PiはLEDを切り替えることで応答します。
このようにして、ジョイスティックの4つの方向を決定する4つのロジックすべてが、RaspberryPiに接続されます。Raspberry Piは、これらのコンパレータの出力を入力として受け取り、それに応じてLEDを切り替えて応答します。以下は、Pythonコードを使用して端末にジョイスティックの方向を印刷したため、RaspberryPiの端末に表示された結果です。
Pythonのコードとビデオを以下に示します。コードは簡単で、コードに記載されているコメントで理解できます。