SKU:RB-02S021A PS2游戏摇杆模块

来自ALSROBOT WiKi
2017年5月2日 (二) 16:27Arduino77讨论 | 贡献的版本

跳转至: 导航搜索
Ps2 yao gan 01.png

目录

产品概述

PS2双轴按键游戏摇杆模块采用SONY公司PS2游戏手柄上原装优质金属按键摇杆电位器,模块特设二路模拟输出和一路数字输出接口,输出值分别对应(X,Y)双轴偏移量,其类型为模拟量;按键表示用户是否在Z轴上按下,其类型为数字开关量。模块集成电源指示灯,可显示工作状态;坐标标识符清晰简明、准确定位;用其可以轻松控制物体(如二自由度舵机云台)在二维空间运动,因此可以通过控制器编程,传感器扩展板插接,完成具有创意性遥控互动作品。

规格参数

  1. 工作电压 :+5v
  2. 尺寸大小:50mm * 28mm * 31mm
  3. 固定孔尺寸:43mm*21mm
  4. 重量大小:133g
  5. 信号类型:模拟信号
  6. 接口类型:KF2510-5P

接口定义

  • Y:Y轴方向信号引脚(模拟输出)
  • X:X轴方向信号引脚(模拟输出)
  • B:B轴方向信号引脚(数字输出)
  • GND:电源地
  • VCC:电源正极
02S021A01.jpg

使用方法

工作原理

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

Yun0009.png

程序效果1

打开串口监视器之后,会输出当前检测到的模拟值。如下图所示:
接线图

应用例程

目的:使用PS2摇杆模块控制二自由度舵机云台
硬件设备:

  • 二自由度云台 * 1套
  • PS2 摇杆 * 1个
  • Starduino UNO R3 + V5.0 传感器扩展扳 * 1套
  • 7.4V 锂电池 * 1个

硬件连接图:

02S021A100.png

硬件连接说明:

  • 底部舵机连接数字口 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);
  }
}
  
  

视频演示

Yao gan 01.png
Yao gan 02.png


产品相关推荐

Erweima.png

例子程序下载

下载链接:http://pan.baidu.com/s/1o7VKtjs 密码:a2p6

购买地址

PS2游戏摇杆

周边产品推荐

继电器扩展板
大按钮
Arduino实验连接线 20P杜邦线

相关问题解答

相关学习资料

PS2游戏摇杆功能演示
奥松机器人技术论坛