2023年“兆易创新杯”第十八届中国研究生电子设计竞赛有感

本文主要是介绍2023年“兆易创新杯”第十八届中国研究生电子设计竞赛有感,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

今年的电赛给我的感觉是时间真的紧张,可能是因为去年有疫情原因影响所以能准备的时间到七月份,今年不到月底就要全部出成品。我们团队一直在自研一款增强现实眼镜,从硬件设计到软件实现全部由我和另外两个小伙伴一起完成,所以就把我们做出来的原型机的一部分拿出来改了改参赛了。

在面对如地震、飓风、洪水、火灾等突发自然灾害和事故时,光波导显示技术可以提供实时的信息和增强的感知,帮助救援人员更有效地响应紧急情况。基于增强现实的应急救援多功能头盔是一项具有挑战性的创新项目。它融合了头盔结构设计、应急救援功能的设计与实现,以及增强显示功能的设计和制作,我们的项目是《基于AR光波导显示的应急救援多功能头盔》。
在这里插入图片描述

文章目录

    • 一、作品原理及创新点
    • 二、结构介绍
      • 1、双目相机和imu实现多模态融合
      • 2、气体检测模块
      • 3、单目摄像头
      • 4、测温热像模组
    • 三、功能演示
      • 1、UI界面
      • 2、毒气检测
      • 3、感知定位功能
      • 4、红外显示功能
      • 4、视频录制功能
      • 5、深度解算功能
      • 6、增强现实功能
    • 四、总结

一、作品原理及创新点

本项目的难点在于头盔结构设计创新和加工、 应急救援功能的设计与实现、增强显示功能的设计和制作。项目的创新之处在于用场景、硬件结构和软件系统方面。应用场景创新首次将增强现实头盔应用于应急救援,并根据实际需求进行优化。硬件结构创新采用多模态融合设计,将多种传感器集成到头盔中,实现气体检测、红外显示等功能,提供了位姿精度更高、环境适应性更强、动态性能更稳定,成本更低的多模态硬件解决方案。软件系统创新涉及双目相机和IMU多模态融合SLAM技术、三维重建、增强现实显示、视频录制和手势识别等功能的设计与实现。
在这里插入图片描述

二、结构介绍

1、双目相机和imu实现多模态融合

我们采用两个全局快门相机和一块IMU,IMU型号:ICM-20602进行多模态融合,通过ISP 桥接芯片进行时间同步和数据传输,输出到USB,以此整合为一个双目视觉惯性模组。

2、气体检测模块

SHT35传感器低功耗、长期稳定,无需频繁校准。SHT35传感器在应急救援中可提供快速、准确、可靠温湿度测量结果
SGP30气体传感器检测有害气体

SGP30气体传感器是一款单一芯片上具有多个传感元件的金属氧化物室内气体传感器,能够快速响应时间,能够在短时间内提供准确的测量结果。
MQ-9气体传感器所使用的气敏材料是在清洁空气中电导率较低的二氧化锡(SnO2)。
MPU6050姿态传感器是一种用于测量物体姿态的传感器,它可以检测物体的加速度和角速度,并计算出物体的方向和角度。

3、单目摄像头

DF100-720P型号的单目摄像头。该摄像头具有1/4英寸的CMOS传感器,像素尺寸为3um*3um,支持高清100万像素的工业级图像采集。

4、测温热像模组

Xmodule 系列T5-612-68非制冷测温热像模组,该模组是基于陶瓷封装非制冷氧化钒红外探测器开发的一款高性能红外热成像产品,该产品采用并行数字接口输出,控制接口丰富,可适配接入各种智能处理平台,具备高性能、低功耗、体积小、易于开发集成的特点,能够满足各类红外测温应用的二次开发需求。

三、功能演示

1、UI界面

首先进入系统,这是我们设计的UI界面,光波导会显示应急救援系统,提供用户信息,通过光学系统将虚拟信息叠加在现实世界中。

2、毒气检测

可以检测一氧化碳、二氧化碳、甲醛、甲烷和天然气气体浓度,当传感器所处环境中存在可燃气体时,传感器的电导率随空气中可燃气体浓度的增加而增大,从而会在系统中报警,保证用户安全。

3、感知定位功能

