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

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

3天内不再提示

如何创建一个DualShock4控制的Arduino

454398 来源:wv 2019-09-26 09:54 次阅读

步骤1:收集硬件

如何创建一个DualShock4控制的Arduino

这是使用DualShock 4控制器控制Arduino所需的全部硬件:

1。 Arduino Uno-微控制器板,允许用户运行自己的自定义固件。

2。 USB 2.0 Host Shield-这是必须的。 USB Host Shield位于此处,位于Ardiono Uno的顶部,并支持许多USB设备。

3。 USB蓝牙加密狗-有与USB Host Shield兼容的蓝牙加密狗列表,其中许多非常小巧且便宜。我在这里有我的亚马逊

4。 DualShock 4控制器-该控制器通过与Sony的PlayStation 4视频游戏机的蓝牙连接来工作。借助USB Host Shield库,我们可以完全访问控制器的许多按钮,操纵杆,触发器,陀螺仪,加速度计和LED。控制器使用Micro USB电缆充电,因此也可以通过有线方式将控制器与开发板一起使用,但是我们对无线功能感兴趣。

5。具有USB端口的计算机-Arduino需要另一台计算机为其编写程序,并需要串行连接才能写入Arduino板。通过芯片上的USB B端口将Arduino连接到计算机。此USB连接可提供与主板的电源和串行通信。为了简单起见,对于任何与软件相关的步骤,我将假定您使用的是Windows PC。在Mac和Linux中,只需很少的额外工作即可完成以下所有操作。如果遇到任何兼容性问题,请使用Google查找特定于操作系统的解决方案,我保证它们都存在。

步骤2:安装Arduino软件

如果尚未安装,请在此处下载并安装Arduino IDE 1.0.5。该软件允许您为Arduino编写程序并将其上传到开发板上。链接USB Host 2.0库也需要该软件,该库提供了与DualShock 4控制器进行通信的代码。请记住下载适用于您特定操作系统的文件并将Arduino IDE安装在您可以找到的位置。

Arduino IDE非常简单,顶部有几个按钮可以打开,保存和创建项目文件。 “验证”按钮将从IDE中打开的项目中编译C代码,如果通过USB连接到计算机,则“上传”会将代码编译并加载到Arduino上。您可以查看“文件”-》“示例”以找到一些示例代码,以帮助您快速入门。

步骤3:安装USB 2.0 Host Shield库

下载通过单击右侧的最后一个按钮“下载为.zip”按钮,从GitHub中下载库。获得.zip文件后,将其移动到“ Arduino”安装文件夹中的“ Libraries”文件夹,解压缩文件,然后删除“。”。从文件夹名称。将文件夹保留在此处,然后打开您的Arduino IDE窗口(如果已打开)。要在Arduino IDE中链接库,请转到“草图-》导入库”并浏览文件窗口以找到该文件夹。完成后,“文件”-》“示例”-》“ USB_Host_20_Libs”将包含我们与USB Host Shield,蓝牙软件狗和DualShock 4控制器进行通信所需的所有代码。请查看一些示例,尤其是“ Bluetooth”文件夹中的“ PS4BT”示例。

第4步:组装硬件

将蓝牙加密狗插入USB主机护罩的USB端口。将Arduino Uno上的USB屏蔽设置成正确的引脚,然后将它们轻轻推在一起。一旦我们在其上安装了代码,这台小型计算机将与控制器通信。要将Arduino连接到计算机,请使用USB电缆。查找

步骤5:运行程序!

提供的示例代码显示了如何从控制器读取输入,我迅速模拟了一些可播放的代码控制器上的LED。通过按D-pad上的向上按钮,您可以在基于陀螺仪读数和右指尖以及左扳机组合改变颜色之间进行切换。

在Aurduino IDE中打开led_demo.ino,然后点击“验证看到它可以编译。确保您的Arduino Uno,USB防护罩和蓝牙加密狗已组装好,并通过USB将其连接到计算机。单击“上传”,然后等待代码完成向Arduino的写入。看到完成后,请转到下一步打开串行终端。

步骤6:通过串行终端获取调试信息

Arduino创建了一个串行通信连接来与主机进行通信。此连接主要用于将编译后的代码直接上传到Arduino,但也可以用于显示板上发生的输出信息。

PuTTY是一种工具,可促进多种类型的终端通信,例如串行通讯,一个相当简单的协议。从网站上下载PuTTY。安装并运行PuTTY,在“连接类型”下选择“串行”,然后选择Arduino所在的正确COM端口。在Windows上,要找到您的Arduino在哪个COM端口上,请找到“设备管理器”(在“控制面板”下搜索),然后查看“ COM”下列出的设备,其中之一应该是您的Arduino!现在,在Arduino代码中输入相同的速度值(Serial.begin(115200);是开始串行连接的行,PuTTY中的默认波特率是9600)。

Arduino软件打开有效的串行连接后,将无法将任何代码上传到板上,因此请确保在要更新代码时退出串行终端。随时将设置保存在PuTTY中,以便更轻松地快速打开串行连接。

一旦代码加载到Arduino,打开与主板的串行连接。您应该看到顶部印有“ PS4 Bluetooth Library Started”行。如果不是,请尝试按板上的“重置”按钮,或将串行连接重新配置为正确的COM端口和波特率。

第7步:测试程序

只有在打开串行连接后,Arduino才会与蓝牙软件狗连接。如果您想让Arduino在没有连接的情况下运行,只需注释掉初始化Serial对象和所有打印语句的代码即可。串行连接打开后,蓝牙加密狗进入搜索模式,在其中寻找要配对的控制器。按住控制器上的“共享”和“ PS”按钮,使LED以一种模式快速闪烁,这意味着它正在寻找新的连接。如果LED闪烁,则说明它正在寻找控制台,只需按住PS按钮10秒钟即可随时关闭控制器。如果控制器连接成功,您会发现LED保持稳定。摇动控制器(小心!)以观看陀螺仪改变LED的颜色,或在D-pad上按“向上”以使用右指杆和左触发器在不同颜色之间循环。按“ X”可将RGB值打印到串行终端。

这只是您可以使用控制器执行的操作,现在由您来编写自己的惊人代码!

步骤8:结论

这就是将PS4 DualShock 4控制器连接到Arduino的方式!如果有读者还在学习如何使用Arduino,我会尝试介绍一些基础知识,因此希望它不会因无关的信息而陷入困境。

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

    关注

    112

    文章

    16206

    浏览量

    177422
  • Arduino
    +关注

    关注

    187

    文章

    6464

    浏览量

    186660
