迪文科技论坛

 找回密码
 立即注册
搜索
查看: 6|回复: 0

【分享】二班六组《黄金矿工》

[复制链接]

2

主题

0

回帖

45

积分

新手上路

Rank: 1

积分
45
发表于 昨天 21:27 | 显示全部楼层 |阅读模式
一、作品简介
本系统基于迪文 T5L 双核异构芯片(GUI核 + 8051 OS核),以经典游戏“黄金矿工”为验证载体,探索在无MMU、无专用GPU的嵌入式平台上实现复杂人机交互的技术边界。
  • 硬件底座:T5L ASIC,双核通过双端口RAM共享VP变量空间。
  • 软件环境:DGUS II 组态界面 + 裸机C51业务逻辑。
  • 工程难点:在51内核有限算力下,实现动态图标运动控制、多目标AABB碰撞检测、重量感物理仿真及毫秒级时序调度。
  • 核心价值:提出一套“数据驱动视图、逻辑与渲染完全解耦”的低成本嵌入式HMI开发范式,可平替至工业交互与参数标定场景。
二、工作原理
系统流畅运行依赖于双核通信机制与轻量化算法设计,具体分为以下三点:
  • 双核协同与VP内存劫持
         GUI核专职触控采样与ICL图库渲染;OS核通过改写SP描述指针区(如HOOK_SP 0x7000),向控件偏移地址高频写入32位绝对坐标,强制覆写图标位置,实现无阻塞的运动动画,无需GPU介入。
  • 运动学建模与伸缩状态机
         钩爪运动遵循极坐标摆角模型,采用预编译查表法替代浮点三角函数,将角度转换为直角坐标增量。伸缩过程由状态机(STRETCH/SHRINK)管理:发射阶段线性外推,回收阶段根据抓取物质量动态修改状态机等待时间——空爪/炸弹极速回卷(约3ms),巨型石头滞重回卷(约25ms),模拟重量感。
  • AABB碰撞检测与时序调度
         采用轴对齐包围盒算法,在每帧通过整数区间比对快速判定钩爪与矿石的位置重叠。底层Timer0提供1ms硬件中断,软件分频实现100ms级UI轮询、1000ms级倒计时管理,并利用SysTick低位作为硬件随机数种子,实现道具掉落伪随机。
三、设计思路与工程创新
本系统引入现代软件工程思维,并实现两项关键技术创新:
  • 基于MVC的彻底解耦架构
    • 数据模型:将矿石坐标、质量、分值封装为三维映射矩阵,实现关卡数据驱动。
    • 视图层:完全交由DGUS配置文件接管,C51代码零UI渲染逻辑,仅通过修改VP内存值触发界面自动刷新。
    • 控制层:实现双层级鲁棒状态机——UI级监听页面切换,业务级管理游戏初始化、进行中与商店页互斥流转。
  • 创新点A:动态阻尼与重量感仿真
         不依赖物理引擎计算加速度,而是将不同抓取物的质量映射为回收状态机的不同等待延时(3ms~25ms)。通过时间维度的扭曲,以极低开销模拟出“重物回拉更慢”的真实拖拽迟滞感。
  • 创新点B:SP指针动态劫持技术
         突破DGUS静态配置限制,C51程序直接介入控件描述指针,运行时覆写物理坐标。该技术使得原本仅用于静态界面的DGUS屏具备了驱动复杂轨迹动画的能力,且不增加GUI核负担,可推广至工业仪表指针、动态曲线等场景。



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|迪文科技论坛 ( 京ICP备05033781号-1 )

GMT+8, 2026-4-18 23:04 , Processed in 0.035610 second(s), 24 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表