当前位置: 首页 > news >正文

【2023集创赛】安谋科技杯二等奖作品: 智能体感游戏机

本文为2023年第七届全国大学生集成电路创新创业大赛(“集创赛”)安谋科技杯二等奖作品分享,参加极术社区的【有奖征集】分享你的2023集创赛作品,秀出作品风采,分享2023集创赛作品扩大影响力,更有丰富电子礼品等你来领!

团队介绍

参赛单位:武汉理工大学
队伍名称:抓取信号线
指导老师:李宁,徐宁
参赛队员:黎飞宇,乔新远,薄明哲
总决赛奖项:二等奖

1 设计简介

1.1 总体介绍

本项目基于Cortex-M3软核构建了一个智能体感游戏机,选用1024*600分辨率的HDMI屏幕作为游戏的显示屏,在清晰显示游戏内容的同时保证了便携性,并设计多种IP来满足游戏机的设计,包括Digital Recognition、Flex Sensor Controller、Voice Recognition、Robot Arm、Hand Shank、Dma、Hdmi、Sdram Controller、Music、Gyroscope、Ov5640等IP。

1.2 系统设计

在这里插入图片描述

本项目采用两级总线架构,第一级总线是AHB总线,有四个主机:Cortex-M3内核的三根总线(数据、指令、系统)和DMA IP。其中I-Code负责取址操作,D-Code负责数据访问操作,System负责所有数据的传送。
因我们使用的屏幕分辨率为1024*600,图像数据量较大,单纯使用软核传输数据会大量占用核内资源且传输较慢,导致图像卡顿。故此我们设计了DMA+外部SRAM的结构来解决图像刷新率慢的问题,外部SRAM负责存储大量的图片数据,DMA IP负责将外部SRAM的数据搬运至SDRAM前的写FIFO缓冲器中(异步FIFO完成数据的跨时钟域),再由SDRAM控制器从写FIFO中将图片数据写至SDRAM中供HDMI屏幕显示,由此完成图像数据的流动。

此结构不仅可以很好地解决图像数据传输的问题,还可以大大简化游戏机的软件开发,软件开发人员只需要在keil上修改背景数组的图像数据即可完成游戏的编写,后续工作交给DMA完成数据的流动,即只需要一次布局布线即可完成任意游戏的开发。
第二级为AHB和APB总线,其中APB总线下主要挂载供游戏使用的各种IP,包括数字识别、体感手套、语音识别、机械臂控制、手势识别、SDRAM控制器、DMA控制器、音乐控制器、无线手柄、陀螺仪、串口、LED灯等。AHB总线下我们预留了接口,方便后续对系统进行升级。
数字识别IP主要应用于儿童数字启蒙游戏,通过识别不同的数字卡片来填写给出的算式,填写正确即闯关成功。
体感手套IP用来获取人手的不同姿态,语音识别IP用来获取人的语音信号,手势识别IP来获取人的手势动作,无线手柄IP来获取手柄的按键状态,通过不同的感知方式来控制游戏的进程。

在这里插入图片描述

Cortex-M3软核主要的工作是各模块的状态控制以及游戏图像数据的修改,起到桥梁的关键作用。主要包括:手势识别状态的获取、数字识别信息的获取、机械臂的控制、体感手套数据的处理、语音信号的控制,LED灯的亮灭、背景音乐的启停、串口的收发、图片数据的更新、手柄状态的检测等等。

1.3 数字识别

在这里插入图片描述

数字识别的流程为:将OV5640摄像头得到的数据首先传入RGB转YcbCr模块,将彩色图先转换为灰度图像,获取图像的灰度等级,经过滤波模块滤除高频噪声后将数据传送至定位模块,定位数字的位置后,送入数字识别模块,通过寻找数字特征判断读取到的数据,识别速度达到了ms级。

1.4陀螺仪滤波

本次项目中,我们选用了MPU6050这一款性价比较高的六轴陀螺仪。陀螺仪的滤波以及姿态解算是设计中的一大难点,我们在查阅资料后决定采用互补滤波算法加四元数解算来求得陀螺仪的姿态角。
加速度计的静态稳定性更好,而在运动时其数据相对不可靠;陀螺仪的动态稳定性更好,但是静止时数据相对不可靠。因此,我们可以短期相信陀螺仪,长期相信加速度计,使用互补滤波算法可以很好的解决这个问题,即通过加速度计的输出来修正陀螺仪的积分累积误差。
我们在内核中采用定时中断10ms为周期进行采样。四元数即为我们要求的实际值,将实际值与加速度的理论值做叉乘即可得到误差。使用PID控制器对误差进行消除(Ki=0.04,Kp=0.17,Kd=0),便达到了互补滤波的效果,实际是用加速度计的值去补陀螺仪的动态误差,随后求解四元数方程即可得到四元数的值。

1.5 操作方式

根据所需要的设计的游戏我们加入了多种方式操作游戏,以下介绍控制游戏所需要的模块:
在这里插入图片描述

通过手柄进行角色移动与按键操作。
在这里插入图片描述

通过智能手套控制角色移动与按键操作。

2.游戏介绍

该游戏机共设计5款游戏,1款经典的炸弹人,2款双人对战游戏,1款儿童数字启蒙游戏,一款现实矿工游戏。
在这里插入图片描述

2.1 炸弹人游戏

在这里插入图片描述

玩家扮演一个机器人,通过放置炸弹来炸死敌人,但也可以炸死自己,中随机生成效果道具增加了游戏的可玩性。本次智能游戏机的设计在一定程度上还原了这款经典游戏,在原有的操作基础上,增加删改了一些设定。

2.2弹力网球

在这里插入图片描述

本游戏是我们独立设计的一款游戏,以简单的弹力球游戏做为起点,通过添加移动的人物与球互动,即更改球的坐标,使得此游戏获得了一定的可玩性,由于设置了双人,所以在可玩性的基础上,增添了竞技性,同时,我们为球增添了一定的重力加速度,使其模拟更加真实。我们将游戏基于玩家的回馈机制调整为得分机制,进一步增添了游戏的可玩性。

2.3混乱枪战

《混乱枪战》是我们着重设计的一款游戏,通过设置大量标志位,如跳跃标志,开枪标志等,来记录角色的各个状态,同时我们给予了各角色不同的重力加速度,模拟了真实的物理引擎。通过碰撞算法,来设置角色与个平台之间的交互。
在这里插入图片描述

当玩家血条为零或者掉落平台没有及时的跳跃时,其生命次数会减少,当一方玩家的生命次数为零时,游戏结束,另一方获胜。
在这里插入图片描述

2.4数字计算

这是我们针对儿童设计的一款数字启蒙游戏,并设计了数字识别的智能IP,玩家在有限的时间内将正确的数字放在摄像头下进行识别并填入游戏界面中。在玩游戏的过程中同时对幼儿进行启蒙教育,游戏设计玩法多样且富有现实意义。
在这里插入图片描述

2.5机械矿工

我们设计的第五款游戏叫做《机械矿工》,其设计灵感来自于经典的童年游戏《黄金矿工》,与之不同的是,《机械矿工》需要利用现实中的工具,将矿宝转移到合适的位置中。

在这里插入图片描述

到这里就完成了游戏玩法以及游戏内容的简单介绍,可以看到我们的作品游戏种类丰富并且玩法多样,其中包括了许多智能化内容,兼具了实用性与可玩性。

总结

本游戏机提供多种游戏供玩家选择,有单机游戏和多人游戏,包含经典、益智、对战、射击、运动等多个方面,内容丰富,并设置多种控制方式大大增添了游戏的乐趣,游戏玩法多样、新颖,趣味性十足且有深远意义。

集创八个月的比赛时间里,我们碰到了许多困难,遇到了许多挫折,最终我们也是都挺了过来,也做出了一款不错的作品,得到了不错的成绩。总而言之,这次比赛历程对于我们来说是一次非常丰富的成长经历啦~ ~

参加极术社区的【有奖征集】分享你的2023集创赛作品,秀出作品风采,分享2023集创赛作品扩大影响力,更有丰富电子礼品等你来领!

相关文章:

【2023集创赛】安谋科技杯二等奖作品: 智能体感游戏机

本文为2023年第七届全国大学生集成电路创新创业大赛(“集创赛”)安谋科技杯二等奖作品分享,参加极术社区的【有奖征集】分享你的2023集创赛作品,秀出作品风采,分享2023集创赛作品扩大影响力,更有丰富电子礼…...

如何使用前端包管理器(如npm、Yarn)?

聚沙成塔每天进步一点点 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 欢迎来到前端入门之旅!感兴趣的可以订阅本专栏哦!这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发…...

Codeforces Round 903 (Div. 3) C(矩形旋转之后对应的坐标)

