实验14 PS2操纵杆实验
【实验介绍】
操纵杆是一种输入设备,由一个可在基座上旋转并向其控制的设备报告及角度和方向的操作杆组成,操纵杆通常用于控制视频游戏和机器人,这里使用操纵杆ps2。
【实验组件】
● Arduino Uno主板* 1
● USB数据线* 1
● PS2游戏手柄模块* 1
● 面包板*1
● 9V方型电池*1
● 跳线若干
【实验原理】
该模块具有两个模拟输出(对应于X和Y坐标)和一个数字输出,表示是否在Z轴上按下。
【实验内容】
第一步:建立电路
第二步:程序
第三步:编译
第四步:将程序上传至Arduino Uno板
代码如下:
/*********************************************
\* name:Joystick PS2
\* function:push the joystick and the coordinates of X and Y axes displayed on Serial Monitor will change accordingly;
\* press down the joystick, and the coordinate of Z=0 will also be displayed.
connection:
Joystick PS2 Arduino Uno R3
GND GND
VCC 5V
SW 7
x A0
y A1
***********************************************/
const int xPin = A0; //X attach to A0
const int yPin = A1; //Y attach to A1
const int btPin = 7; //Bt attach to digital 7
void setup()
{
pinMode(btPin,INPUT); //set btpin as INPUT
digitalWrite(btPin, HIGH); //and HIGH
Serial.begin(9600); //initialize serial
}
void loop()
{
Serial.print("X: ");//print "X: "
Serial.print(analogRead(xPin),DEC); //read the value of A0 and print it in decimal
Serial.print("\tY: "); //print "Y: "
Serial.print(analogRead(yPin),DEC); //read the value of A1 and print it in decimal
Serial.print("\tZ: "); //print "Z: "
Serial.println(digitalRead(btPin)); read the value of pin7 and print it
delay(100);//delay 100ms
}
【实验结果】
现在,推动摇杆,串行监视器上显示的X轴和Y轴坐标将相应改变;按下按钮,Z的坐标也会显示出来如图所示:
【实验体会】
通过本次实验,我顺利达成了运用 PS2 游戏手柄模块与 Arduino Uno 主板对摇杆进行操控的目标。实验初始,我精心构建电路连接,全力保障 PS2 游戏手柄模块与 Arduino Uno 主板之间能够稳定、正常地通信。之后,我启用给定的程序代码,并将其上传至 Arduino Uno 主板以开展编译与运行工作。
在实验进行时,我察觉到操纵杆模块具备两个模拟输出,这两个输出分别对应着 X 和 Y 坐标,同时还有一个数字输出用于表征按下 Z 轴按钮的状态。当我推动摇杆之际,借助串行监视器,我能够即时观测到 X 轴与 Y 轴坐标值的动态变化。并且,当我按压摇杆上的按钮时,Z 轴的坐标值也会相应地变更为 0。
此次实验使我对操纵杆作为输入设备的使用方式有了更为出色的理解,也让我明晰了如何将其与 Arduino Uno 主板整合运用。我能够将这种操纵杆应用在控制视频游戏或者机器人等项目之中,以此达成更为灵动且精准的控制成效。
总体而言,本次实验堪称一次饶有趣味且极具收获价值的历程,它不仅深化了我对电子元件以及 Arduino 编程的认知,还进一步拓展了我的实验技能与实践能力,为我后续在相关领域的探索与创新奠定了更为坚实的基础。
标签:14,Arduino,print,操纵杆,实验,PS2,Serial From: https://blog.csdn.net/superiony/article/details/144726705