被问到有没有内核开发经验_一个人就是一个开发团队!成电硬核毕业生自制迷你电脑走红!...

ee4ec1ac1c903368f743beceace5bd48.png

△小视频

近日,一段长3分多钟的小视频在B站突然爆红,不仅登上首页,获得超过200万的播放量,还被众多观众“膜拜”。有网友在评论区说:“其实这些东西吧,外行看起来很牛,但我这种内行看起来,还是很牛!”

打造这个AI小电视的超硬核UP主“稚晖君”本名彭志辉,是本硕均就读于电子科大的2018届毕业生,现为一名AI算法工程师。

932cfed7b2d47b5c19c64c8b8e38dc1d.png从草图到成品,全都自己做!这台AI小电视事实上是一台迷你小电脑。它不仅可以当语音助手,还能处理实时图像,甚至能当Web服务器……彭志辉自称“野生钢铁侠”,这台迷你电脑就像Tony Stark在山洞里打造钢铁侠战衣原型一样,从草图到成品,都是彭志辉自己动手完成的。“当小电脑成功开机的时候,真有一种钢铁侠冲出山洞的感觉。”彭志辉笑着告诉小编。在这个3分多钟的视频里,彭志辉快速展示了他历时3个月,打造这个迷你电脑的大致过程。先在纸上画草图。有了草图,第一步是制作电路板:用Altium Designer绘制PCB板,而是非常复杂的6层DDR高速板!设计完找厂家打样PCB和制造钢网,然后给PCB刷上焊锡膏,把芯片、电阻、电容等器件一个个贴上去,热风枪加热完成回流焊,电路板就大功告成啦!79c1dad18a79267415612e71f9cffb1e.png至于外壳,彭志辉用Rhinoceros绘制迷你电脑外壳的3D模型,再用自己的3D打印机打印出来,然后利用雕刻机用亚克力制作面板。加上买到的小巧液晶屏幕,迷你电脑的硬件部分制作完成啦!硬件部分的制作仅仅只是一个开始,接下来才是让人感到“头秃”的软件开发环节。由于这是一块自己独立开发的电脑主板,彭志辉需要从底层开发软件,包括uboot/kernel配置、设备驱动、应用层App开发、算法模型部署等,都是他用C/C++/Python/JAVA/Shell一行行敲出的代码。336a838423dcefc518430b569acf0c13.png最终,内核剪裁移植完成,彭志辉给迷你电脑装上了Linux的Xfce桌面环境,如果不介意屏幕太小,连接鼠标操作是没有问题的,当然也能在远程电脑主机上通过VNC、RDP远程访问控制迷你电脑。有了Linux,再把TensorFlow装上去,接上USB-Type C扩展的摄像头实现图像识别,又或是利用内置的麦克风实现语音识别,还能把迷你电脑当成自己博客的web服务器。d38cc1209eb7ba4b5b7bef43481658ef.png03496da138d9fa2a50431eaf6947677b.png去隔壁学院蹭工具,还“蹭”到了女朋友!彭志辉本科和研究生分别就读于生命科学与技术学院和信息与通信工程学院。读书时,他参加了各类比赛,获得从校级到国际级大大小小将近40个奖项,且大部分是一等奖。回忆起在成电的学习时光,彭志辉表示:“7年的大学时光,我在母校还是有很多难忘的事情。比如我在学校的时候是著名的‘电赛狂魔’,本科期间基本上只要有比赛我就会参加(当然啦那时候我还很菜)。由于本科的时候咱们生命学院还没有成立科协,当时的微固学院跟我们很近,所以那时候经常‘厚脸皮’去那边的科协蹭工具,后来‘蹭’到一个女朋友。”在成电七年的时间里,让彭志辉的知识、能力、视野得到了很大提升。以这次的迷你为例,据彭志辉自己不完全统计,用到了电子基础、电子元器件选型、电路原理图设计、高速电路PCB设计、电子元器件焊接技术、电路板调试、启动程序UBOOT裁剪移植、linux内核裁剪移植、文件系统、底层驱动程序(C语言,ARM架构汇编,linux内核架构)、上层应用程序(C++、Qt、JAVA、Python等,深度学习,机器学习,OpenCV,神经网络,自然语言处理)、静态博客服务器搭建、高等数学、线性代数、概率论、离散数学、3D建模、3D打印、雕刻机、视频拍摄后期制作、防脱发技术(划重点!!)等几十种技能。63d5a3069ee0b1ac0ac7a645b6dce6b1.png“在母校的几年学习经历成就了现在的我”,彭志辉说道,“我觉得最大的收获就是学会了自我管理,不论是学习方面还是生活方面。知识的积累当然很重要,但是我觉得相比于学校授之以我们的‘鱼’,能够系统、高效地学习更多知识的能力才是大学里更应该学习掌握的。另外,成电给了我们一个很好的环境,在这里只要你有想法、够努力,都能获取到你想要的资源和平台。”不断学习:热爱与方法都很重要问到兴趣爱好方面,彭志辉表示他兴趣点非常多,喜欢弹吉他喜欢摄影,喜欢打乒乓球(甚至为此造了一个陪他打球的机器人);而且虽然目前主业是做深度学习算法方向偏软件,但是他业余时间最大的乐趣就是宅在家里折腾硬件。△短视频:彭志辉制作的独轮机器人△短视频:彭志辉制作的智能语音助手对于迷你电脑这个项目的起因,彭志辉表示也是由于不满意于目前市面上能买到的小型个人服务器,所以就自己动手DIY了一个。另外一个原因是,他个人比较喜欢在积累了一定程度的新知识和技能之后,构思一个项目把这些知识都用上并呈现出来。“一方面通过这种方式可以及时巩固学习效果,另一方面‘学以致用’才是个人技术进步的永恒归宿。”参加工作后,彭志辉也坚持学习新的知识,丰富自身知识体系。他说:“未来是终身学习的时代,不存在大学毕业之后就不学习了。做技术一定不要只关注自己眼前的一亩三分地,否则很难有好果子吃,比如拿嵌入式开发来说,除了传统的嵌入式软件技术,还可以去学RTOS,去学RISC-V,去学异构……”彭志辉也在提升自我的过程中探索适合自己的学习方法,“有一种学习方法叫Problem-Based learning”,他解释说,“就是以问题为导向的学习,通过自学寻找解决问题的方法和问题的答案,这种方法属于自顶向下的路线;而我们在学校的基础和专业课程中逐渐构建知识体系则是属于自底向上。两种方式可以同时尝试,找到适合你的汇合点。”当工作就是自己的兴趣爱好时,彭志辉认为自己是幸运的:“我心中的理想工作状态就是:工作是源于自己的意愿,每天做自己喜欢的事情并不断积累经验,在适当的压力下积极创新,收获自身成长的同时收获报酬。简单来说,就是当个人爱好、公司价值、与时代趋势相统一。我认为目前正在朝着这个方向努力,虽然还有很多东西要学习。”59ac98a3b2f33783070d5424321ad6c7.png作为一名从硬件转到算法的工程师,其中的缘由彭志辉解释说:“当工程能力达到一定程度,就会为了解决工程问题去学习算法。写代码是将先进生产力落地于现实应用的最快捷的方式之一。而算法,就是代码的灵魂。”彭志辉自诩“野生钢铁侠”,但他憧憬的并非是电影里的钢铁侠,而是钢铁侠在现实世界的原型Elon Mask。“我希望能成为像他一样的怀揣着冒险精神做自己认为正确的事情的人,既争朝夕,也争未来。”1035e80b301bce8ec2db5d83e247f2dc.pnge42278a2a9c5a8f8ca9a3226c348c754.png