检测加速度和减速度。通过模拟不同的运动场景,如匀速、加速和减速等,生成相应的加速度和角 速度数据,并
输入到检测系统中进行实时监测和分析。可以包括不同方向上的加速度和角速度变化,以验证系统对于不同运动状态的检测能力。
在这里插入图片描述

4、红外显示功能

能够提供更远的探测范围,有助于救援人员在夜间或缺乏光源的场景下检测生命体迹,为救援行动提供更好的支持。

手势识别功能能够帮助佩戴者通过手势操作执行特定的程序,解放了佩戴者的双手,使其能够在需要保持双手自由的情况下进行操作,提高了操作的便利性和灵活性。

4、视频录制功能

能够帮助救援人员在救援过程中记录自己的行动过程。这样,一旦离开灾难现场,他们可以重新观察录制的视频,
以便回顾并注意到之前可能未注意到的细节。这对于总结经验教训、提高救援效率以及进行后续分析和讨论非常有帮助。通过录制整个过程,救援人员可以更好地评估自己的行动和决策,并进行必要的改进。

5、深度解算功能

可输出点云图和深度图,并保存点云信息,帮助用户进行场景重建。

6、增强现实功能

所有功能通过光波导材料叠加到现实场景,检测场景中的最佳平面与渲染虚拟模型,给用户带来身临其境的视觉体验。

import cv2
import numpy as np
import serial
import queue
import threading
import mediapipe as mp
import time
#0是单目相机,1是计算机自带相机,2是imu相机,3是红外相机
def videocapture():cap = cv2.VideoCapture(1)  # 生成读取摄像头对象width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))  # 获取视频的宽度height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))  # 获取视频的高度fps = cap.get(cv2.CAP_PROP_FPS)  # 获取视频的帧率fourcc = int(cap.get(cv2.CAP_PROP_FOURCC))  # 视频的编码# 定义视频对象输出writer = cv2.VideoWriter("video_result.mp4", fourcc, fps, (width, height))while cap.isOpened():ret, frame = cap.read()  # 读取摄像头画面# frame = cv2.flip(frame, 1)  # 画面反转cv2.imshow('video', frame)  # 显示画面key = cv2.waitKey(24)writer.write(frame)  # 视频保存# 按Q退出if key == 27:breakcap.release()  # 释放摄像头def show_image():path='hollo_world.png'cv2.namedWindow('camera', cv2.WND_PROP_FULLSCREEN)  # 窗口全屏cv2.setWindowProperty('camera', cv2.WND_PROP_FULLSCREEN, cv2.WINDOW_FULLSCREEN)  # 窗口全屏image=cv2.imread(path, cv2.IMREAD_COLOR)# image = np.zeros((1920, 1080, 3))while True:cv2.imshow('camera', image)key = cv2.waitKey(24)if key == 27:breakdef show_gas():Q = queue.Queue(-1)ser = serial.Serial()def get_gastxt():global flagflag = Trueser.port = 'COM3'ser.baudrate = 115200ser.open()while True:if flag==False:breakdata_all = ''  # 增加气体显示for i in range(7):data = ser.readline().decode('utf-8')data_all = data_all + dataprint(data_all)Q.put(data_all)def show_gastxt():global data_allglobal flagdata_all = ''cv2.namedWindow('camera', cv2.WND_PROP_FULLSCREEN)  # 窗口全屏cv2.setWindowProperty('camera', cv2.WND_PROP_FULLSCREEN, cv2.WINDOW_FULLSCREEN)  # 窗口全屏while True:image = np.zeros((1920, 1080, 3))try:_data_all = Q.get_nowait()except:passelse:data_all = _data_allif data_all:y0, dy = 90, 90for i, txt in enumerate(data_all.split('\n')):y = y0 + i * dycv2.putText(image, txt, (20, y), cv2.FONT_HERSHEY_SIMPLEX, fontScale=1.2, color=(0, 255, 0),thickness=3)# 显示帧cv2.imshow('camera', image)key = cv2.waitKey(24)if key == 27:flag=Falsebreakt1 = threading.Thread(target=get_gastxt)t2 = threading.Thread(target=show_gastxt)t1.start()t2.start()t1.join()t2.join()def show_infared():cap0 = cv2.VideoCapture(0)  # 0为电脑内置摄像头# cap0.set(cv2.CAP_PROP_FRAME_WIDTH, 1920)  # 设置摄像头图像宽度# cap0.set(cv2.CAP_PROP_FRAME_HEIGHT, 1080)  # 设置摄像头图像高度cap0.set(cv2.CAP_PROP_BUFFERSIZE, 1)while (True):ret, frame0 = cap0.read()  # 摄像头读取,ret为是否成功打开摄像头,true,false。 frame为视频的每一帧图像# frame0 = cv2.flip(frame0, 1)#画面反转# #将绿色蓝色通道设置为0# frame0[:, :, 0] = 0# frame0[:, :, 1] = 0# frame0[frame0 < 80] = 0#cv2.namedWindow('camera', cv2.WND_PROP_FULLSCREEN)  # 窗口全屏cv2.setWindowProperty('camera', cv2.WND_PROP_FULLSCREEN, cv2.WINDOW_FULLSCREEN)  # 窗口全屏cv2.imshow("camera", frame0)c = cv2.waitKey(10)if c == 27:breakcap0.release()  # 释放摄像头
#1是双目0是电脑2是单目,3是红外
def mphands():cap = cv2.VideoCapture(1)  # OpenCV摄像头调用:0=内置摄像头(笔记本)   1=USB摄像头-1  2=USB摄像头-2cap.set(cv2.CAP_PROP_BUFFERSIZE, 1)# 定义并引用mediapipe中的hands模块mpHands = mp.solutions.handshands = mpHands.Hands()mpDraw = mp.solutions.drawing_utils# 帧率时间计算pTime = 0cTime = 0while True:success, img = cap.read()# img = cv2.flip(img, 1)  # 画面反转imgRGB = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)  # cv2图像初始化results = hands.process(imgRGB)# print(results.multi_hand_landmarks)image0 = np.zeros((1920, 1080, 3))if results.multi_hand_landmarks:for handLms in results.multi_hand_landmarks:# 绘制手部特征点:mpDraw.draw_landmarks(image0, handLms, mpHands.HAND_CONNECTIONS)'''''视频FPS计算'''cTime = time.time()fps = 1 / (cTime - pTime)pTime = cTimecv2.putText(image0, 'F P S : '+str(int(fps)), (10, 70), cv2.FONT_HERSHEY_PLAIN, 3,(255, 0, 255), 3)  # FPS的字号,颜色等设置cv2.namedWindow('HandsImage', cv2.WND_PROP_FULLSCREEN)  # 窗口全屏cv2.setWindowProperty('HandsImage', cv2.WND_PROP_FULLSCREEN, cv2.WINDOW_FULLSCREEN)  # 窗口全屏cv2.imshow("HandsImage",image0)  # CV2窗体c = cv2.waitKey(10)if c == 27:breakcap.release()  # 释放摄像头if __name__ == '__main__':# videocapture()# show_image()# show_gas()#  show_infared()#mphands()

四、总结

这次从硬件到软件都是我们自己设计的,硬件的元器件虽然使用一些现成的,不过根据我们需要的功能又做以改进,从整个原型机的创作周期来讲真的是遇到了很多很多困难,不管对外形还是功能都在不断的改稿,一直改进我们的功能,最后的原型机其实也非常简陋,实现的功能也没有完全达到我们预期的全部,不过这个过程我们收获的更多,下一步对标Vison Pro,期待我们的新作品!加油!
在这里插入图片描述

这篇关于2023年“兆易创新杯”第十八届中国研究生电子设计竞赛有感的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/300779

相关文章

五大特性引领创新! 深度操作系统 deepin 25 Preview预览版发布

《五大特性引领创新!深度操作系统deepin25Preview预览版发布》今日,深度操作系统正式推出deepin25Preview版本,该版本集成了五大核心特性:磐石系统、全新DDE、Tr... 深度操作系统今日发布了 deepin 25 Preview,新版本囊括五大特性:磐石系统、全新 DDE、Tree

跨国公司撤出在华研发中心的启示:中国IT产业的挑战与机遇

近日,IBM中国宣布撤出在华的两大研发中心,这一决定在IT行业引发了广泛的讨论和关注。跨国公司在华研发中心的撤出,不仅对众多IT从业者的职业发展带来了直接的冲击,也引发了人们对全球化背景下中国IT产业竞争力和未来发展方向的深思。面对这一突如其来的变化,我们应如何看待跨国公司的决策?中国IT人才又该如何应对?中国IT产业将何去何从?本文将围绕这些问题展开探讨。 跨国公司撤出的背景与

