SKU:RB-02S021A PS2游戲搖桿模塊
來自ALSROBOT WiKi
目錄 |
產(chǎn)品概述
PS2雙軸按鍵游戲搖桿模塊采用SONY公司PS2游戲手柄上原裝優(yōu)質(zhì)金屬按鍵搖桿電位器,模塊特設(shè)二路模擬輸出和一路數(shù)字輸出接口,輸出值分別對應(yīng)(X,Y)雙軸偏移量,其類型為模擬量;按鍵表示用戶是否在Z軸上按下,其類型為數(shù)字開關(guān)量。模塊集成電源指示燈,可顯示工作狀態(tài);坐標標識符清晰簡明、準確定位;用其可以輕松控制物體(如二自由度舵機云臺)在二維空間運動,因此可以通過控制器編程,傳感器擴展板插接,完成具有創(chuàng)意性遙控互動作品。
規(guī)格參數(shù)
- 工作電壓 :+5v
- 尺寸大?。?0mm * 28mm * 31mm
- 固定孔尺寸:43mm*21mm
- 重量大?。?33g
- 信號類型:模擬信號
- 接口類型:KF2510-5P
7.接口定義
- Y:Y軸方向信號引腳(模擬輸出)
- X:X軸方向信號引腳(模擬輸出)
- B:B軸方向信號引腳(數(shù)字輸出)
- GND:電源地
- VCC:電源正極
工作原理
PS2 搖桿具有2軸模擬輸出(X 軸和 Y軸),1路按鈕數(shù)字輸出,配合 Arduino 傳感器擴展板可以制作遙控器等互動作品,PS2 搖桿就像一個游戲控制臺中的操縱桿,你可以控制輸入這個操縱桿模塊的 VRX、VRY 和按鈕的值,以及在特定的值下實現(xiàn)某種功能,同時它也可以被視為一個按鈕和電位器(可調(diào)電阻)的組合。數(shù)據(jù)類型的 VRX、VRY 為模擬信號,而按鈕是數(shù)字輸入信號,因此實際應(yīng)用時??梢詫?VRX 和 VRY 端口連接到 Arduino UNO 的模擬引腳,而按鈕連接到數(shù)字引腳。
編程原理
PS2 搖桿由兩個電位器和一個按鈕開關(guān)組成,通過 Arduino 控制器可以對信號進行讀取。
- 波動電位器時,阻值發(fā)生變化,從而改變輸出電壓,其輸出的是模擬量;
- 按鈕開關(guān)輸出的是數(shù)字高、低電平。
使用方法
example1_arduino
- 主要硬件
- Arduino UNO 控制器
- PS2 游戲搖桿模塊
- 單頭防插反 3P 傳感器連接線
- 單頭防插反 2P 傳感器連接線
- USB 數(shù)據(jù)線
- 硬件連接
- 例子程序
int Xaxis = A0; int Yaxis = A1; int Zsw = A2; int value = 0; void setup() { Serial.begin(9600); } void loop() { value = analogRead(Xaxis);//讀取 X 軸模擬端口0 Serial.print("X:"); Serial.println(value,DEC); value = analogRead(Yaxis); Serial.print(" | Y:");//讀取 Y 軸模擬端口1 Serial.println(value,DEC); value = analogRead(Zsw);//讀取 Z 軸模擬端口2 Serial.print(" | Z:"); Serial.println(value,DEC); delay(100); }
- 云編程代碼
- 程序效果
- 打開串口監(jiān)視器之后,會輸出當前檢測到的模擬值。如下圖所示:
example2_arduino
- 主要硬件
- 二自由度云臺 * 1套
- PS2 搖桿 * 1個
- Arduino UNO R3 + V5.0 傳感器擴展扳 * 1套
- 7.4V 鋰電池 * 1個
- 硬件連接
接線說明:
- 底部舵機連接數(shù)字口 10 號
- 頂部舵機連接數(shù)字口 9 號
- PS2 搖桿 X 軸連接 A0
- PS2 搖桿 Y 軸連接 A1
- PS2 搖桿 B 按鍵可以不進行連接
- 舵機采用單獨供電方式
- 例子程序
#include <Servo.h> Servo myservo; Servo myservo1; int potpin = A0; int potpin1= A1; void setup() { myservo.attach(9); myservo1.attach(10); } void loop() { int X = analogRead(A0); int Y = analogRead(A1); if(X<530 && X>515 && Y>505 && Y<525) { myservo.write(90); myservo1.write(90); } if(X<515) { int valx1 = map(X,0,515,40,90); myservo.write(valx1); } if(X>530) { int valx2 = map(X,530,1024,90,150); myservo.write(valx2); } if(Y<505) { int valy1 = map(Y,0,505,0,90); myservo1.write(valy1); } if(Y>525) { int valy2 = map(Y,505,1024,90,180); myservo1.write(valy2); } }
視頻演示
產(chǎn)品相關(guān)推薦
例下載
下載鏈接:http://pan.baidu.com/s/1o7VKtjs 密碼:a2p6
購買地址
周邊產(chǎn)品推薦
繼電器擴展板
大按鈕
Arduino實驗連接線 20P杜邦線