×

使用arduino、mpu6050和python控制游戏

消耗积分:0 | 格式:zip | 大小:0.08 MB | 2022-12-13

陈秀珍

分享资料个

描述

大家好,

该控制器可用作玩游戏的游戏控制器。我想用 MPU6050 做一些东西,然后我决定做这个项目。

那么让我们看看它是如何工作的

在这个项目中,ardiono uno 读取油门按钮、刹车按钮的按钮状态和 MPU6050 传感器提供的数据,然后在串行监视器上打印一个字符,然后 python 程序读取该字符以模拟程序的键盘输入(游戏)。

那么如何制作这个东西呢?

步骤1

最初,您必须做一些基本的接线来将 arduino 与 mpu6050 和两个按钮连接起来,一个用于油门,另一个用于刹车。

pYYBAGOX2rGAWUzWAADv5-EElj435.jpeg
 

现在你必须在自行车上设置硬件,让它感觉更真实(你可以跳过这个或安装在你想要的地方)

将 MPU6050 传感器安装牢固。将其 Z 轴与我的设置类似(您可以更改,但您必须在代码中进行一些更改)

 

poYBAGOX2ruARVQ6AAEI7UzTnTQ73.jpeg
 

第 3 步

现在在软件部分,我正在使用库 和 。

pYYBAGOX2sCAJlHUAAG2KyiMiag081.jpg
安装 MPU6050_tockn.h
 

现在我对每个动作都使用了一些关键代码。

事件动作

如果按下油门按钮,则在串行端口上写入“w”

如果按下刹车按钮,在串口上写“s”

如果观察到正确的位置,在串口上写“d”

如果观察到左侧位置,请在串行端口上写入“a”

如果按下油门按钮并观察到正确的位置,则在串行端口上写入“e”

如果按下油门按钮并观察到左侧位置,则在串行端口上写入“q”

如果按下制动按钮并观察到正确的位置,则在串行端口上写入“c”

如果按下制动按钮并观察到左侧位置,则在串行端口上写入“z”

所以为此我们必须使用以下代码

if(mpu6050.getAngleZ()>25 && digitalRead(A0))  
  Serial.println('q');
 else if(mpu6050.getAngleZ()<-25 && digitalRead(A0))
  Serial.println('e');
 else if(mpu6050.getAngleZ()>25 && digitalRead(A1))
  Serial.println('z');
 else if(mpu6050.getAngleZ()<-25 && digitalRead(A1))
  Serial.println('c');
 else if(digitalRead(A0))
  Serial.println('w');
 else if(digitalRead(A1))
  Serial.println('s');
 else if(mpu6050.getAngleZ()>25)
 Serial.println('a');
 else if(mpu6050.getAngleZ()<-25)
 Serial.println('d');

注意 - 如果您使用另一个轴,那么您可以使用 mpu6050.getAngleX() 或 mpu6050.getAngleY()。

mpu6050.getAngleZ()>25

在这里,我将考虑当mpu6050.getAngleZ()给出的值大于 25(阈值点)时向左移动,您可以更改并设置自己的阈值点,为了找到自己的阈值点,您可以使用 getAngle 的示例代码来检查传感器的值每个位置,然后您可以在所需位置选择 Sthe 值。

pYYBAGOX2s2Aam-AAAH5MLMjubU512.jpg
使用此示例检查每个位置的传感器值
 

看我的串口监视器

 

到目前为止,我们在串口上获取值,现在我们将使用 python 扫描串口然后模拟输入,在此我将给出两个 python 代码其中一个使用pyautogui生成输入 但有时这不适用于 Direct X游戏,所以我也会给出第二个 python 代码(port2.py ),希望它可以工作,所以一个接一个地尝试两个 python 代码(port1.pyport2.py ),看看哪个有效。您还可以在运行 python 程序后选择一个记事本,如果您看到它在按下油门按钮或进行任何其他动作时在记事本上打印 w,那么从这个硬件和 arduino 方面来说一切都很好。

我在下面给出了完整的代码。[注意-在python程序中将端口名称更改为您的arduino端口,对我来说这是' COM3 ']

4 步 - 运行它

1-首先连接 arduino 打开串行监视器,如果一切正常,您会在串行监视器中看到正确的输出,然后关闭串行监视器

2 - 打开游戏

3rd - 运行 python 脚本进入游戏窗口

4th - 享受,现在你完成了

现在看看它是如何实时工作的,我在沥青 8 中使用它 - Airborne

 

所以希望你喜欢它。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !