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

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

3天内不再提示

怎样用无线控制器控制乒乓球比赛

454398 来源:工程师吴畏 2019-08-02 10:10 次阅读

带无线控制器的乒乓球比赛 - 示意图

怎样用无线控制器控制乒乓球比赛

自定义控制原理图(基础)。查看完整尺寸版本。

无线控制器和乒乓球比赛工作

这个项目分为三个主要部分:控制器,服务器和乒乓球比赛。服务器本身很容易使用。不需要特殊的服务器代码,因为它将要做的唯一工作是将数据包从控制器重新路由到乒乓球游戏。该项目的所有文件都以ZIP文件形式提供。

控制器

控制器本身只包含一个兼容RIOT的PIC器件(如PIC16F1516)和一些外部器件,包括功率调节和几个开关。当控制器打开时,器件配置为确保为ESP8266正确配置UART,在接收到UART字节时触发中断,内部振荡器处于最大速度,并且所有IO端口都配置为输入或输出。设置代码完成后,微控制器需要启动RIOTOUS并尝试通过Wi-Fi连接到路由器(这是您需要填写自己的详细信息,包括SSID和密码)。一旦建立了Wi-Fi连接,微控制器就会进入循环,不断尝试连接到我们的RIOTOUS服务器(同样,您需要填写托管RIOTOUS服务器的计算机的IP地址)。建立连接后,控制器会发送一条消息,让服务器在其日志中显示,并告知服务器其唯一ID。 RIOTOUS服务器根据它们所连接的端口识别设备,但每个连接的设备也可以具有唯一的ID。这个唯一ID与MAC地址的工作方式几乎完全相同,如果两个客户端想要相互通信(例如,控制器和乒乓球游戏),它们都需要一个唯一的ID,然后要求服务器重新路由数据到具有唯一ID的设备。设置设备的唯一ID非常简单,只需要两个字节:字母“I”和第二个字节,其值代表唯一ID(0到255)。在我们的例子中,我们将控制器的唯一ID设置为“M”,因此将数据包发送到服务器“IM”。

一旦所有启动代码都有已执行,主循环启动。此循环只是查找按钮按下并根据当前按钮状态发送消息。上下按钮仅在按下或释放按钮时发送消息,而每次代码循环时,开始按钮将发送消息。

游戏

游戏本身是使用名为Multimedia Fusion 2.5的程序制作的,是一个软件包,可以在不使用代码的情况下进行游戏制作。尽管没有使用代码,但该软件功能强大且比大多数人认为的更灵活。程序是使用点击式系统制作的,具有可配置的事件和操作,具有许多扩展,允许用户执行任何操作(包括网络,目录搜索,系统进程查看等)。虽然MMF2易于使用,但我建议您在进行此项目之前尝试更轻松的项目,因为您需要一些关于可变值和基本游戏练习的知识。

在我们的乒乓球在游戏中,我们利用了RIOTOUS小部件,它包含一个对象,两个moo套接字和一些处理所有数据传输的代码。需要完成的第一项任务是更改RIOTOUS小部件的一些可变值。 “服务器IP”需要设置为RIOTOUS服务器的IP地址,“广告端口”需要设置为广告端口(默认为333),“唯一ID”需要设置为唯一ID。游戏,将是“A。”

完成后,我们需要让RIOTOUS小部件连接到游戏首次启动时的RIOTOUS服务器,这是通过在触发“开始帧”事件时将可更改字符串“Connect”设置为“true”来完成的。发生这种情况时,RIOTOUS会自动尝试连接到服务器,如果成功,“ServerConnectionStatus”将等于“true”。

现在RIOTOUS小部件已将我们连接到服务器,我们等到用户按下无线控制器上的开始按钮,按下后,控制器将文本“RADBSTART”发送到服务器。服务器首先查看第一个字母并确定所请求的操作是什么。在这种情况下,第一个字母是R,表示重定向。下一个字母/字节是将消息重定向到的唯一ID(在本例中为A)。然后将其余数据发送到具有唯一ID(DBSTART)的设备。

当客户端(我们的游戏)收到此包时,它会查看第一个字母以确定数据包是什么。我们数据包中的第一个字母是D,代表“数据”,因此客户端将数据包“DBSTART”放入其数据缓冲区,并将“DataAvailable”变量设置为“true”。如果游戏检测到此数据包,则启用控制游戏的事件(玩家控制和游戏事件)。当从RIOTOUS小部件读取成功的数据时, 您必须清除缓冲区中的数据并将“DataAvailable”设置为false!

完成后,我们的游戏运行,按下按钮可上下移动划水板。但是,当按下按钮时,它只发送一条消息,因为微控制器的速度不足以反复向游戏发送移动数据。因此,在我们的游戏中,如果检测到按钮按下,则播放器将朝该方向移动 ,直到释放按钮 。这提供了平滑响应控制的效果,并且由于控制器和游戏之间的延迟小于20ms,因此给人的印象是正在使用有线控制器。

您可能已经注意到检查可用数据的最后一个事件是否为真。关于MMF2的好处是事件按顺序执行,以便事件16始终在事件17之前执行。在我们的示例中,如果已发送损坏的数据且没有触发任何数据事件,则最后一个数据可用事件将清除缓冲区,以便新数据可以到达。游戏代码本身不会被解释,因为它是A)MMF2文件中的微不足道而B)不太重要。什么 重要的是RIOTOUS客户端,服务器和MMF2之间的通信。