收藏 人收藏

    评论

    相关推荐

    开源项目!基于 Arduino 的 MIDI 架子鼓

    起探索如何也能拥有套适合你办公桌的架子鼓! 电子元件 Arduino Leonardo (或其他带有 ATmega32U4 芯片的 Arduino 型号) 7
    发表于 11-25 12:00

    stm32与Arduino的比较

    在微控制器的世界里,STM32和Arduino是两经常被提及的名字。STM32是系列由STMicroelectronics生产的高性能微控制
    的头像 发表于 11-19 15:45 236次阅读

    如何使用Arduino实现CAN总线通信

    CAN总线(Controller Area Network)是种多主控制的串行通信协议,广泛应用于汽车电子、工业自动化等领域。它以其高可靠性、实时性和灵活性而受到青睐。Arduino作为
    的头像 发表于 11-12 10:09 329次阅读

    如何使用Arduino IDE构建的ELF映像?

    我有要求,我需要使用使用 Arduino IDE 构建的ELF映像,但 NonOS SDK 中提供了boot_v1.6.bin。我执行了以下步骤 背景: 1. Arduino
    发表于 07-09 07:13

    利用Arduino的自动风扇速度控制电路设计

    自动风扇速度控制电路Arduino LM35编程非常容易实验,可用于根据温度水平通过继电器控制任何目标设备。对于这里的温度测量,我们使用 LM35,这是种精密集成电路温度器件,其输出
    的头像 发表于 06-22 16:39 1500次阅读
    利用<b class='flag-5'>Arduino</b>的自动风扇速度<b class='flag-5'>控制</b>电路设计

    请问下FREERTOS只能创建4任务,修改哪个宏定义可以增加创建任务的数量?

    请问下FREERTOS只能创建4任务,修改哪个宏定义可以增加创建任务的数量?解决方法:增加FREERTOS的堆。
    发表于 05-13 06:44

    arduino控制步进电机代码

    Arduino种开放源代码的电路板平台,它可以用于控制各种不同的电子设备,包括步进电机。步进电机是种电动机,可以通过下达特定的指令来控制
    的头像 发表于 02-14 16:29 1891次阅读

    arduino中while循环怎么跳出

    执行某段代码的情况。然而,如何在合适的时机跳出 while 循环是需要注意的问题。本文将详细介绍 Arduino 中 while 循环的基本概念,以及如何使用不同的技巧跳出该循环来实现代码的灵活
    的头像 发表于 02-14 16:22 2392次阅读

    使用Arduino Nano制作4×4×4 LED立方体

    在这个项目中,我们将使用 Arduino Nano 制作很酷的 4×4×4 LED立方体。L
    的头像 发表于 02-11 12:07 3068次阅读
    使用<b class='flag-5'>Arduino</b> Nano制作<b class='flag-5'>一</b><b class='flag-5'>个</b><b class='flag-5'>4</b>×<b class='flag-5'>4</b>×<b class='flag-5'>4</b> LED立方体

    构建基于Arduino的空气质量监测系统

    呼吸清洁、健康的空气对我们的健康至关重要,但在许多环境中,空气质量仍然是问题。在本文中,我们将深入探讨如何创建基于
    的头像 发表于 02-11 12:03 3992次阅读
    构建<b class='flag-5'>一</b><b class='flag-5'>个</b>基于<b class='flag-5'>Arduino</b>的空气质量监测系统

    如何使用Arduino设置热敏电阻来创建温度计

    在本教程中,我们将指导您如何使用Arduino设置热敏电阻以创建基本温度计。提供的原理图、试验板图和示例代码将使热敏电阻工作变得简单明了。
    的头像 发表于 02-11 10:37 2260次阅读
    如何使用<b class='flag-5'>Arduino</b>设置热敏电阻来<b class='flag-5'>创建</b>温度计

    如何使用Arduino控制RGB LED

    在本指南中,您将学习如何使用Arduino控制RGB LED。RGB(红-绿-蓝)LED可以通过混合不同强度的红、绿、蓝光来产生多种颜色。您将学习创建
    的头像 发表于 02-11 10:28 4592次阅读
    如何使用<b class='flag-5'>Arduino</b><b class='flag-5'>控制</b>RGB LED

    如何使用Arduino UNO板和电位器控制伺服电机

    在本Arduino伺服电机教程中,您将学习如何使用Arduino UNO板和电位器控制伺服电机。
    的头像 发表于 02-11 10:11 2595次阅读
    如何使用<b class='flag-5'>Arduino</b> UNO板和电位器<b class='flag-5'>控制</b>伺服电机

    如何使用arduino控制接触器?

    我将避免铅酸电池过载。我想通过使用近 30A 的接触器和 arduino uno 板来控制电池过载。如何使用arduino控制接触器?
    发表于 01-22 07:14

    如何从简单的数学表达式创建Saber模型?

    如何从简单的数学表达式创建Saber模型,将你的输出描述为输入的函数?例如 out=a*in*in+b (其中 a 和 b 是常数)
    的头像 发表于 12-05 13:42 689次阅读
    如何从<b class='flag-5'>一</b><b class='flag-5'>个</b>简单的数学表达式<b class='flag-5'>创建</b><b class='flag-5'>一</b><b class='flag-5'>个</b>Saber模型?