几个嵌入式项目供需要的同学参考

本人2020年本硕毕业于广东工业大学:CVTE许乔丹,牛客网高级专栏作者,牛客大学讲师,在2020届秋招共拿到珠海格力,云从科技,CVTE,小米,美的,华为的嵌入式offer,签约CVTE嵌入式岗位。
应直播后同学们的要求,整理了几个我做过的适合实验室环境下的嵌入式项目,第一次写项目介绍,仅供参考,写的不清楚的地方恳请反馈一下。有兴趣的项目可以好评跟帖后私聊相互交流,交流无偿,要源码或者手把手教学有偿。

附上本人的牛客专栏《直通嵌入式面试111道面试题解析_C/C++可参考》:https://blog.nowcoder.net/zhuanlan/3m2ONj, 可以在有限的秋招时间里为大家节省大量时间和精力,提高准备效率!!!

做项目的思路是:视频/书+开发板+百度

项目一:基于人脸属性识别的嵌入式电影推荐系统(研究生毕业设计)

1)情况:为解决“信息过载”问题,提出基于人脸属性识别的广告推荐系统。
2)目标:独立负责,摄像头捕捉人脸并预测年龄、性别,显示屏可输入用户职业,系统根据此三大信息推荐8部电影并在显示屏显示。

3)行动:搭建RK3399开发板开发环境,通过OpenCV获取摄像头图像,Dlib检测人脸,采用WRN神经网络预测年龄、性别,结合基于用户的协同过滤以及决策树模型进行电影推荐。使用PyQt5设计人机交互界面实现职业获取和电影信息显示。
4)成果:在RK3399开发板可实时获取被推荐人年龄、性别、职业,据此推荐8部电影并将其电影名字和海报图显示在屏幕上。

解析:
这是我研究生毕业设计,上面的介绍采用STAR法则,该法则适用于简历项目编写和面试时的项目介绍,是在简历中复制黏贴过来。采用RK3399开发板,搭配一个USB摄像头,可在人机交互界面选择自己的职业,并按下人机交互界面上的“start”按键,探测出出人脸,并进行年龄性别的预测,系统根据年龄、性别、职业三大信息,推荐出8部电影出来。
其中摄像头采用OpenCV的API函数可直接获取图像,采用Dlib库可以探测出人脸,采用宽残差神经网络可预测人脸的年龄性别,电影推荐采用MovieLens轻量级数据库,该数据集包含6040位样本用户对约4000部电影的近100万条评分以及每位用户的信息,电影推荐的思想是:首先,通过基于用户的协同过滤算法为6040位样本用户各自推荐出8部该用户可能喜欢的电影。接着,根据得到的被推荐人的年龄、性别、职业三大信息,在6040位样本用户里找出与被推荐人最接近的若干个用户组成相似用户群。将相似用户群所有样本用户已推荐的所有电影送入事先训练好的决策树模型,可进一步筛选出最可能是被推荐用户喜欢的8部电影。
大概的思想差不多这样子,需要的技术有Pyhon、开发板环境搭建,OpenCV和Dlib库的简单API函数调用,卷积神经网络(我只会嵌入式当时恶补了这个知识)、Python QT设计人机交互界面、网络爬虫爬取电影中文名和海报图(MovieLens数据集只有电影英文名)。如果对在嵌入式开发板实现人工智能算法的同学可以私聊我。
推荐人群:该项目的方向(嵌入式人工智能)适合研究生毕业课题(我做的深度还不够深,还有很多需要改善的)以及在学校是学习算法但毕业想往嵌入式方向靠拢的同学。

项目二:视频网络聊天工具(课外作品)

1)使用嵌入式linux6818开发板和PC机,基于QT实现一个仿QQ视频网络聊天工具。

2)独立负责,实现好友文字聊天,视频对接,文件传送,以及可修改密码,账号绑定和找回功能(QQ基本功能)。

3)QT界面设计,摄像头采集图像,制定数据传输和解析协议,采用TCP通讯协议,传输文件和文字,编程采用线程池技术,实现多线程,采用SqLite数据库,存储账号密码以及聊天记录。

4)实现了开发板与PC机之间,可进行仿QQ的聊天功能。

