0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

怎样将USB游戏控制器添加到Arduino Leonardo / Micro

454398 来源:网络整理 作者:网络整理 2019-12-11 11:15 次阅读

步骤1:更新Arduino代码

首先在“%”中制作以下两个文件的备份副本PROGRAMFILES%\ Arduino \ hardware \ arduino \ avr \ cores \ arduino”文件夹:

USBAPI.h

HID.cpp

将这两个文件替换为附加文件,以向Arduino Leonardo和Arduino Micro添加通用游戏控制器

步骤2:运行测试草图

使用Arduino软件(IDE)编译附加的UsbJoystickTest.ino草图文件并将其上传到Arduino Leonardo或Arduino Micro。我已经使用1.6.1到1.6.5版本的软件对此进行了测试。对于Arduino IDE 1.6.6及更高版本,请参见以下Instructionable:Arduino Leonardo/Micro作为游戏控制器/操纵杆

以下步骤适用于Windows 7。不同的操作系统,这些步骤可能会有所不同。

步骤3:Windows控制面板-硬件和声音

怎样将USB游戏控制器添加到Arduino Leonardo / Micro

转到Windows控制面板,然后选择“硬件和声音”。

步骤4:设备和打印机

然后选择“设备和打印机”

第5步:应该出现Arduino

Arduino Micro或Arduino Leonardo应该出现在设备列表中。

第6步:Arduino设置

下一步,右键单击Arduino Leonardo或Arduino Micro以显示设置菜单。

然后选择“游戏控制器设置”以进入“游戏控制器”对话框。

步骤7:游戏控制器设置

Arduino Micro或Arduino Leonardo应该出现在已安装游戏控制器的列表中。选择Arduino Micro或Arduino Leonardo,然后单击“属性”按钮以显示游戏控制器测试对话框。

步骤8:

当此对话框为焦点时,将Arduino上的A0引脚接地以激活测试脚本。测试脚本将按以下顺序测试游戏控制器的功能:

32个按钮

油门和方向舵

X和Y轴

Z轴

2个帽子开关

X和Y轴旋转

第9步:操纵杆库

现在,由于Arduino Leonardo或Arduino Micro具有游戏杆库,因此Arduino可用于自定义游戏控制器项目。下面介绍了更新的USBAPI.h和HID.cpp文件中包含的游戏杆库。

Joystick.begin(bool initAutoSendState)

启动模拟连接到计算机的游戏控制器。默认情况下,所有方法都会立即更新游戏控制器状态。如果initAutoSendState设置为false,则必须调用Joystick.sendState方法来更新游戏控制器状态。

Joystick.end()

游戏控制器仿真到已连接的计算机。

Joystick.setXAxis(byte value)

设置X轴值。范围-127至127(0为中心)。

Joystick.setYAxis(字节值)

设置Y轴值。范围-127到127(0为中心)。

Joystick.setZAxis(byte value)

设置Z轴值。范围-127到127(0为中心)。

Joystick.setXAxisRotation(int value)

设置X轴旋转值。范围从0°到360°。

Joystick.setyAxisRotation(int value)

设置Y轴旋转值。范围从0°到360°。

Joystick.setZAxisRotation(int value)

设置Z轴旋转值。范围从0°到360°。

Joystick.setButton(字节按钮,字节值)

