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

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

3天内不再提示

Xbox360控制器陀螺仪转向模块的制作

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

步骤1:您将需要:

工具:

烙铁

焊料

焊料吸盘/编织物

剥线钳

一把螺丝起子,也许是梅花刀取决于控制器中的螺钉(我的是十字头)

胶水(最好不是超强胶水,以便以后可以拆开)

USB到串行适配器以对Arduino进行编程

材料:

Xbox 360控制器(duh!)

Arduino Pro Mini(或克隆)(最好为3.3V)。如果使用5V版本,则可能需要一个升压转换器

MPU-6050陀螺仪/加速度计

MCP4725 DAC(如果要控制两个轴,则为两个) )

一些细导线

一个面包板,因此您可以在焊接前进行所有测试(可选,但建议使用)

第2步:分开控制器

您必须卸下七颗螺钉。其中有六个很明显,但第七个在标签后面。我认为删除它会使您的保修失效,因此,后果自负。许多指南说您需要Torx螺丝刀,但是我的却是十字头,因此请检查您的控制器。

然后,小心地撬开后盖。如果撬开前面板,则按钮会溢出,可能会散布到整个房间。从底部将其提起。然后拔下两个振动电机。 (重量较小的一个应该在左侧,重量较大的一个应该在右侧)将PCB取出,并取下模拟摇杆上的橡胶盖。他们只是简单地拉开了。

下一步是移除左侧的模拟摇杆,以免干扰我们的输入,但是左侧的触发机制妨碍了这种操作。为了将其卸下,您必须从板子的前部拆下电位计的三个引脚,然后从PCB上拆下该机构的盖。

接下来,请拆下固定左模拟杆的14个引脚。然后拉开摇杆。

步骤3:将组件固定到位

您将请注意,PCB背面和外壳之间有很大的间隙。

我稍后才意识到,但是这是取消在Arduino上重置按钮的好时机。如果不这样做,则在重新组装时如果拧紧其中一个螺钉,它将压在盒体的背面并使项目停止工作。

我用胶水粘了一块薄卡粘贴到每个PCB的背面以使其绝缘,然后将其粘贴到控制器的PCB上。我不愿使用胶水,但想不出更好的方法。

图像中的位置是我能找到的最佳组合。 Arduino位于左侧,带有复位按钮的边缘与右侧触发机构的塑料片齐平,另一侧位于电线下方,并且拐角尽可能靠近白色连接器。外壳略微隆起,但找不到更好的放置位置。

加速度计在电线的右侧。它应该尽可能平坦和笔直,否则您可能需要稍后编写一些代码来补偿偏移量。请注意,在盒子的背面有一些突出的塑料块,请务必避免。我发现您可以在突出的塑料片上放一些像口红这样的粘性和彩色的东西,然后将后盖放在上面,看看它留下的痕迹。

DAC进入左下角。如果要控制两个轴,这里有足够的空间来堆叠两个DAC,一个堆叠在另一个之上。您无需将它们粘下来。他们将仅通过焊接连接就可以呆在原处。如果要在它们之间粘贴卡,请确保切开卡,以使SCL,SDA,VCC和GND可以访问,因为您将从两侧访问它们。

如果使用两个DAC,请不要忘记切换地址跳线并禁用其中之一的上拉电阻,如下所述:https://learn.sparkfun.com/tutorials/mcp4725-digital-to-analog-converter-hookup-指南

步骤4:焊接导线

现在您已经拥有连接一切。来自所有2/3设备的VCC,GND,SDA和SCL应分别连接到Arduino上的VCC,GND,A4和A5。 DAC是最棘手的部分。如果您有两个,则必须将它们连接在一起,而在某个地方可以将电源和线路连接到加速度计,同时保持OUT线分开。

DAC的OUT引脚应连接到控制器PCB上的引脚,该引脚曾经是模拟摇杆的中间水平电位器引脚。也就是说,在模拟摇杆所在的位置,顶部有三排针。将其连接到中间一个。如果您有另一个DAC,则以相同的方式将其连接到垂直电位计引脚(左侧的行)。更换扳机后,您将无法从背面触到引脚,因此必须将电线连接至电路板的正面。模拟摇杆区域周围有一个圆形的塑料“墙”,但是幸运的是其中有一个方便的间隙,您可以将电线穿过。确保电线不会挡住机箱前部的螺丝柱。

我最初的计划是通过连接到RAW引脚的USB电缆用5V电压为Arduino供电,但是当我尝试时,它没有用。 Arduino没有运行任何东西,几秒钟后Arduino和控制器都关闭了。但是,我发现板子正面靠近黑色外围设备插座的两个引脚有一个稳定的3.3V输出,大概是为外围设备供电。它适用于VCC和RAW,但我选择VCC是因为它已经是正确的电压,并且因为它允许我将其焊接到板底部附近的DAC的VCC线上并节省导线。

