使用Cardboard +超声波传感器+ arduino(DIY)轻松制作自己的游戏控制器! 16美元以下

视频教程: https //youtu.be/wCeQcroGw6w

逐步程序

  1. 下载Arduino IDE和Microsoft Visual Studio IDE

https://www.arduino.cc/zh/main/software — Arduino IDE下载链接

https://www.visualstudio.com/downloads-Microsoft Visual Studio下载链接

  1. 从以下链接https://github.com/RaghavVenkat/Serial_Listiner_Game_Controller下载入门工具包(游戏控制器串行端口侦听器程序)
  2. 入门包包含Arduino的代码(实现了我们上面讨论的概念)电路图,以及将要在Microsoft Visual Studio中使用c#编写的应用程序的基本代码。
  3. 将超声波传感器与arduino板连接。 (使用上面给出的电路图,您还可以在入门工具包中找到该电路图)。
  4. 将arduino板连接到PC。 当您打开IDE时,您会看到两个函数setup()和loop()
  5. 在每次打开或重置Arduino板后,setup()函数将仅运行一次。 使用它来初始化/定义变量,引脚模式等。
  6. loop()函数精确执行其名称所暗示的功能,并连续循环,从而允许您的程序进行更改和响应。 用它来主动控制Arduino。
  1. 正如我们已经讨论过的超声波传感器的工作原理一样,让我们​​从c#应用程序设计部分开始。
  2. 打开Visual Studio并打开serial_listiner c#程序,您可以在入门工具包的“ c#part”文件夹中找到该程序。
  3. 在“工具箱”面板的MainForm中创建两个计时器。
  4. 将“已启用”设置为false,将时间间隔设置为1,可以在“属性”面板下找到这些内容。

广告

  1. 声明2个变量

Int或很久以前= 0;

Int或long val = 0;

  1. 导航到void _spManager_NewSerialDataReceived(object sender,SerialDataEventArgs e){…..}函数
  2. 并输入下面的图片给出的代码。
  3. 正如我们所讨论的,我们根据我们所说的谓词触发密钥。
  4. 与其直接触发按键,我们不如使用计时器来触发按键,从而使它对游戏产生很大的影响。

在下面的代码中,我接收到的串行值被读取为字符串,并转换为int类型。

  1. 要将字符串转换为int,请使用Convert.ToInt32或Convert.ToInt64,如果为32,则需要捕获类型不匹配错误,但它也可以工作。 如果使用Convert.ToInt64,则需要使用Long数据类型修饰符声明变量PAST和VAL。

现在让我们编写计时器功能的代码。

在这里,我们将使用一个内置函数SendKeys.Send()-用于将击键发送到应用程序。 这属于发送键类。

  1. 让我们分别使用启用时的计时器1发送F3键和使用计时器2的发送F2键。
  • 发送(“ {F3}”); 内部定时器1_tick功能
  • 发送(“ {F2}”); 内部定时器2_tick函数
  1. 触发键后,我们需要将PAST变量的值更新为从串行端口读取的当前值。
  2. 就这样! 现在,与飞行模拟器游戏并行运行此应用程序。 设置端口,波特率,然后单击“开始收听”。

除此之外,我们还可以添加按钮,拨动开关以将着陆灯,起落架等作为中断来控制着陆灯,起落架等。如果您想使控制器用于空中客车或波音公司的轭架/操纵杆,请使用弹性电阻或陀螺仪传感器(两者都非常适合执行该功能)。 即使代替超声波传感器,我们也可以使用电位计。

此概念可用于任何游戏,例如对于EURO TRUCK SIMULATOR之类的游戏,我们可以将此设置用作加速器并通过触发“上箭头键” /“ W键”和“下箭头键” /“ S”来中断键”。 因此,如果您有想法为任何游戏创建控制器,

  1. 首先,从现实世界中找到您想要控制的动作(此处指的是控制器)。
  2. 在游戏中找到触发该动作的相应键。
  3. 编写触发此键所需的逻辑代码。

享受游戏!

干杯,

拉加夫