设置指定按钮的状态。该按钮是从0开始的按钮编号(即,按钮#1为0,按钮#2为1,依此类推)。如果按下按钮,则值为1;如果释放按钮,则值为0。

Joystick.pressButton(字节按钮)

按下指示的按钮。该按钮是从0开始的按钮编号(即按钮#1为0,按钮#2为1,依此类推。)。

Joystick.releaseButton(字节按钮)

释放指示的按钮。该按钮是基于0的按钮编号(即按钮#1为0,按钮#2为1,依此类推。)。

Joystick.setThrottle(字节值)

设置油门值。范围为0到255。

Joystick.setRudder(字节值)

设置方向舵值。范围从0到255。

Joystick.setHatSwitch(字节hatSwitch,整数值)

设置指定的帽子开关的值。 hatSwitch是基于0的(即,帽子开关#1为0,帽子开关#2为1)。值是从0°到360°,但以45°为增量。小于45°的任何值都将向下舍入(即,将44°向下舍入为0°,将89°向下舍入为45°,依此类推。)。/strong》

责任编辑:wv

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

    关注

    112

    文章

    15221

    浏览量

    171156
  • Arduino
    +关注

    关注

    184

    文章

    6427

    浏览量

    184826
收藏 人收藏

    评论

    相关推荐

    怎么把stlink server添加到keil里?

    stlink server的使用说明里面是支持keil5.25的。怎么把stlink server添加到keil里?
    发表于 03-27 07:28

    如何F-RAM™添加到现有的PSoC™ Creator项目?

    我们在PSoC™ Creator 中有一个 PSoC6 项目,并希望 QSPI F-RAM™存储添加到TDA5235_868_5_BOARD中。我很难找到如何在F-RAM™ PSoC
    发表于 03-01 12:14

    FCX3是否具有PTS或SCR添加到映像帧的功能?

    问题 1) FCX3是否具有PTS或SCR添加到映像帧的功能,如随附的USB规范中所述? 如果可能,请提供有关如何配置每个 PTS 和 SCR 的详细信息。 问题 2) CAN FCX3 支持1080x1280@120fps传
    发表于 02-26 08:23

    如何TC1798器件添加到MDK KEIL?

    我正在尝试使用 KEIL MDK(µVision)为英飞凌TC1798编程,但我不确定如何TC1798器件添加到MDK KEIL。 谁能帮我拿到 .pack 或者.zip 对于 TC1798?
    发表于 02-01 08:18

    安装python怎么添加到环境变量

    Python是一种简单易学的脚本语言,广泛应用于开发各种类型的应用程序。为了在Windows操作系统上使用Python的命令行工具,需要将Python添加到系统的环境变量中。本文将向您详细介绍如何在
    的头像 发表于 11-23 16:40 747次阅读

    Mentor PADS将PCB封装直接添加到PCB的教程

    一般,批量添加封装到PCB板上有以下方法: 第一步:点击菜单栏“ECO模式--添加元器件”如图,点击以后弹出如图界面。 1)元件类型 PCB封装必须得添加完元件类型,才能通过ECO模式添加到
    的头像 发表于 11-07 07:45 3036次阅读
    Mentor PADS将PCB封装直接<b class='flag-5'>添加到</b>PCB的教程

    西门子博途S7-1200:将模块添加到机架的方法

    在网络视图中将设备从硬件目录添加到组态后,即可向设备中添加模块。
    的头像 发表于 09-04 15:22 3938次阅读
    西门子博途S7-1200:将模块<b class='flag-5'>添加到</b>机架的方法

    UART接口添加到DALI命令以控制AS7221模块

    应用程序: 这个示例代码是要将 UART 接口添加到 最初的 DALI 应用项目中, 用于与 AS7221 进行通信, 以便 DALI命令可以控制 AS7221 模块 。 BSP 版本
    发表于 08-22 07:51

    如何将溶解氧添加到WiFi水培套件

    电子发烧友网站提供《如何将溶解氧添加到WiFi水培套件.zip》资料免费下载
    发表于 06-14 10:00 0次下载
    如何将溶解氧<b class='flag-5'>添加到</b>WiFi水培套件

    将RTL模块添加到Block Design的步骤

    使用Vivado Block Design设计解决了项目继承性问题,但是还有个问题,不知道大家有没有遇到,就是新设计的自定义 RTL 文件无法快速的添加到Block Design中,一种方式是通过
    的头像 发表于 06-11 16:27 2280次阅读
    将RTL模块<b class='flag-5'>添加到</b>Block Design的步骤

    赛昉科技成功将EDK II支持添加到VisionFive 2中

    近日,赛昉科技成功将EDK II支持添加到VisionFive 2(昉·星光 2)中。VisionFive 2是赛昉科技推出的高性能RISC-V单板计算机(SBC),自发布以来,在生态伙伴、社区开发者及赛昉科技的共同努力下,VisionFive2的软件生态已取得长足的发展。
    的头像 发表于 05-19 15:30 758次阅读
    赛昉科技成功将EDK II支持<b class='flag-5'>添加到</b>VisionFive 2中

    如何构建自定义版本的包并将其添加到rootfs映像?

    所以我在寻找如何在构建实际的 rootfs 映像之前添加特定版本的包,准确地说是 libmbim?问题是如果我 libmbim-glib-dev 和 libmbim-utils 添加到 /configs/ubuntu/addi
    发表于 05-18 09:56

    如何RTSP视频源添加到我的“RainGauge”项目网站?

    RTSP 视频源添加到我的“RainGauge”项目网站: 视频由“Wyse Cam 3”捕获,提供给在 Windows PC 上运行的“虚幻媒体服务”。HTML5文件内嵌WebRTC
    发表于 05-11 07:41

    如何check() API公开添加到SPIFFS?

    SPIFFS.remove() 失败。我在 c api 中看到有一个 spiffs_check.c,但我认为它没有暴露在 SPIFFS obj 模型中。有点让我头疼,但现在我认为我目前唯一的办法是重新格式化 spiff, check() API 公开添加到 SPIFF
    发表于 05-08 07:00

    包含路径不会添加到项目中的每个源文件怎么解决?

    当在项目设置中添加包含路径时,不会将此路径添加到每个源文件中,因此需要在文件夹中搜索头文件的源文件无法构建。我的项目过去常常正确构建。 我创建了一个新项目并从项目设置中添加了一个包含路径,这个路径实际上被
    发表于 05-05 07:49