从戴尔公司中国大饭店DTF大会,看科技外企如何在中国市场发展

【科技明说 | 科技热点关注】 2024戴尔科技峰会在8月如期举行,虽然因事未能抵达现场参加,我只是观看了网上在线直播,也未能采访到DTF现场重要与会者,但是通过数十年对戴尔的跟踪与观察,我觉得2024戴尔科技峰会给业界传递了6大重要信号。不妨简单聊聊:从戴尔公司中国大饭店DTF大会,看科技外企如何在中国市场发展? 1)退出中国的谣言不攻自破。 之前有不良媒体宣扬戴尔将退出中国的谣言,随着2

CSP 2023 提高级第一轮 CSP-S 2023初试题 完善程序第二题解析 未完

一、题目阅读 (最大值之和)给定整数序列 a0,⋯,an−1,求该序列所有非空连续子序列的最大值之和。上述参数满足 1≤n≤105 和 1≤ai≤108。 一个序列的非空连续子序列可以用两个下标 ll 和 rr(其中0≤l≤r<n0≤l≤r<n)表示,对应的序列为 al,al+1,⋯,ar​。两个非空连续子序列不同,当且仅当下标不同。 例如,当原序列为 [1,2,1,2] 时,要计算子序列 [

三相直流无刷电机(BLDC)控制算法实现:BLDC有感启动算法思路分析

一枚从事路径规划算法、运动控制算法、BLDC/FOC电机控制算法、工控、物联网工程师,爱吃土豆。如有需要技术交流或者需要方案帮助、需求:以下为联系方式—V 方案1:通过霍尔传感器IO中断触发换相 1.1 整体执行思路 霍尔传感器U、V、W三相通过IO+EXIT中断的方式进行霍尔传感器数据的读取。将IO口配置为上升沿+下降沿中断触发的方式。当霍尔传感器信号发生发生信号的变化就会触发中断在中断

每日一题|牛客竞赛|四舍五入|字符串+贪心+模拟

每日一题|四舍五入 四舍五入 心有猛虎,细嗅蔷薇。你好朋友,这里是锅巴的C\C++学习笔记,常言道,不积跬步无以至千里,希望有朝一日我们积累的滴水可以击穿顽石。 四舍五入 题目: 牛牛发明了一种新的四舍五入应用于整数,对个位四舍五入,规则如下 12345->12350 12399->12400 输入描述: 输入一个整数n(0<=n<=109 ) 输出描述: 输出一个整数

HNU-2023电路与电子学-实验3

写在前面: 一、实验目的 1.了解简易模型机的内部结构和工作原理。 2.分析模型机的功能,设计 8 重 3-1 多路复用器。 3.分析模型机的功能,设计 8 重 2-1 多路复用器。 4.分析模型机的工作原理,设计模型机控制信号产生逻辑。 二、实验内容 1.用 VERILOG 语言设计模型机的 8 重 3-1 多路复用器; 2.用 VERILOG 语言设计模型机的 8 重 2-1 多

秋夜思故人有感

秋夜思故人有感 西楼月影碎,轩窗烛泪灰。门前小犬吠,疑是故人归。

2024年AMC10美国数学竞赛倒计时两个月:吃透1250道真题和知识点(持续)

根据通知,2024年AMC10美国数学竞赛的报名还有两周,正式比赛还有两个月就要开始了。计划参赛的孩子们要记好时间,认真备考,最后冲刺再提高成绩。 那么如何备考2024年AMC10美国数学竞赛呢?做真题,吃透真题和背后的知识点是备考AMC8、AMC10有效的方法之一。通过做真题,可以帮助孩子找到真实竞赛的感觉,而且更加贴近比赛的内容,可以通过真题查漏补缺,更有针对性的补齐知识的短板。

研究生生涯中一些比较重要的网址

Mali GPU相关: 1.http://malideveloper.arm.com/resources/sdks/opengl-es-sdk-for-linux/ 2.http://malideveloper.arm.com/resources/tools/arm-development-studio-5/ 3.https://www.khronos.org/opengles/sdk/do