“SKU:RB-02S021A PS2游戏摇杆模块”的版本间的差异
来自ALSROBOT WiKi
(→使用方法) |
(→例子程序2) |
||
第56行: | 第56行: | ||
===例子程序2=== | ===例子程序2=== | ||
目的:使用PS2摇杆模块控制二自由度舵机云台 | 目的:使用PS2摇杆模块控制二自由度舵机云台 | ||
− | <pre style='color:blue'>#include <Servo.h> | + | <pre style='color:blue'> |
+ | #include <Servo.h> | ||
Servo myservo; | Servo myservo; | ||
Servo myservo1; | Servo myservo1; | ||
第80行: | 第81行: | ||
if(X<515) | if(X<515) | ||
{ | { | ||
− | int valx1 = map(X,0,515, | + | int valx1 = map(X,0,515,40,90); |
myservo.write(valx1); | myservo.write(valx1); | ||
} | } | ||
if(X>530) | if(X>530) | ||
{ | { | ||
− | int valx2 = map(X,530,1024,90, | + | int valx2 = map(X,530,1024,90,150); |
myservo.write(valx2); | myservo.write(valx2); | ||
} | } | ||
第99行: | 第100行: | ||
} | } | ||
} | } | ||
+ | |||
</pre> | </pre> | ||
2017年5月2日 (二) 10:21的版本
目录 |
产品概述
PS2双轴按键游戏摇杆模块采用SONY公司PS2游戏手柄上原装优质金属按键摇杆电位器,模块特设二路模拟输出和一路数字输出接口,输出值分别对应(X,Y)双轴偏移量,其类型为模拟量;按键表示用户是否在Z轴上按下,其类型为数字开关量。模块集成电源指示灯,可显示工作状态;坐标标识符清晰简明、准确定位;用其可以轻松控制物体(如二自由度舵机云台)在二维空间运动,因此可以通过控制器编程,传感器扩展板插接,完成具有创意性遥控互动作品。
规格参数
- 工作电压 :+5v
- 尺寸大小:50mm * 28mm * 31mm
- 固定孔尺寸:43mm*21mm
- 重量大小:133g
- 信号类型:模拟信号
- 接口类型:KF2510-5P
接口定义
- Y:Y轴方向信号引脚(模拟输出)
- X:X轴方向信号引脚(模拟输出)
- B:B轴方向信号引脚(数字输出)
- GND:电源地
- VCC:电源正极
使用方法
工作原理
PS2 摇杆具有2轴模拟输出(X 轴和 Y轴),1路按钮数字输出,配合 Arduino 传感器扩展板可以制作遥控器等互动作品,PS2 摇杆就像一个游戏控制台中的操纵杆,你可以控制输入这个操纵杆模块的 VRX、VRY 和按钮的值,以及在特定的值下实现某种功能,同时它也可以被视为一个按钮和电位器(可调电阻)的组合。数据类型的 VRX、VRY 为模拟信号,而按钮是数字输入信号,因此实际应用时。可以将 VRX 和 VRY 端口连接到 Arduino UNO 的模拟引脚,而按钮连接到数字引脚。
编程原理
PS2 摇杆由两个电位器和一个按钮开关组成,通过 Arduino 控制器可以对信号进行读取。
- 波动电位器时,阻值发生变化,从而改变输出电压,其输出的是模拟量;
- 按钮开关输出的是数字高、低电平。
硬件连接图
例子程序1
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); }
程序效果1
- 打开串口监视器之后,会输出当前检测到的模拟值。如下图所示:
例子程序2
目的:使用PS2摇杆模块控制二自由度舵机云台
#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); } }
视频演示
产品相关推荐
购买地址
周边产品推荐
继电器扩展板
大按钮
Arduino实验连接线 20P杜邦线