文:校新闻中心 卿晗

学生记者团 张羽扬

部分内容来源于微信公众号“量子位”

推荐阅读


◇@贵州大学,我们都是收信人!好青年,共担当!

◇电子科技大学2020年硕士研究生招生复试基本分数线公布!

◇重要!2020年研考国家线和复试安排公布!

◇想念成电,就把家里的春天寄给TA!

◇静待再相逢|这里有我们寒假离校前的成电记忆

◇这门漂洋过海的网课,让留学生们刷爆“玫瑰”!

d4042f7b3698246d00f540ffb7d0ca8c.png

c9770c34162dbdbe415a2b74d9e443b1.png你点的每个赞,我都认真当成了喜欢!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/365623.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用英特尔性能计数器调整垃圾收集

介绍 我不得不承认我很震惊。 确实,当我意识到这个出现的日历帖子将涉及垃圾收集时,我感到非常震惊。 GC的主题引起了Java倡导者和那些认为内存管理应该是手动的人的热情。 撰写了许多文章,内容涉及看起来奇怪的命令行参数中的细微变化&#…

matlab2010a连接mysql_MATLAB2010a+OpenCV2.3.1+VS2010运行TLD

出现matlab不显示C编译器的原因主要还是当前Matlab版本相对于VS来说不够新,比如14版的肯定支持10的VS。 本文引用地址: http://blog.csdn.net/shanpohe/article/details/7596401 http://blog.sina.com.cn/s/blog_adfd55190101ejvr.html TLD(Tracking Lea…