解析
没错,也是简历上复制下来的哈。这是我学习QT的时候自己摸索出来的小作品(放在简历最末尾凑数),使用的是一个叫做粤嵌的培训机构的6818开发板,当时是跟一个本科的师弟买的,咸鱼上面也有人卖,是一个很适合入门的开发板,当时看的QT视频我已经找不到了,不过网上一大堆学习资料,就差你去发现。开发板和电脑都要安装好QT5,我是看着视频,每教一个知识点,我就会构思我能做出什么项目,这个学习方法也推荐各位看学习视频的同学,比如视频里有教怎么通过网络编程发送文字和图片,怎么使用数据库增删改查,最终就很容易联想到做一个聊天工具,所使用的技术都是教程里教的,难度不高。
推荐人群:适合新手入门或者没项目的同学短时间内掌握。

项目三:可自定义IO端口数量的嵌入式软PLC控制系统及其设计方法(发明专利)

1)嵌入式软PLC是架构在嵌入式系统上的软PLC,在自动化领域采用基于嵌入式系统的软PLC来代替传统硬PLC已经成为一个趋势。

2)负责控制系统硬件电路图的设计和制作,参与软件代码编写。

3) 本系统分为核心板和外围板。核心板是STM32微处理器的最小系统,并将芯片引脚与外围板引脚连通,外围板包括输入光耦隔离电路及继电器输出电路。

4) 设计出64*64固定输入/输出触点控制系统,及可以灵活配置输入/输出端口的64触点系统,后续该课题共申请3个发明专利,1个实用新型专利(已授权),并成功运用在智能炒菜机上。

解析
这是我本科毕业设计以及研一阶段继续深入的课题,真正体现嵌入式软硬结合的特点,也是常见的项目,自己从0开始设计制作一个开发板,并烧录进代码,完成一整个系统的设计。该课题主要负责电路图设计和制作,因为只是两层板,难度不高,观看郭天祥的Altium Designer教程就可以,不过该课题不止我一人做,如果是完成整个系统,还需要软件代码编写,所以在此只是做个案例共参考,各位同学可以自己做一个stm32最小系统,关于电路图的设计可以参考正点原子stm32教程,我的最小系统就是参考他们的。做出一个最小系统后,可以淘宝买一些传感器,比如人体红外传感器,火焰传感器,温湿度传感器,都是非常容易用的,价格也便宜,这样子就可以自己从0搭建了一个简易的“智能报警系统”。同时有同学问我嵌入式怎么发专利容易,就是从0自己做出一个系统。
推荐人群:适合想学习或者入门硬件电路板设计搭配软件代码编写的同学。

项目四:全国大学生“恩智浦”杯智能汽车竞赛 (大学生竞赛/两届)

1)全国大学生五大电子竞赛之一,追逐组难度最高。制作两部可自动识别路径的智能车,并在规定区域实现自主超车。

2)任队长。主要负责软件代码和控制算法,参与硬件设计和机械方面的调整。

3)负责路径提取、舵机电机控制算法的设计和调试,并改用150度广角镜头,较上一年的代码适应性提高30%。独立调试分离式超声波模块,实现360度测距;使用NRF24L01无线模块实现双车通讯。改进速度PID,并结合阿克曼差速定理,速度可达2.4m/s,并成功完成3次追逐。

4)代表学校赴中南大学参加华南赛,荣获华南赛追逐组二等奖。
解析:这应该是做嵌入式的同学都听过或者参加甚至跟我一样参加了2年的大学生竞赛,该项目不适合现阶段去关注,因为没时间去参加了,之所以写在这里是因为有牛友同学让我讲一下该项目在面试的时候,如何讲解,供参加过的同学参考,没参加的同学可直接跳过。
我负责的是软件代码的编写,主要是路径提取、舵机和电机控制算法的设计和调试,相信其他做软件编写的同学也是大概分成这3部分,有一个是知识点和技巧是,大部分负责代码编写的同学,其实不懂摄像头如何获取图像以及无线模块通讯的原理,至少我本人是直接可以通过“野火”商家提供的模板代码,直接获得摄像头所采集的图像数据,其实是一个二位数组,也可以直接实现了无线模块之间的数据通信,但我并不知道其底层原理,所以技巧就是在介绍项目的时候直接和面试管说我做的是得到图像数据后如何去提取路径,无线模块可以通讯后,如何进行两辆车直接的通讯(我参加的是双车追逐组,第11届首次出现双车),直接承认不懂底层原理,将面试官关注点集中在我们的三大软件代码,讲我们懂的,避开不懂(问我摄像头驱动,无线通讯原理我就跪了)。
推荐人群:参加过该比赛的同学。

