“SKU:RB-02S021A PS2游戏摇杆模块”的版本间的差异
来自ALSROBOT WiKi
(→例子程序2) |
(→例子程序2) |
||
第55行: | 第55行: | ||
===例子程序2=== | ===例子程序2=== | ||
− | 目的:使用PS2摇杆模块控制二自由度舵机云台 | + | 目的:使用PS2摇杆模块控制二自由度舵机云台<br/> |
+ | 硬件连接图:<br/> | ||
+ | [[文件:02S021A100.png|800px|缩略图|居中]] | ||
+ | 硬件连接说明:<br/> | ||
+ | * 底部舵机连接数字口 10 号 | ||
+ | * 顶部舵机连接数字口 9 号 | ||
+ | * PS2 摇杆 X 轴连接 A0 | ||
+ | * PS2 摇杆 Y 轴连接 A1 | ||
+ | * PS2 摇杆 B 按键可以不进行连接 | ||
+ | * 舵机采用单独供电方式 | ||
+ | |||
<pre style='color:blue'> | <pre style='color:blue'> | ||
#include <Servo.h> | #include <Servo.h> |
2017年5月2日 (二) 10:25的版本
目录 |
产品概述
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摇杆模块控制二自由度舵机云台
硬件连接图:
硬件连接说明:
- 底部舵机连接数字口 10 号
- 顶部舵机连接数字口 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); } }
视频演示
产品相关推荐
购买地址
周边产品推荐
继电器扩展板
大按钮
Arduino实验连接线 20P杜邦线