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

    文章

    16064

    浏览量

    176919
  • Arduino
    +关注

    关注

    187

    文章

    6455

    浏览量

    186445
收藏 人收藏

    评论

    相关推荐

    usb主机控制器位于ahp总线上吗

    关于“USB主机控制器是否位于AHP总线上”的问题,首先需要明确几个概念: USB主机控制器 :在USB系统中,主机
    的头像 发表于 09-25 09:20 218次阅读

    usb主机控制器与主板连接方法

    USB主机控制器是计算机系统中用于管理USB设备的硬件组件。它允许计算机通过USB接口与外部设备(如打印机、键盘、鼠标、存储设备等)进行通信。USB
    的头像 发表于 09-25 09:15 315次阅读

    usb主机控制器无法启动怎么解决

    USB主机控制器无法启动是一个常见的问题,它可能会阻止你使用USB设备。解决这个问题需要对USB主机控制器、驱动程序、系统设置和硬件故障有一
    的头像 发表于 09-25 09:10 307次阅读

    请问如何cURL库添加到ESP8266_RTOS_SDK项目中?

    我想使用 curl api,但我不知道如何添加到我的项目中,这样当我将该库的头文件包含在我的项目中时它就不会抱怨。 有谁知道如何正确地第三方库添加到ESP8266_RTOS_SD
    发表于 07-09 07:52

    请问如何.C的图片文件添加到VScode(PlatfromIO)生成的lvgh项目中?

    当使用LVGL官方网页转换png图片转换为.c矩阵文件之后,如何.c的图片文件加到VScode(PlatfromIO)的lvgh工程里面?<br> 不管是把.c放到
    发表于 06-17 06:03

    STM32F746 QSPI的Flash扩展后,添加到工程下载发现报错,为什么?

    使用 W25Q128 模块 ,使用的是微雪STM32F746IGT6的开发板,在QSPI进行Flash扩展了解发现需要做一个.FLM的Flash编程算法,我找一个STM32H7的进行修改,然后添加到工程下载发现报错,无法加载算法,有大佬自己做过Flash编程算法吗,求解
    发表于 04-17 06:31

    怎么把stlink server添加到keil里?

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

    TC399 adc能添加到同一个队列中并得到结果吗?加入队列是否有任何限制?

    添加到队列中并得到结果。 我的疑问是,有了这些不同的频道和组,我还能把它们添加到同一个队列中并得到结果吗?加入队列是否有任何限制?
    发表于 03-04 06:33

    如何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

    如何CMSIS DSP库添加到XMC4700 Relax Kit的Dave CE项目中?

    我刚开始研究 Dave,这对我来说还是个新事物。 我创建了一个 Dave CE 项目,并能够启动并运行 blink 代码。 我想将 CMSIS DSP 库添加到我的项目中,并使用库中的 DSP 函数
    发表于 02-01 07:11

    家用游戏机的控制器接口类型

    家用游戏机的控制器接口类型是游戏机和手柄之间进行连接和通信的关键部分。它决定了用户如何与游戏机进行交互,并直接影响到游戏体验的质量和多样性。
    的头像 发表于 01-04 11:23 1252次阅读

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

    不同的Windows版本中添加Python到环境变量中。 为什么需要将Python添加到环境变量中: 环境变量是一种系统范围内的设置,用于指定操作系统在执行命令时需要查找的程序和文件的位置。Python
    的头像 发表于 11-23 16:40 2849次阅读

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

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