请注意,必须从外壳上伸出很多塑料零件,但是如果将电线粘在适当的位置,则只需担心一次。

所有其中很难用文字来描述,所以我提供了图片和粗略的图表。

第5步:对Arduino进行编程

现在您有了对Arduino进行编程。这需要移动控制器上的USB电缆,以便您可以访问Arduino上的串行引脚。我已经包含了我使用的代码。它需要Adafruit MCP4725库,可以在这里找到:https://github.com/adafruit/Adafruit_MCP4725

按原样,该代码使您可以遍历模拟摇杆的整个运动范围通过将控制器向左90度均匀移动,向右90度均匀移动,并通过将其保持平坦状态将其保持在中间。

它通过计算X的反切线来获得控制器的角度轴g力除以Z轴g力。这意味着它可以在控制器垂直,平坦或两者之间有任何角度时使用。 (更多信息,请访问:https://www.digikey.com/en/articles/techzone/2011/may/using-an-accelerometer-for-inclination-sensing)

在我的控制器上有效,但是其他控制器可能需要不同的电压,使其无法对齐。我认为找到电压范围的最佳方法是反复试验。许多游戏都会为您显示模拟摇杆运动的滑块,但是我发现确定运动的最准确方法是在Linux上使用jstest。 (https://wiki.archlinux.org/index.php/Gamepad#Joystick_API)它为您提供-32,767到32,767之间的数字,而不是图形,因此您可以确切地知道操纵杆的位置。将控制器和Arduino USB插入串行适配器,加载jstest并尝试不同的DAC值,直到达到范围的顶部和底部,并记下每个范围。对我来说,它是1,593-382。

第36行是特别令人感兴趣的地方:

dacvalue = (controllerangle + 2.5617859169446084418) / 0.0025942135867793503208 + 0.5;

目前尚不清楚它的作用。简单来说,它获取控制器的角度(以弧度为单位,在〜1.57和〜-1.57之间测量),并将其转换为DAC的1593至382之间的值。如果您有不同的DAC范围,则需要更改该行。

该行可以写为:

dacvalue = (controllerangle + ) / + 0.5;

使用和是您需要更改的数字。 等于控制器角度(pi)的范围除以DAC值的总范围。 (范围的顶部减去范围的底部)这可以使您尽可能地改变电压,尽管结果将超出所需的范围。这就是为什么您需要的原因。 等于乘以范围的底部再加上控制器运动范围的一半。 (pi/2)将运动范围的一半相加,以确保它不是负数,然后将乘以范围的底部,以确保其与所需的范围同步。

转换时小数点为整数,C ++不舍入。取而代之的是,它会舍去小数,因此9.9变成9。最后加0.5可以确保一半以上的内容都可以到达下一个整数,因此可以四舍五入。

一旦您上传了程序,make

第6步:重新组装控制器

将控制器拆回的方式与您拆开控制器的方式相同(减去左侧)模拟棒。现在应该可以工作了。我发现没有明显的延迟,而且比使用模拟摇杆要好得多。因为它使用加速度计,所以会受到突然运动的影响,但是您必须格外注意它。

步骤7:可能的改进

可以进行一些改进。其中包括:

使用较少的电磁线

将所有内容蚀刻到一个旨在适合控制器外壳的PCB上

重新连接左侧的模拟杆并将支脚连接到Arduino上的模拟输入,以便它们可以用于调整Arduino

获取无线控制器的后壳并将项目放入电池仓(这需要将电池USB电缆孔)
责任编辑:wv

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

    关注

    112

    文章

    16185

    浏览量

    177333
  • 陀螺仪
    +关注

    关注

    44

    文章

    777

    浏览量

    98555
  • Xbox
    +关注

    关注

    0

    文章

    186

    浏览量

    16923
收藏 人收藏

    评论

    相关推荐

    爱普生(EPSON) 惯性测量单元(IMU)、陀螺仪传感模块应用领域选型介绍

    爱普生(EPSON)惯性测量单元(IMU)、陀螺仪传感模块应用领域选型介绍EPSON传感包括XV7011BB等单轴高精度陀螺仪和M-G
    的头像 发表于 09-02 14:58 503次阅读
    爱普生(EPSON) 惯性测量单元(IMU)、<b class='flag-5'>陀螺仪</b>传感<b class='flag-5'>器</b>等<b class='flag-5'>模块</b>应用领域选型介绍

    陀螺仪x轴和y轴的应用

    陀螺仪通过使用惯性传感(如MEMS)来测量物体的旋转角速度。在x轴和y轴上分别放置两个陀螺仪,可以更全面地捕捉到物体的旋转和转动。陀螺仪x轴通常与设备的长轴(通常是
    发表于 04-17 15:42 0次下载

    手机陀螺仪失灵解决方法

    手机陀螺仪是一种用于感知和测量设备旋转、倾斜和方向的传感。失灵的陀螺仪可能导致手机在运动控制、游戏和导航等应用中出现问题。下面将详细介绍陀螺仪
    的头像 发表于 01-30 10:06 2.7w次阅读

    陀螺仪x和y比例是多少 陀螺仪x轴和y轴是指什么

    陀螺仪通过使用惯性传感(如MEMS)来测量物体的旋转角速度。在x轴和y轴上分别放置两个陀螺仪,可以更全面地捕捉到物体的旋转和转动。 陀螺仪x轴通常与设备的长轴(通常是水平轴)对齐,
    的头像 发表于 01-17 11:10 1918次阅读

    陀螺仪感应校准工具有哪些

    陀螺仪感应校准工具是用于对陀螺仪进行校准和精调的设备或软件。陀螺仪感应是一种用于测量和检测物体的角速度、方向和姿态的传感
    的头像 发表于 01-02 14:53 2728次阅读

    陀螺仪感应测试的值

    陀螺仪感应是一种常见的传感,用于测量和检测物体的旋转、角度和方向变化。它被广泛应用于航空航天、汽车导航、运动控制等领域。在本文中,我们将详细了解
    的头像 发表于 01-02 14:51 1215次阅读

    陀螺仪感应常见的应用领域

    陀螺仪感应是一种用于测量物体自转角速度的传感。它通过检测物体的旋转和方向变化来确定其相对角速度。陀螺仪感应常用于导航系统、飞行
    的头像 发表于 01-02 14:49 1494次阅读

    陀螺仪实体和支持有什么区别

    。 首先,陀螺仪实体是一种物理设备,用于测量和检测物体的旋转速度和角度。它通常由机械部件、感应以及与其他装置的连接接口等组成。陀螺仪实体的存在主要基于物理原理,例如角动量守恒、陀螺
    的头像 发表于 01-02 14:47 1817次阅读

    陀螺仪传感工作原理

    陀螺仪传感是一种广泛应用于航空、航天、导航和自动化控制系统中的重要传感。它的主要作用是测量并感知物体的角速度。本文将详细介绍陀螺仪传感
    的头像 发表于 01-02 14:45 1732次阅读

    陀螺仪传感的应用实例

    陀螺仪传感是一种用于检测和测量设备旋转的传感,可以在多个领域中应用。在本文中,我们将详细介绍陀螺仪传感的运作原理和常见应用实例。
    的头像 发表于 01-02 14:37 1677次阅读

    手机陀螺仪的基本原理是什么

    手机陀螺仪是一种用于测量和检测设备在空间的旋转运动的传感。它被广泛应用于现代智能手机、平板电脑和游戏控制器等设备中,以提供更加智能、交互和感知的功能。手机陀螺仪的基本原理是基于角动量
    的头像 发表于 01-02 14:34 5595次阅读

    陀螺仪三轴轴承怎么安装

    和注意事项。 首先,在正式安装陀螺仪之前,我们需要准备必要的工具和材料。主要包括:陀螺仪模块、轴承、螺丝、螺母、螺丝刀、扳手等。确保这些工具和材料都是干净、整齐的,以避免在安装过程中出现意外情况。 接下来,
    的头像 发表于 01-02 14:26 879次阅读

    陀螺仪三轴六轴区别

    陀螺仪是一种用于测量物体旋转的装置,尤其在航空航天领域和导航应用中得到广泛应用。陀螺仪根据其测量的轴数可以分为三轴陀螺仪和六轴陀螺仪。在本文中,我们将详细讨论三轴
    的头像 发表于 01-02 14:22 3708次阅读

    三轴陀螺仪模块怎么使用

    三轴陀螺仪模块是一种用于测量角速度和方向的传感,可以在航空航天、汽车、无人机等领域广泛应用。本文将详细介绍三轴陀螺仪模块的原理、使用方法和
    的头像 发表于 12-20 10:36 2424次阅读

    陀螺仪的基本组成 陀螺仪的工作原理 陀螺仪的作用

    装置和感应陀螺仪的工作原理基于科氏力和陀螺效应,其作用是用于导航、姿态控制、动作捕捉等领域。与重力传感相比,
    的头像 发表于 12-07 11:26 2895次阅读