探讨下你们都用树莓派做什么事?
破题
我基于树莓派做了一个扯淡的东西, 混了个华为杯国家级二等奖, 然后保研.
这个也可能是树莓派当前对于本科生最有用的一个事情了: 快速上手, 做出想做的东西. 然后知道自己真正需要什么.
而无需陷入大量的, 深入性的文档, 无穷无尽的debug中.
承题
树莓派早期的理念是, 提供一个廉价的计算机, 供学生使用. 在树莓派之前, 市面上几乎没有类似的设备, 拥有完善的文档, 入门教程, 以及庞大的用户群体形成的各种论坛与开源代码小项目.
树莓派火起来后, 它就几乎成了每个电子信息学生或者计算机学生都或多或少接触过的一款嵌入式电脑, 很多学校甚至早已引入树莓派作为教学用品. 供学生在上面折腾.
树莓派火起来后, 我国发挥我们的独特优势, 海量的各种”pi”也就如雨后春笋般的起来了. 到最后, 大家发现甚至可以没必要非得保持为 “pi” 的定义, 嵌入式开发板都可以起到相同的效果. 于是NUC, 单片机系统开发板, NPU集成, 用于AI开发的智能嵌入式平台也就开始此起彼伏.
起讲
树莓派拥有最庞大的开源代码项目规模, 与活跃的用户群体.
对于入门级萌新来说, 这个优点将会覆盖其大多数缺点. 这也就是为什么在本科的创新创业计划与竞赛中树莓派已经如此烂大街. 对于萌新来说, 一个开发板再强大, 但是不会用, 那么就没有任何用.
大部分学校并没有可传承的针对一些特定型号的板卡的兴趣小组, 基本上每个人都是独立, 自学, 然后进一步实现的.
此种基础导致了中国社会上, 最闲的群体, 最穷的群体, 最庞大的讨论群体, 选择了树莓派.
入手
由此, 导致了树莓派一出来之后, 经过一顿营销宣传, 就迅速占领了各种学校的项目.
因为它实在是很好用.
我选择这个专业(EE)是因为我一直对它感到兴趣, 高中就做过一个特斯拉线圈, 然后明白了当代电信产业已经非同古代, 光玩一玩简单的东西是没法生存的, 所以需要深入一些, 遂开始自学所谓高中老师眼中乱七八糟的非考纲知识.
我的高中比较烂, 没有什么OI竞赛之类的说法, 而我也只是一个水平一般的普通人, 自然和神们是不能一概而论的. 但是, 兴趣爱好确实能推动一个人去进行主观能动性的学习.
作为萌新, 陷入c/c++和Python的语法糖中不能自拔, 是一件很痛苦的事情. 非常容易将大多数三分热度的新手们劝退.
而树莓派, 没有复杂的uboot烧写与Linux引导问题, 不用自己编译裁剪内核, 不用先啃食大量枯燥无味的专业书籍,
你只需要把官方提供的img镜像烧到一张几十块钱的SD卡上, 然后插上去, 上电, 它就自己开机了.
虽然如此简单, 但是还是有很多人觉得很麻烦以至于不会操作……
这个低门槛优势, 我觉得是树莓派最大的优势.
起股
基于此, 我在大一, 也加入了树莓派胡搞大军.
大一的时候, 学长推荐我学单片机搞电赛, 但是实验室也有树莓派, 并且学长也是在用树莓派搞竞赛, 于是我分析了一下, 觉得同时学这两个的过程中大部分内容和目的是重合的, 于是决定使用树莓派.
那个时候我已经遥遥领先同龄人. 作为非常普通且穷鬼的一所211大学的电子信息工程专业的学生们, 大部分人都是小镇做题家靠卷文化课过来的, 这里也没有什么高中就竞赛的大佬. 一些来自山河四省的学生们, 甚至大一才第一次开始使用计算机, 不知道excel怎么批量填充.
而我, 大一的时候就能分清什么是电容电阻电感, 因为此, 我顺利进入实验室并且获得了我认为会改变我一生的资源.
我相信按照我国的教育制度, 大部分学校, 也是这种情况.
不是其他的开发板玩不转, 是因为作为新手, 大部分人也只知道树莓派.
随着时间的推移, 时代的发展, 现在这种情况正在改善
中股
我是19级的, 大一下, 疫情纪元开启. 一学期没去过学校.
开学了我就大二了, 凭借着焦虑与恐慌式自学搞会的知识, 电赛被学长带着混了个省奖, 开始有一定的信心, 决定自己尝试一下属于自己的项目.
找了几个和我一样混的混子, 就开始折腾了.
树莓派的优势在开发阶段体现的淋漓尽致, Python就可以直接操控GPIO使得不用陡峭的学习门槛, 就能快速实现我们要的一些功能.
最终, 我们使用树莓派, 和一个单片机, 几个WiFi模块, 4G模块, 做了个安保摄像头一样的东西.