构建

您可以使用许多不同的技术构建此项目。第一个也是最简单的方法是构建一个RIOTOUS开发板(上面提供的原理图)或者获得一个RIOTOUS开发板(很快就可用)。但是,如果您需要个性化控制器,则可以使用不同的电路构造技术,包括面包板,条形板,矩形板和PCB。控制器需要兼容RIOTOUS(》 4 MIPS,4KB ROM和256字节RAM),下面是控制器板PCB布局的示例。

通用控制器PCB的一个例子(需要按钮和其他输入的屏蔽)

此项目中使用的开发板(PIC16F1516)

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

    关注

    0

    文章

    29

    浏览量

    10915
收藏 人收藏

    评论

    相关推荐

    乒乓球架构中LMX2820的高隔离、快速频率切换应用说明

    电子发烧友网站提供《乒乓球架构中LMX2820的高隔离、快速频率切换应用说明.pdf》资料免费下载
    发表于 09-11 09:33 0次下载
    <b class='flag-5'>乒乓球</b>架构中LMX2820的高隔离、快速频率切换应用说明

    国产控制器厂家 整车控制器 以太网控制器 CAN控制器 国产化替代

    控制器
    长沙硕博电子科技股份有限公司
    发布于 :2024年09月03日 09:15:51

    车载智能控制器 工程机械控制器 CAN总线控制器 硕博电子 #控制器 #can总线 #国产化替代

    控制器总线
    长沙硕博电子科技股份有限公司
    发布于 :2024年08月29日 10:43:57

    组合逻辑控制器什么实现的

    组合逻辑控制器是一种用于控制和管理复杂系统中各个组件之间交互的逻辑设备。它可以应用于各种领域,如计算机科学、通信、自动化控制等。在这篇文章中,我们将详细探讨组合逻辑控制器的实现方法、原
    的头像 发表于 06-30 10:11 455次阅读

    智能软启动柜浮控制设置在哪

    智能软启动柜是一种用于电动机启动和控制的设备,它通过控制电动机的启动电流,减少启动时的冲击,延长电动机的使用寿命。智能软启动柜的浮控制设置是其中的一个重要功能,可以有效地
    的头像 发表于 06-18 14:41 726次阅读

    移动机械控制器 车载智能控制器 CAN总线控制器

    控制器机械
    长沙硕博电子科技股份有限公司
    发布于 :2024年06月13日 17:02:51

    运动控制器控制形式有哪些

    运动控制器是现代工业自动化和机器人技术中的核心组件,负责对机械系统进行精确的控制和调度。运动控制器控制形式多种多样,每种形式都有其特定的应用场景和优势。以下是对运动
    的头像 发表于 06-13 09:23 637次阅读

    电动阀门控制器怎么

    电动阀门控制器是一种自动化控制设备,用于控制阀门的开启和关闭,实现对管道内流体的控制。它广泛应用于石油、化工、电力、冶金、城市建设等领域。本文将详细介绍电动阀门
    的头像 发表于 06-11 14:24 1931次阅读

    PID控制器与PWM控制器的区别

    在工业自动化和控制系统设计中,PID控制器(比例-积分-微分控制器)和PWM控制器(脉冲宽度调制控制器)是两种常用的
    的头像 发表于 06-05 18:25 2736次阅读

    PID控制器与开关控制器的区别

    在工业自动化控制系统中,PID控制器和开关控制器是两种常见的控制策略。它们各自具有独特的工作原理、应用场景和优缺点。本文旨在详细探讨PID控制器
    的头像 发表于 06-05 15:50 701次阅读

    stm32f100怎样用重映射功能?

    的是stm32f100c8t6b芯片,现在想用将PB1映射为TIM1_CH3N,在调用GPIO_PinAFConfig(GPIOB,GPIO_PinSource1,GPIO_AF_TIM1)时, GPIO_PinAFConfig和GPIO_AF_TIM1都没定义,stm32f100
    发表于 05-07 06:06

    物联网智能太阳能无线阀门控制器

    无线电磁阀控制器,是一款精密、小巧的基于无线广域网技术 的阀门控制器,设备采用超低功耗需外围供电。通过手机,PC 端管理平远程控制
    的头像 发表于 03-14 17:47 526次阅读
    物联网智能太阳能<b class='flag-5'>无线</b>阀门<b class='flag-5'>控制器</b>

    农业灌溉无线电磁阀控制器

    无线电磁阀控制器的原理无线电磁阀控制器基于电磁感应定律工作,通过激励电磁铁产生的电磁场,改变阀门内部的磁场分布,从而控制阀门的开闭。
    的头像 发表于 03-07 11:56 397次阅读
    农业灌溉<b class='flag-5'>无线</b>电磁阀<b class='flag-5'>控制器</b>

    空调温度控制器怎么使用 空调温度控制器坏了会怎样

    空调温度控制器是一种用于调节和控制空调室内温度的设备。它根据室内环境的温度需求和用户的设置,通过调节空调系统的运行模式来达到舒适的室内温度。本文将详细介绍空调温度控制器的使用方法以及坏了可能会
    的头像 发表于 01-19 14:22 1782次阅读

    怎样用ADAU1761设计DRC的压缩/扩展?

    请问怎样用ADAU1761设计DRC的压缩/扩展。我在SigmaStudio 4.5的模块中只找到RMS。如果ADAU1761设计DRC要怎样
    发表于 11-28 06:41