题目链接:Codeforces Round 903 (Div. 3) C 题目: 思想: 旋转之后对应的坐标: (i,j)(n1-j,i)(n1-i,n1-j)(j…...

月薪过万的Java面试

​ 写了一个月,篇幅太长了,都写不下了,被逼无奈,只能拆分 面试题: HashMap底层实现原理,红黑树,B树,B树的结构原理,volatile关键字,CAS(比较与…...

html进阶语法

html进阶 列表、表格、表单 目标:掌握嵌套关系标签的写法,使用列表标签布局网页 01-列表 作用:布局内容排列整齐的区域。 列表分类:无序列表、有序列表、定义列表。 无序列表 作用:布局排列整齐的不需要规定顺序的…...

博客系统(java,MySQL,HTML)

项目展示: 1.输入 http://127.0.0.1:8080/blog_system/login.html 即可进入登录页面 2.输入正确的用户名和密码后进入博客列表页 要是用户名或密码输入错误,会弹出错误提示框 3.点击查看全文,可以进入博客详情页查看详细信息 4.点击写博客&a…...

Android Studio SDKGradleJDK等工具的正确使用

AS在安装使用过程中可能会占用C盘大量空间,对于C盘容量本来就小的人来说非常不友好,其实我们可以自定义安装路径 SDK默认安装位置 各种版本和NDK也会安装到这个路径 SDK版本选择性安装 通过选择图示的按钮,可以显示SDK的版本详情&#xff0…...

利用Python提取将Excel/PDF文件数据

使用Python来创建一个接口,用于接收Excel文件资源链接,下载文件并执行指定的操作,然后返回处理后的数据。以下是一个基本的示例,展示如何使用Flask来创建这样的接口。请注意,这是一个简化的示例,您可能需要…...

纯 CSS 实现瀑布流布局的方法

纯 CSS 实现瀑布流布局的方法 这种方式兼容性不是很好,全部支持需要些时间,但是目前是可以使用 css 写出来的 display: grid; grid-template-columns: repeat(4, 1fr); grid-gap: 10px; grid-template-rows: masonry;全部的 css .container {display:…...

输入法显示到语言栏_状态栏

设置–时间和语言–语言–最右侧"相关设置"中的"拼写、键入和键盘设置" 最下方的"高级键盘设置"–“使用桌面语言栏(如果可用)” 点击"语言栏选项" 接下来就是不同输入法的设置了 搜狗输入法:右键输入法选择"隐藏状态栏"–…...

[samba]同一个文件夹,分不同权限管理

#问题 有一个文件夹A能让用户1拥有写权限,而让用户2拥有只读权限,而用户3啥权限都没有,该如何设置samba呢? #解决办法 1.首先创建一个linux分组(group),命名为samba groupadd samba 2.创建一个samba默认…...

项目整合管理

项目整合管理概述 概述 项目的复杂性来源于组织的系统行为、人类行为以及组织或环境中的不确定性。在项目整合之前,项目经理需要考虑项目面临的内外部环境因素,检查项目的特征或属性。 作为项目的一种特征或属性,复杂性的含义: …...

基于RuoYi-Flowable-Plus的若依ruoyi-nbcio支持本地图片上传与回显的功能实现(一)

更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码: https://gitee.com/nbacheng/ruoyi-nbcio 演示地址:RuoYi-Nbcio后台管理系统 原先这个基于RuoYi-Flowable-Plus的这个不支持本地图片上传,只支持oss图片上传,所以…...

2023年建筑电工(建筑特殊工种)证考试题库及建筑电工(建筑特殊工种)试题解析

题库来源:安全生产模拟考试一点通公众号小程序 2023年建筑电工(建筑特殊工种)证考试题库及建筑电工(建筑特殊工种)试题解析是安全生产模拟考试一点通结合(安监局)特种作业人员操作证考试大纲和(质检局)特种设备作业人…...

Puppeteer实现上下滚动、打开新Tab、用户数据保存(三)

Puppeteer实现上下滚动、打开新Tab、用户数据保存(三) Puppeteer实现上下滚动、打开新Tab、用户数据保存(三)一、实现上下滚动二、打开新Tab三、用户数据保存四、效果演示 一、实现上下滚动 在自动化测试中,我们需要能…...

ArduPilot开源飞控之AP_InertialNav

ArduPilot开源飞控之AP_InertialNav 1. 源由2. 调用关系3. 重要例程3.1 read_inertia3.2 update 4. 封装接口4.1 get_filter_status4.2 get_position_neu_cm4.3 get_position_xy_cm4.4 get_position_z_up_cm4.5 get_velocity_neu_cms4.6 get_velocity_xy_cms4.7 get_speed_xy_c…...

DataX工具部署与使用(PostgreSQL to Oracle)

目录: 一、准备环境(1)安装JDK(2)检查Python版本(3)DataX 解压及测试 二、同步测试1、配置清单2、操作示例(1)同步测试环境(2)准备测试表&#xf…...

【PyTorch2 之027】在 PyTorch 中的R-CNN、Fast R-CNN和 Faster R-CNN

一、说明 亮点:对象检测是计算机视觉中最重要的任务之一。在这篇文章中,我们将概述最有影响力的对象检测算法家族之一:R-CNN、Fast R-CNN 和 Faster R-CNN。我们将重点介绍它们中的每一个的主要新颖性和改进。 最后,我们将专注于 …...

C++学习——C++函数的编译、成员函数的调用、this指针详解

以下内容源于C语言中文网的学习与整理,非原创,如有侵权请告知删除。 从博文的分析中可以看出,对象的内存中只保留了成员变量,除此之外没有任何其他信息,程序运行时不知道 stu 的类型为 Student,也不知道它…...

Pulsar Manager和dashboard部署和启用认证

Pulsar Manager部署和启用认证 官方地址: https://pulsar.apache.org/docs/zh-CN/next/administration-pulsar-manager/ Pulsar Manager 是一个网页式可视化管理与监测工具,支持多环境下的动态配置。可用于管理和监测租户、命名空间、topic、订阅、broker、集群等…...

后进先出(LIFO)详解

LIFO 是 Last In, First Out 的缩写,中文译为后进先出。这是一种数据结构的工作原则,类似于一摞盘子或一叠书本: 最后放进去的元素最先出来 -想象往筒状容器里放盘子: (1)你放进的最后一个盘子&#xff08…...

利用ngx_stream_return_module构建简易 TCP/UDP 响应网关

一、模块概述 ngx_stream_return_module 提供了一个极简的指令&#xff1a; return <value>;在收到客户端连接后&#xff0c;立即将 <value> 写回并关闭连接。<value> 支持内嵌文本和内置变量&#xff08;如 $time_iso8601、$remote_addr 等&#xff09;&a…...

简易版抽奖活动的设计技术方案

1.前言 本技术方案旨在设计一套完整且可靠的抽奖活动逻辑,确保抽奖活动能够公平、公正、公开地进行,同时满足高并发访问、数据安全存储与高效处理等需求,为用户提供流畅的抽奖体验,助力业务顺利开展。本方案将涵盖抽奖活动的整体架构设计、核心流程逻辑、关键功能实现以及…...

在rocky linux 9.5上在线安装 docker

前面是指南&#xff0c;后面是日志 sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo dnf install docker-ce docker-ce-cli containerd.io -y docker version sudo systemctl start docker sudo systemctl status docker …...

Python爬虫实战:研究feedparser库相关技术

1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的信息资源。RSS(Really Simple Syndication)作为一种标准化的信息聚合技术,被广泛用于网站内容的发布和订阅。通过 RSS,用户可以方便地获取网站更新的内容,而无需频繁访问各个网站。 然而,互联网…...

【JVM】- 内存结构

引言 JVM&#xff1a;Java Virtual Machine 定义&#xff1a;Java虚拟机&#xff0c;Java二进制字节码的运行环境好处&#xff1a; 一次编写&#xff0c;到处运行自动内存管理&#xff0c;垃圾回收的功能数组下标越界检查&#xff08;会抛异常&#xff0c;不会覆盖到其他代码…...

抖音增长新引擎:品融电商,一站式全案代运营领跑者

抖音增长新引擎&#xff1a;品融电商&#xff0c;一站式全案代运营领跑者 在抖音这个日活超7亿的流量汪洋中&#xff0c;品牌如何破浪前行&#xff1f;自建团队成本高、效果难控&#xff1b;碎片化运营又难成合力——这正是许多企业面临的增长困局。品融电商以「抖音全案代运营…...

测试markdown--肇兴

day1&#xff1a; 1、去程&#xff1a;7:04 --11:32高铁 高铁右转上售票大厅2楼&#xff0c;穿过候车厅下一楼&#xff0c;上大巴车 &#xffe5;10/人 **2、到达&#xff1a;**12点多到达寨子&#xff0c;买门票&#xff0c;美团/抖音&#xff1a;&#xffe5;78人 3、中饭&a…...

python如何将word的doc另存为docx

将 DOCX 文件另存为 DOCX 格式&#xff08;Python 实现&#xff09; 在 Python 中&#xff0c;你可以使用 python-docx 库来操作 Word 文档。不过需要注意的是&#xff0c;.doc 是旧的 Word 格式&#xff0c;而 .docx 是新的基于 XML 的格式。python-docx 只能处理 .docx 格式…...

Cloudflare 从 Nginx 到 Pingora:性能、效率与安全的全面升级

在互联网的快速发展中&#xff0c;高性能、高效率和高安全性的网络服务成为了各大互联网基础设施提供商的核心追求。Cloudflare 作为全球领先的互联网安全和基础设施公司&#xff0c;近期做出了一个重大技术决策&#xff1a;弃用长期使用的 Nginx&#xff0c;转而采用其内部开发…...