项目五:智能家居报警系统(新手请看)

解析:
这个是我临时构思的适合学习嵌入式Linux的同学做的项目,是项目三的解析里所述的简易的“智能报警系统”的升级版,简单说下思路,经过考虑技术路线后,确定了方案的可行性,同样采用6818开发板,同样是采用人体红外传感器,火焰传感器,温湿度传感器等传感器实现智能报警。都是在QT5开发环境下。
1)通过QT5设计一个人机交互界面,可进行一定程序的控制或者显示,如如按下按键,开启摄像头监控,或显示温度湿度,检测到人或者着火则打印一段话等,还有个常见的是利用网络编程,网上获取当前时间和当前地区的天气湿度。
2)可以接入USB摄像头,采集的图像显示在交互界面上。
3)我当时针对这几个简单的传感器,编写了驱动程序后直接进行内核裁剪,将驱动加入内核,不需要再次insmod进去,所以大家也可以照着这个思路做,难度不高的。
4)再拓展下去就可以使用QT数据库编程,纪录一些信息,比如有没有检测到人或着火,时间是多少之类的。
推荐人群:该项目适合正在入门嵌入式Linux的同学。

项目六:视频播放器(名字可以取好听的,在此就不做多余包装了)

1)基于嵌入式linux6818开发板,制作一个可联网音视频播放器。

2)独立负责,采用系统编程,使用mplayer播放视频。

3)滑动视频截取的缩略图,选择播放的视频,实现正常播放器的所有常见功能,并可以录制保存本地音视频加入播放列表。

解析:该项目应该可以找到源码,后续回学校后找到了再更新。
这个也是我学习Linux时,用上述说的6818开发板,看着我直播时推荐的那本《Linux环境编程图文指南》(买这个开发板的时候,师弟送我的,其实就是这个培训机构的书,真的很适合入门),也是利用我的学习方法,将书里所讲述的每个基本知识点,都思考怎么加入一个项目中,最终我这个项目里,基本包括了书中所有的进程间通讯方式或者线程同步方式等知识点。开发板移植安装好mplayer,我提前下载了5个mv,根据mplayer文档所示,有一行命令可以在视频里截取某一秒的画面共得到5张图片对应5个mv,也就是所谓的视频缩略图,将5个缩略图显示在显示屏的右边,当作是播放列表,支持上下滑动浏览播放列表,点击其中某个视频,即可播放,并实现了播放器常见的开始、停止、上下首、音量调节、进度调节、全屏、静音等功能。
推荐人群:该项目适合正在入门嵌入式Linux系统编程的同学。

#学习路径##书籍推荐#
全部评论
太强了!!师兄好,我是17级测控的你第六个项目代码能分享下吗,最近找工作没实习有点吃力(•̀へ •́ ╮ )谢谢1260925116@qq.com
2 回复 分享
发布于 2020-08-02 18:59
大佬,有偿求第一个资料及源码。
1 回复 分享
发布于 2023-02-22 17:16 湖北
大佬,有没有嵌入式学习路线哇,求分享一下
点赞 回复 分享
发布于 2020-07-18 14:51
大佬
点赞 回复 分享
发布于 2022-03-18 16:32
有偿求第六个项目的源码😭
点赞 回复 分享
发布于 2022-07-07 14:54
有偿求第二个项目
点赞 回复 分享
发布于 2022-10-18 18:41 湖北
您好,有偿求第六个项目
点赞 回复 分享
发布于 2023-02-25 22:25 河北
厉害的人
点赞 回复 分享
发布于 2023-07-21 10:49 上海
楼主,您好,项目二适合入门级新手的有详细解答吗,附上整个操作?**********
点赞 回复 分享
发布于 2023-08-08 11:27 广东
请问博主项目二可以分享嘛
点赞 回复 分享
发布于 2023-08-08 22:39 河南
有偿求项目二的源码,很急,感谢!!! **********
点赞 回复 分享
发布于 2023-08-17 14:38 浙江

相关推荐

