zoukankan      html  css  js  c++  java
  • DIY Arduino 方向盘

    之前的项目中使用Arduino做UE4的输入设备时候需要用到UE4Duino这个插件,以字符串的形式从Arduino中组装信息并发送到串口,使用UE4Duino进行解析,过程比较麻烦。

    最近发现的一个工具UnoJoy可以把Arduino变成一个游戏手柄,开发和调试就简单多了。不过要注意它只能模拟一些常规的游戏输入,例如左右摇杆的X,Y axis,各种按钮等。对于自行车轮胎测速这种需求可能就无能为力了,还是需要使用UE4Duino手动组装和解析数据。

    这里就把diy一个游戏方向盘的过程记录下来。

    必备工具

    硬件

    1. Arduino Uno,
    2. 电位器,
    3. 下拉电阻(10K)

    软件

    1. Unojoy(https://code.google.com/archive/p/unojoy/), 进入downloads后下载 最新的windows版本
    2. x360ce(https://www.x360ce.com/) 我使用的是64位版
    3. flip(http://www.microchip.com/Developmenttools/ProductDetails/FLIP) ,下载 FLIP 3.4.7.112 for Windows (Java Runtime Environment included)
    4. Visual Leak Detector(https://kinddragon.github.io/vld/),不确定这个是不是必须,启动x360ce时会提示你下载,如果看到提示,就下载吧。下载installer版本最简单,直接默认安装

    步骤1

      连接电路:

      电位器两端引脚分别连接5V和ground,中间引脚连接模拟输入A0。最终我们只使用A0模拟为游戏手柄的Left ThumbStick X-Axis

      为了确保A1-A5-输入为稳定值,可以给他们都通过下拉电阻接地。

    步骤2

      安装flip,默认安装即可

    步骤3  

      给arduino通电,然后短路arduino最靠近usb连接口的两个针脚几秒钟。

      打开设备管理器,会出现Other device> unknown device。

      右键>Update Driver Software, 

      Browse my computer for driver software

      Let me pick a list.....

      Next

      Have disk

      Browse...

      选择unojoy中的drivers/Arduino Uno.inf

      OK

      Next

      Install

    步骤4

      打开unojoy中的 UnojoyArduinoSample/目录中的ino文件,编译上传。

      如果上传失败,可能需要重新拔、插Arduino,在IDE中选择正确的com口再上传

    步骤5

      重新拔、插 Arduino,双击unojoy中的TurnIntoAJoystick.bat, 稍等片刻后,提示按任意键退出。

      再次重新拔、插Arduino.

      然后再控制面板/硬件和打印机中就能看到一个unojoy joystick的图标,双击并选择属性可以进行测试。


      到上一步为止已经完成了通用的配置

      下面是为UE4设置的步骤


    步骤6

      把下载好的x360ce.exe放置到UE4的exe文件目录下(Engine/Binaries/Win64/)

      双击打开,按照提示点击Create,创建一个dll文件。

      设置如下:

      

       这里只需要一个Stick Axis X,这里选择Axes- Axis1,保存。

       注意,如果使用的不是电位器,而是飞行控制摇杆等设备,发现没有办法走满行程,那么需要修改UnojoyArduinoSample.inf文件,首先打印出真实的数值范围,然后使用map函数重新映射相应的模拟引脚的数值范围到(0-1023).


     到此为止所有的设置都完成了,剩下的就是进入UE4的配置环节了


    步骤7

      新建一个车辆模板工程,在工程的输入设置中,去掉所有无用的设置,把右转向设置为 Gamepad Left Thumbstick X-Axis。

      如果运行游戏发现中间死区过大,可以展开Bindings的高级选项,展开Axis Config,把Gamepad LetfX 的deadzone设置为很小的数值。

    步骤8

      如果Arduino还要用作普通Arduino使用,连接reset引脚几秒钟,运行 TurnIntoAnArduino.bat, 稍过片刻,再重新拔、插,即可还原。

  • 相关阅读:
    fixed固定定位实现可拖拽
    描述windows和linux如何抓取数据报文
    Javascript基础系列(七)-BOM
    Javascript基础系列(六)-函数
    Javascript基础系列(五)-面向对象
    浅述数组排序
    Android 相对布局 RelativeLayout
    Android 框架布局 FrameLayout
    Android 线性布局 计算器
    Android 线性布局 LinearLayout
  • 原文地址:https://www.cnblogs.com/AnKen/p/9671876.html
Copyright © 2011-2022 走看看