理解总结篇—List、Set、Map

List是存储对象的容器&#xff0c;可以存储任意类型的对象且长度可变&#xff0c;List的存储对象是有顺序的&#xff0c;可重复的。 <1> List的接口框架 ArrayList实现类通过数组实现&#xff0c;在向集合中增加或删除时&#xff0c;需要对集合进行增容和拷贝&#xff0c…

SpringBoot+Redis使用jedis实现了对Redis基本类型操作超全工具类

这编文章主要介绍了springboot整合redis&#xff0c;使用jedis实现了对Redis基本类型操作&#xff0c;一些redis的常用命令总结到了一个公共的工具类中,其中使用了fastjson作为了序列化工具。 注&#xff1a;使用了 jdk 1.8 新特性 &#xff0c;jdk版本需要>1.8 一.添加mave…

更改span标签样式_CSS 内嵌样式

前面一节我们讲了行内样式&#xff0c;但是行内样式的缺点就是样式不能重用。例如当有好多个 标签&#xff0c;我们希望所有的 标签的样式都一致&#xff0c;那么需要在每个标签中都写一遍&#xff0c;这么会很麻烦&#xff0c;也会增加很多代码。那么为了解决这个问题&#…

js 函数节流

//es6语法export function debounce(func, delay) {let timer//返回一个函数&#xff0c;并拿到参数return function (...args) {if (timer) {clearTimeout(timer)}timer setTimeout(() > {func.apply(this, args)}, delay)} } //简单实现var debounce function(idle, act…

mysql 6安装当前密码_MySQL8.0 安装踩坑指南

就在昨天上午&#xff0c;刚为云服务器安装好Apache2.4.33和PHP7.2.4环境&#xff0c;准备再来一个最新的MySQL5.7.22。寻找5.7版本的rpm包时下到mysql80xxx.rpm&#xff0c;看人家的教程是mysql57&#xff0c;难道80是MySQL出出…出了8版&#xff0c;一搜新闻2个小时前MySQL发…

如何用Java编写最快的表达式评估器之一

当然&#xff0c;标题有点吸引人&#xff0c;但确实如此&#xff08;您当然不相信自己没有伪造自己的基准&#xff0c;但这是另一回事了&#xff09;。 因此&#xff0c;上周我正在寻找一个小型且可用的库来评估数学表达式。 我几乎直接偶然发现了这个stackoverflow帖子 。 推…

Elasticsearch环境搭建和介绍(Windows)

一、Elasticsearch介绍和安装 1.1 介绍 Elastic Elastic官网&#xff1a;https://www.elastic.co/cn/ Elastic有一条完整的产品线&#xff1a;Elasticsearch、Kibana、Logstash等&#xff0c;前面说的三个就是大家常说的ELK技术栈。 Elasticsearch Elasticsearch官网&#xff1…

python 银行业务系统程序编程写_python多线程实现代码(模拟银行服务操作流程)

1.模拟银行服务完成程序代码目前&#xff0c;在以银行营业大厅为代表的窗口行业中大量使用排队(叫号)系统&#xff0c;该系统完全模拟了人群排队全过程&#xff0c;通过取票进队、排队等待、叫号服务等功能&#xff0c;代替了人们站队的辛苦。排队叫号软件的具体操作流程为&…