头像
02-21 16:31
长沙理工大学
大家好,今天分享一个很贴合目前校招时间段的提问:Up你好,本人双非本科大四,软件工程专业。大学前两年因为感觉前端好学,岗位也多选择学习前端。但那时比较懒散,课也多,所以前端也没有学多好。后来互联网寒冬,觉得出去不好找工作。就在大三下开始准备考研,但在去年10月份放弃考研(因为家里的一些事故,一个半月没有复习考研),处理好后,剩70多天感觉考不上值得上的学校。所以干脆准备就业,但感觉前端这个方向特别凉,于是换成了Linux c++方向(为此拒绝了一个前端实习)10月底到现在复习了c语言,学习了C++语法,特性,包括STL这些。学习了Linux系统编程进程线程,网络编程tcp/udp,多路转接,l...
牛客230000345号:毕业入坑两年,提点参考的东西吧,建议边找边备研,学历才是第一生产力,后期如果你要职业发展,这是最基本的几个了,工作和晋升除了项目经验,不就是比的派个人学历、吹牛能力和一堆头衔了(晋升的话,派系很重要)。 工作方面,不了解服务端,但是你可以看招聘,其实相比来说qt在客户端和服务端都可以用到,而且跨平台兼容性好,而且qt不就是c+++吗(学好c++,用哪个框架都不头痛),qt不只是给你个UI界面,封装的很多东西都是可以借鉴的。看你想去哪个城市,现在长沙软件行情不好,真心建议没上岸可以去深圳看看,长沙这边工资对标深圳砍半(眼泪流下来),长沙不少大一点私企面试的也开始卷学历卷项目(双非泪奔),如果想去国企你要能吹当然也可以(其实国企也就那12%的公积金了,并不稳定,但是稳定穷是肯定的)。 想去好一点的,建议把基础打牢,学历一定要提高(长期发展一定要,国内还是不少地方学历论的),如果有实习期建议能参与公司项目就参与,不然只会被拷打,最好从项目或者demo里把设计模式、指针、特性、模板、多线程实现并发并行、通讯协议、数据库这些基本的学会一部分,建议再学学qml和Linux,最好学一点嵌入式(Linux用在嵌入式板挺多的),掌握一门脚本语言(Python,Python,Python)和git或者svn代码管理,没签合同(不是三方),你还是校招生,校招只有一次(当然也可以说是本科一次,硕士一次,博士一次),用了错过就没有了,好多公司最喜欢招应届生了,一张白纸(又便宜又容易被PUA)。 最后,其实纠结这么多,不如第一份工作就选你最喜欢的编程语言、框架和操作系统,反正都是牛马,也不一定只吃一家喂的草
点赞 评论 收藏
分享
03-01 14:10
门头沟学院 C++
本人intj,倾向于创新性和策划类工作26届一本软件工程目前进度:C++,qt和opengl学了一个月的样子,基本知识学得差不多了,但是学的都是很基础的东西,大概轮廓的样子,不是很多。目前打算找开源项目学习一下,准备再过半个月找相关实习。AIGC其实去年就在关注了,但是当时感觉资源很少,暂时搁浅。最近感觉相关资源多了很多。但是目前进度为0。目前观望的是图形视频生成,stablediffusion,midjourney等。(AI)产品经理,想过这方面,但是现在还不太了解这个职位,还有需要什么项目经验,而且听说很吃学历和实习经历。个人想法/纠结点:1.其实我对c++那方面不是很感兴趣,后续还要继续背八股和算法题,个人感觉是有点痛苦的。但其实我对高数,线代等学科分数都是90+,个人感觉还是可以,但是实践到代码(刷leetcode或者写项目等)上还是感觉有点难受的。本人耐心也不是很够,debug挺难受。(不过这个在学纯后端的时候比较明显,现在学qt方面好很多)2.沉没成本高。原计划打算3月中旬前开始找C++实习。计划是春招找一段实习,秋招找二段。如果我现在打算重新学AIGC这个领域预计会耗费我半个月~一个月的时间。也许会错过春招。3.个人觉得兴趣很重要。想看什么职位适合我,我也感兴趣,其实某种程度两者也是相辅相成的。自我评价,审美能力和创造创新能力和策划规划能力可能算我的优势吧。#计算机专业# #编程#  #计算机# #ai# #图形学# #如何一边实习一边秋招# #C# #无实习如何秋招上岸# #春招启动,你开始投递了吗?# #实习好累,可以辞职全力准备秋招吗# #牛客创作赏金赛# #ai智能作图# #牛客AI配图神器#
点赞 评论 收藏
分享
03-11 08:02
已编辑
西安电子科技大学 Python
查看19道真题和解析 软件开发笔面经
点赞 评论 收藏
分享
评论
52
347
分享

创作者周榜

更多
牛客网
牛客企业服务