其实就是堆的工作量比较大, 板子电路, 程序什么的都是自己写的. (程序是keil ,GCC+VSC之类的, 板子用的中国学生特供版授权 Altium Designer 设计的, 那个时候立创EDA并不好用)
有个锤子的核心技术. 当然, 本科生不可能有核心技术, 这种竞赛打的多了的人都知道, 大部分看着高大上的竞赛, 背后其实是一个研究生课题组的成果包装出来的.
而我们的项目, 是实打实的自己动手做出来的, 敝帚自珍, 虽然很低能, 但是是自己的宝贝疙瘩.
我们项目的核心理念就是, 使用更低成本的监控摄像头, 加上本地 (网络边缘) 上的分布式人工智能, 实现可大规模部署的边缘计算警报摄像头.
思路可能比较创新吧, 使用和普通摄像头价格差不多的硬件, 但是不会将所有录像都用以太网上传到服务器, 那样计算成本和存储成本太高了. 我们使用树莓派作为这个所谓的终端处理器, 去本地化检测是否有用户定义的事件发生, 仅当有事件发生时, 才上传关键数据.
从而方便大规模的部署与监控管理.
当时是21年, 这类产品还不是很多. 当然, 现在类似的东西多了, 我们当时其实也有找到一些正在卖的类似产品, 然后导致小组成员很焦虑………但是仔细想想, 我们的理念还是不太一样, 于是决定坚持继续做这个东西. 我们是独立想到这个点子之后才在淘宝上搜到类似的东西的.
要是思路不创新, 那也拿不了奖对吧.
肯定有人会站在自己的视角, 觉得我们做的东西是答辩, 是废物垃圾, 没有社会价值的玩意. 但是我对于这个事情的看法是:
- 我现在也觉得是答辩
- 但是我在此过程中玩的很开心, 还学到了东西, 对这个行业有了更清楚的认知
- 我的技术升级了
- 我们的项目被专家评委认可
这就够了, 对吧, 我就是一普通人, 又不是USTC少年班的神仙, 也不是清北大学的大佬, 要什么自行车?
都是混过来的, 我还算混的好的了.
按照我的价值观, 我这个至少比直接拿着往届项目套壳的, 要好很多. 有的一看就不是本科生级别的, 不过大家至少也是个成年人, 也搞不出来类似于”小学生肿瘤基因敲除实验”这种乐子. 大家都是混子, 不会相互为难的!
在此部分, 没有道理不讲一下我这个东西的细节, 毕竟这个问题的主题是探讨下你们都用树莓派做什么事. 但是这东西的文档有40多页, 这还是我们缩减后的结果……………我大概说一说吧.
竞赛要求: 我们走的中国电信企业赛道, 只有一个要求就是用一下他们的物联网云平台 (叫CTWing)
基本思路: 边缘化轻量计算, 对事件进行分类, 事件上报与核心信息转发, 非必要信息本地处理不留存 (节省网络带宽, 成本, 存储空间). 以及外接一大堆传感器凑数, 忽悠评委以为这是一个什么牛逼的东西.
热点: 楼道电瓶车检测与安全, 智慧城市, 物联网技术, 疫情
硬件部分: 一个树莓派, 负责本地图像与其他数据的汇总处理, 识别, 检测, 然后转发消息.
一个单片机, 挂了另一个摄像头 (两种摄像头, 意思是我们的这种设备是模块化的! 方便定制! 比如摄像头可以换成雷达或者红外摄像头对吧?)
摄像头在舵机上安着, 自己实现了目标跟随的功能等.
4G模块, WiFi模块, zigbee模块, 乱七八糟的各种通信.
软件部分: 树莓派跑了个烂大街的轻量版YOLO网络进行电瓶车, 人体识别之类的功能, 可以计数, 区域越界检测, 目标跟踪, 控制舵机实现跟踪之类的. 当时其实就有点烂大街了, 现在更烂大街.
单片机上, 基于中国电信给的代码上加了一些自己的传感器 (电赛项目废品回收来的, 我们很穷, 学校也穷, 一般都是自己捡垃圾东拼西凑来搞的) 之类的, 在RTOS上实现了4G入网与物联网云平台双向收发, 数据上报, 指令下达之类的, 传感器和控制器的驱动什么的都在此环节完成.
然后组网, 把认为是本地的设备通过WiFi等方式连到一起, 融合各种乱七八糟的数据 (视频, 温湿度…..)
网络: 用的MQTT和LWM2M协议与云平台沟通. 或者, 专业点的说法是, 南向通过MQTT等协议与边缘设施进行双工通信, 通过中国电信给的物联网云平台, 北向为用户绑定的公众号, 小程序, app进行事件消息数据转发与指令下达.
总之: 最后成功的实现了一个看着极其复杂, 充满朋克风格的所谓边缘计算智能摄像头, 并且按需使用了企业的平台. 相关功能都正常之后, 就开始写文档, 补觉, 准备期末考试.
暂无成品图片
树莓派的作用: 单片机显然带不动深度学习这种级别的, 轻量的也不行, 当时我们也不知道其他方案, 只知道个树莓派. 然后就是, 树莓派是所有环节中, 最轻松的一个, 不管是通过GPIO控制硬件, 还是在上面实现视觉算法或者网络通信.
至于价格, 当时树莓派4B一个400左右, 没现在这么高的溢价, 而且, 学校报销, 无所谓啦.
现在树莓派估计在学弟的手上继续发光发热, 直到有个马大哈不小心接GPIO给他烧了.
后股
这个项目结束之后 ,我们基于此, “继续打磨, 优化, 升级” 参加了一些其他的竞赛, 继续拿了一些奖.
到这个步骤, 我也不再是一个球都不懂, 只认识几个电容电阻的小白了,
基本上嵌入式相关的, 已经比较熟悉了, 毕竟嵌入式基本上知道RTOS, 控制外设驱动, 以及基本的信号处理, 网络基础, 就可以算是知道嵌入式是干嘛的了.
也是从这个时候开始, 我看穿了硬件的真实面目, 下定决心转算法或者软件研发!
主要是焊板子, 调试板子让人心累, 软件复制一百份和硬件复制一百份………
另外, 核心技术, 对于我们来说我感觉还是信号信息处理, 不然永远只能是一个码农, 在”暗”无天日的VSC内耕耘来去………
更重要的是, 我现在知道了更多的方案, 尤其是很多国产的方案, 长得漂亮, 还便宜, 企业听你是学生可能还打折.
这都得感谢雷蒙多和拜登的对华政策, 要不是他们, 我们都不敢相信我们能做到这么多.
现在中美天天搞电子竞技, 其实对于我国EECS行业是有利有弊, 有人因此失业, 有人因此抓住风口狠狠赚钱.
就和疫情一样, 作为学生的话, 有人在家里待一学期挂科挂完了, 有人竞赛专门做疫情相关的主题, 不用绞尽脑汁的构思想法, 还能获得政策倾斜的奖项.
要再搞个这个项目的重制版, 我有更多的方案, 更好的方案供我选择, 而不仅仅局限于一个树莓派.
但是, 假如有人是转行选手, 或者萌新, 问我要怎么入门, 我还是会建议你玩个树莓派先.
它不一定让你取得多么有用的成果, 但是绝对能带你从零基础到入门, 从无到有, 让你玩的热闹, 玩的开心.
当你买了一个或者捡到一个树莓派, 不知道该干什么的时候, 知乎B站CSDN, GitHub启动, 看一看就知道怎么玩了. 哪个垃圾佬入门嵌入式会刻意避开树莓派呢?
虽然知乎B站CSDN什么的被尊称为几大程序员厕所, 但是你指望一个新手去跳墙上网? 现实点! 入门没必要那么高的门槛, CSDN虽然烂, 但是入门够了.
而且由奢入俭难, 先适应了CSDN, 那么这位一定什么都能适应, 不挑食!
不挑食的程序员才是好程序员.
天天骂那些企业卡学历, 不会真正考察应聘者的能力的, 先自问一下, 我会由于知识来自于国外教材或者CSDN而对这些知识抱有偏见吗? 我做没做到动脑子独立思考, 验证知识的正确性?
只看最好质量的教材, 什么都是对的, 怎么会养成独立思考的好习惯?
就如同dev-c++对于c/c++语言的学习一样, 它可能不适合真正的项目或者大型的东西, 在vsc+一大堆插件+MinGW + git + cmake 面前就是个玩具.
但是作为入门的东西, 绝对是最合适的. 而且比什么都靠谱.
束股
所以,
我用树莓派做一些令自己开心的事情, 并尽量在此物件上面能获取到更多的知识与技术.
但是如果要正经做东西的话, 还是别用玩具级的东西了吧.
除非你要彻彻底底的贯彻落实 极 客 精 神 . 用树莓派完成了最有意思的创意小玩意, 那么也会令人刮目相看.
比如有老外用树莓派GPIO实现了一个调频FM发射机 ,并可以用收音机听到音乐.
如同那个谁, 用行星发动机放炮一样: “因为有趣”