vue 新版本 webpack 代理 跨域设置

旧版本中&#xff1a;dev-server.js 这段去掉 var apiRoutes express.Router() //getList apiRoutes.get(/getDiscList, function (req, res) {var url https://c.y.qq.com/splcloud/fcgi-bin/fcg_get_diss_by_tag.fcgaxios.get(url, {headers: {referer: https://c.y.qq.com…

人月神话(2)

我不知道为什么作者要拿外科医生举例子&#xff0c;在我眼里足球队更合适&#xff0c;或者说更贴近生活&#xff0c;让人们更容易理解。人的专业水平&#xff0c;在刚开始其实没什么可比性&#xff0c;试问&#xff1a;一个有小学学历的人和一个有初中学历的人在大公司招聘时有…

mysql查询出过去一个月_Mysql查询今天、昨天、7天、近30天、本月、上一月 数据...

今天select * from 表名 where to_days(时间字段名) to_days(now());昨天SELECT * FROM 表名 WHERE TO_DAYS( NOW( ) ) - TO_DAYS( 时间字段名) < 17天SELECT * FROM 表名 where DATE_SUB(CURDATE(), INTERVAL 7 DAY) < date(时间字段名)近30天SELECT * FROM 表名 where…

Jar Hell变得轻松–用jHades揭秘classpath

Java开发人员将不得不面对的最困难的问题是类路径错误&#xff1a; ClassNotFoundException &#xff0c; NoClassDefFoundError &#xff0c;Jar Hell&#xff0c; Xerces Hell和company。 在本文中&#xff0c;我们将探究这些问题的根本原因&#xff0c;并了解最小的工具&am…

图像处理中常见的时域与频域区别与关系

本文纯为转载只做个人学习记录用&#xff0c;请自动点击链接到作者原文&#xff1a;https://blog.csdn.net/samkieth/article/details/49561539 一、什么是时域 时域是描述数学函数或物理信号对时间的关系。例如一个信号的时域波形可以表达信号随着时间的变化。 二、什么是频域…

程序控制发送文件到邮箱_Kindle电子邮箱推送

Kindle 推送支持的格式目前 Kindle 推送仅支持以下几种格式。需要注意的是&#xff0c;AZW 和 AZW3 是两种不同的格式&#xff0c;虽然这两种格式 Kindle 设备都支持阅读&#xff0c;但是亚马逊的个人文档服务支持推送 AZW 但是不支持 AZW3。Kindle 格式 (.mobi 或 .azw) * 推荐…

[USACO06JAN] 牛的舞会 The Cow Prom

题目描述 The N (2 < N < 10,000) cows are so excited: its prom night! They are dressed in their finest gowns, complete with corsages and new shoes. They know that tonight they will each try to perform the Round Dance. Only cows can perform the Round D…

前端js 实现文件下载

https://www.zhangxinxu.com/wordpress/2017/07/js-text-string-download-as-html-json-file/ 侵删 1.H5 download属性 function downFile(content, filename) {// 创建隐藏的可下载链接var eleLink document.createElement(a);eleLink.download filename;eleLink.style.disp…

mysql的英文字母_MySQL中查询的有关英文字母大小写问题的分析

mysql数据库在做查询时候&#xff0c;有时候是英文字母大小写敏感的&#xff0c;有时候又不是的&#xff0c;主要是由mysql的字符校验规则的设置决定的&#xff0c;通常默认是不支持的大小写字母敏感的。1. 什么是字符集和校验规则&#xff1f;字符集是一套符号和编码。校对规则…

JDK8 lambda的会话指南–术语表

上次出现…我写了一篇与JDK8为我们提供的新方法有关的文章。 最令我兴奋的功能是lambda。 我必须承认&#xff0c;在即将成为浪子的第一年&#xff08;在此期间&#xff0c;我使用C&#xff03;开发了该产品&#xff09;&#xff0c;我喜欢LINQ和它可以做的漂亮&#xff0c;优雅…