SKU:RB-02S021A PS2游戲搖桿模塊
目錄 |
產(chǎn)品概述
PS2雙軸按鍵游戲搖桿模塊采用SONY公司PS2游戲手柄上原裝優(yōu)質(zhì)金屬按鍵搖桿電位器,模塊特設(shè)二路模擬輸出和一路數(shù)字輸出接口,輸出值分別對(duì)應(yīng)(X,Y)雙軸偏移量,其類型為模擬量;按鍵表示用戶是否在Z軸上按下,其類型為數(shù)字開(kāi)關(guān)量。模塊集成電源指示燈,可顯示工作狀態(tài);坐標(biāo)標(biāo)識(shí)符清晰簡(jiǎn)明、準(zhǔn)確定位;用其可以輕松控制物體(如二自由度舵機(jī)云臺(tái))在二維空間運(yùn)動(dòng),因此可以通過(guò)控制器編程,傳感器擴(kuò)展板插接,完成具有創(chuàng)意性遙控互動(dòng)作品。
規(guī)格參數(shù)
- 工作電壓:+5v
- 尺寸大?。?0mm * 28mm * 31mm
- 固定孔尺寸:43mm*21mm
- 重量大?。?33g
- 信號(hào)類型:模擬信號(hào)
- 接口類型:KF2510-5P
7.接口定義
- Y:Y軸方向信號(hào)引腳(模擬輸出)
- X:X軸方向信號(hào)引腳(模擬輸出)
- B:B軸方向信號(hào)引腳(數(shù)字輸出)
- GND:電源地
- VCC:電源正極
工作原理
PS2 搖桿具有2軸模擬輸出(X 軸和 Y軸),1路按鈕數(shù)字輸出,配合 Arduino 傳感器擴(kuò)展板可以制作遙控器等互動(dòng)作品,PS2 搖桿就像一個(gè)游戲控制臺(tái)中的操縱桿,你可以控制輸入這個(gè)操縱桿模塊的 VRX、VRY 和按鈕的值,以及在特定的值下實(shí)現(xiàn)某種功能,同時(shí)它也可以被視為一個(gè)按鈕和電位器(可調(diào)電阻)的組合。數(shù)據(jù)類型的 VRX、VRY 為模擬信號(hào),而按鈕是數(shù)字輸入信號(hào),因此實(shí)際應(yīng)用時(shí)??梢詫?VRX 和 VRY 端口連接到 Arduino UNO 的模擬引腳,而按鈕連接到數(shù)字引腳。
編程原理
PS2 搖桿由兩個(gè)電位器和一個(gè)按鈕開(kāi)關(guān)組成,通過(guò) Arduino 控制器可以對(duì)信號(hào)進(jìn)行讀取。
- 波動(dòng)電位器時(shí),阻值發(fā)生變化,從而改變輸出電壓,其輸出的是模擬量;
- 按鈕開(kāi)關(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); }
- 云編程代碼
- 程序效果
- 打開(kāi)串口監(jiān)視器之后,會(huì)輸出當(dāng)前檢測(cè)到的模擬值。如下圖所示:
example2_arduino
- 主要硬件
- 二自由度云臺(tái) * 1套
- PS2 搖桿 * 1個(gè)
- Arduino UNO R3 + V5.0 傳感器擴(kuò)展扳 * 1套
- 7.4V 鋰電池 * 1個(gè)
- 硬件連接
接線說(shuō)明:
- 底部舵機(jī)連接數(shù)字口 10 號(hào)
- 頂部舵機(jī)連接數(shù)字口 9 號(hào)
- PS2 搖桿 X 軸連接 A0
- PS2 搖桿 Y 軸連接 A1
- PS2 搖桿 B 按鍵可以不進(jìn)行連接
- 舵機(jī)采用單獨(dú)供電方式
- 例子程序
#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)推薦
資料下載
網(wǎng)盤鏈接: https://pan.baidu.com/s/1344cwgp2zo_d4N4Ov-w4sg 提取碼:i2yh
購(gòu)買地址
周邊產(chǎn)品推薦
繼電器擴(kuò)展板
大按鈕
Arduino實(shí)驗(yàn)連接線 20P杜邦線