当前位置:首页 > 工业控制 > 电路设计项目集锦
[导读]它支持第三代或更高版本的Xbox控制器或英飞凌的XENSIV游戏控制器,通过带有CAN FD Shield TLE9371VSJ的CAN FD总线将数据传输到KIT_XMC71_EVK_LITE_V1板。后者处理数据并使用自定义图形适配器XMC71_EVK_DisplayAdapter_V11在屏幕上显示受Pong启发的演示游戏。

该项目涉及两块电路板:CYW920829M2EVK-02,它通过蓝牙低功耗(BLE)连接到游戏控制器,以及KIT_XMC71_EVK_LITE_V1。

它支持第三代或更高版本的Xbox控制器或英飞凌的XENSIV游戏控制器,通过带有CAN FD Shield TLE9371VSJ的CAN FD总线将数据传输到KIT_XMC71_EVK_LITE_V1板。后者处理数据并使用自定义图形适配器XMC71_EVK_DisplayAdapter_V11在屏幕上显示受Pong启发的演示游戏。

硬件

在运行代码之前,请确保所有硬件组件都已正确连接和配置。按照以下步骤设置硬件:

1. 通过将XMC71套件的J23头连接到显示适配器的J23头,将XMC71_EVK_DisplayAdapter_V11连接到KIT_XMC71_EVK_LITE_V1。

2. 连接CAN FD屏蔽TLE9371VSJ到CYW920829M2EVK-02:

•将5V和GND引脚分别连接到评估板上的电源引脚上

•RxD连接到P5.0, TxD连接到P5.1

3. 连接CAN FD屏蔽TLE9371VSJ到KIT_XMC71_EVK_LITE_V1:

通过跳线将屏蔽的CANL和CANH引脚连接到KIT_XMC71_EVK_LITE_V1的CAN FD头J14中的适当引脚(引脚名称在板的底部)

项目运作

要操作该项目,请遵循以下步骤:

1. 闪码

要使用ModusToolbox为任何一个项目闪烁代码(这里为XMC71_CAN_and_Display完成,但对两个项目都是一样的),请遵循以下步骤

•从本文开头处下载项目的.zip文件。

•将.zip文件的内容解压缩到计算机上的一个文件夹中。

•打开模块工具箱的Eclipse IDE。

•在开始下的快速面板中,单击“导入现有应用程序”。

•选择在步骤1中提取的文件夹。

•一旦项目被加载,点击项目名称下的“Build project”按钮。

•将适当的电路板连接到计算机上。

•点击“启动”下的“运行”按钮,这将使代码闪现到电路板上。

2. 配对设备

现在两个板都闪过了,是时候将控制器与它们配对了。遵循以下步骤:

•两个单板都上电。您应该看到等待屏幕,显示“waiting for controller to connect…”,并显示连接说明。

•如果您正在使用Xbox控制器,请按下Xbox按钮(Xbox控制器图上的数字5)来打开它,并按住配对按钮(控制器图上的数字6)几秒钟将其置于配对模式,直到Xbox按钮开始快速闪烁。

•对于XENSIV游戏控制器,你所要做的就是打开它,它就会自动开始广告。

•按CYW920829M2EVK-02板上的USER BTN1按钮

•等待几秒钟,等待配对过程完成。

•在Xbox控制器的情况下,CYW920829M2EVK-02上将亮起红色LED。要完成配对,请再次按住配对按钮,直到Xbox按钮停止闪烁并保持稳定。

•对于XENSIV控制器,当配对完成时,控制器显示“成功配对到…”,控制器上的绿色LED发光。

开始演示

连接建立成功后,CYW920829M2EVK-02开始发送报文。当KIT_XMC71_EVK_LITE_V1开始接收这些数据包时,显示将更改为显示标题屏幕。该屏幕将显示英飞凌徽标和参与创建XMC71_EVK_DisplayAdapter_V11自定义板的合作伙伴公司的徽标。几秒钟后,演示将开始。我们将首先描述控制器按钮的Xbox名称,并将XENSIV放在括号中。每个控制器中功能相同的按钮在上面的控制器图中编号相同。

使用演示

演示由两个模块组成:帮助屏幕模块显示项目名称和可用用户输入的详细信息;Pong模块是经典Pong游戏的简化版本,可以由一个或两个玩家使用一个控制器进行游戏。它由两个屏幕组成。游戏屏幕显示实际游戏,当其中一名玩家输了,游戏结束屏幕就会显示出来。

为了控制游戏,你可以使用:RB (R1)(控制器图中的2号)来启动/重新启动游戏。LB (L1)(控制器图中编号1)进入帮助界面。左右摇杆(控制器图中分别为4号和5号按钮)用于控制Pong模块中各自的摇杆。

软件

下图显示了这个项目中软件的一般流程。它显示了两个项目的一般简化操作及其相互作用。大写并带下划线的名称表示程序内部有限状态机中的状态。

缺省情况下,控制器数据每50毫秒发送一次。这可以在文件Bluetooth_LE_Game_Controller\source\app_communication\app_communication.h中的CONTROLLER_STATUS_PERIOD_MS中进行更改

《Pong》游戏逻辑包含两种状态:

1. PONG_PLAY:在此状态下,球拍位置根据用户输入更新,并管理碰撞。游戏也检查游戏结束条件,设置gameOver标志,当桨未能击中ba

2. PONG_OVER:在这种状态下,玩家会看到提示游戏结束以及如何重新开始的文本。

程序的无限循环包括一个名为runAndUpdateGameState()的函数,它使用开关/case结构来管理图1中所示的状态。这个函数处理状态之间的转换,并调用适当的函数在显示器上呈现每个屏幕。

此外,gameModuleHandler()函数负责管理模块之间的转换。它注册时,RB (R1)和LB (L1)按钮被按下,并触发演示时,他们被释放的变化。

总结

这个项目结合了几个嵌入式功能,可能会对你的下一个项目感兴趣:

•通过蓝牙LE (BLE)连接游戏控制器到您的系统

•桥接BLE到CAN网络

•驱动显示器

本文编译自hackster.io

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