|
一、作品简介 本作品是一款基于人机交互的“智能猜拳对决系统”,以单片机(如STM32或51)作为主控,搭配迪文DGUS串口屏,实现玩家与电脑的趣味博弈。系统具备玩家出拳输入、电脑随机出拳生成、以及实时胜负逻辑判定功能。界面采用卡通风设计,操作简单直观,按下对应按键即可实现剪刀、布、石头的即时对决,并在屏幕上方实时反馈“你赢了”、“你输了”或“平局”的判定结果,互动性强,运行稳定。 二、工作原理 1. 通讯架构:单片机作为主控,迪文串口屏作为人机交互终端,两者通过串口(UART)进行数据交互。 2. 指令下发:当玩家在屏幕上按下“剪刀”、“布”或“石头”按键时,屏幕主动向单片机发送对应的键值(如1、2、3)。 3. 随机数生成:单片机接收指令后,运行内部逻辑代码,利用 rand() 函数及伪随机种子生成电脑的出拳结果(1-3对应不同手势)。 4. 逻辑判定:单片机将玩家出拳与电脑出拳进行比对,根据规则判定胜负。 5. 状态显示:单片机将电脑出拳结果及胜负判定结果,通过串口写入屏幕指定的变量地址中,屏幕根据变量值自动刷新图标和文字,完成一次完整对决。 6. 安全保护:系统各变量独立,防止越界,保障程序稳定运行。 三、设计思路 本猜拳系统采用迪文触摸屏搭配单片机来实现,整体分为硬件、软件两个部分进行设计。 1. 硬件部分 硬件主要由迪文触摸屏、主控单片机开发板以及通讯线缆组成。系统通过单片机的串口与迪文屏的串口(如串口4)相连,实现底层数据的稳定传输。 2. 软件部分 · UI界面设计:使用DGUS组态软件进行人机界面的设计与布局。设计主要包括主界面区域划分:左侧为玩家出拳图标显示区,中间为按键操作区(剪刀、布、石头),右侧为电脑出拳图标显示区,顶部为胜负结果文本显示区。 · 底层逻辑设计:单片机程序主要负责接收屏幕发来的按键数据。代码逻辑中规避了传统time.h 导致的报错,采用变量自增等方式生成伪随机数,确保电脑出拳的随机性;利用基础条件判断语句(if-else)实现猜拳规则(如:剪刀赢布,布赢石头,石头赢剪刀);并调用串口发送函数,将结果实时反馈给屏幕的相应变量地址。) 四、界面展示 本项目使用DGUS组态软件完成人机界面的设计与布局,一共设计了一个核心主界面。 主界面直观展示了游戏状态:下方三个圆形按钮清晰指示“剪刀”、“布”、“石头”操作区;操作后,左侧与右侧的图形变量区会立即显示双方出拳的手势;顶部文本变量区根据对战逻辑实时更新判定结果。整套界面布局简洁,色彩明快,操作直观,完美满足了娱乐互动中快速反馈的需求。 演示视频:迪文屏二次开发猜拳小游戏
|