综述

                                                                                          by 胖亲 on 2019.06.14

树莓派是世界上最小的台式机,系统基于Linux,由Eben·Upton在2012年3月发行,其特点是集成了PC和单片机的功能于一体。在本篇综述中,首先讨论树莓派的基本功能及其实现,之后基于项目加深对树莓派的理解。

基本功能

我们认为,树莓派作为PC的最基本功能是联网,作为单片机的最基本功能是编写程序和连接并控制输入输出设备。

- 联网

联网后,既可以通过Google等浏览器访问互联网,也可以通过linux终端下载互联网上的资源。无论是软件包的更新还是python中库的安装,都离不开联网,这是树莓派作为小型台式机的基本功能之一。以下为联网的实现。

1. 无线

初次启动后,将键盘和显示器连接到树莓派上,初始化系统后配置wifi。方便起见,我连接的是自己的手机热点,这样只要树莓派在热点覆盖的范围内启动,便自动连接。


初次配置wifi

初次配置wifi后,便不再需要键盘和显示器。用笔记本电脑+putty+vncviewer实现树莓派的图形界面控制。
在putty和vncviewer软件安装完成后,在putty中输入ip地址,如图putty。


putty

在login中输入pi的用户名和密码实现树莓派的远程网络访问,注意:这一步电脑和树莓派必须在同一个网段下!接着,将vncservr的端口设为1后,就可以用vncviewer进行图形界面控制了。
login

在vncviewer中新建连接,输入IP地址::端口号,在弹出的窗口中输入密码,实现图形界面控制。


vncviewer

2. 有线

将树莓派和笔记本电脑用网线连接起来后,打开网络和共享中心,点击 无线网络->属性->共享,允许其它网络用户通过此计算机的internet来连接,即将笔记本电脑的网络分享给树莓派。


网络共享

在控制台输入arp-a查看到树莓派的ip地址后,和无线连接方式一样使用putty+vncview进行图形界面操控。

- 编程

如果说联网是树莓派作为小型台式机的最基本功能,那么它作为单片机的基本功能毫无疑问就是编程。树莓派提供了一个十分强大的平台,这些平台允许用户通过Python、Java和C等常用语言创建程序轻松地与硬件交互。


自带开发工具

尽管树莓派提供了上图所示的诸多开发工具,但我选择的是在自己的Windows上进行开发,编写完成后通过WinSCP传输到树莓派。


WinSCP

编程的过程包含在各个项目中,本身不再解释。

- 项目实例

以下为我在为期半月的树莓派学习中设计并完成的项目。这些项目让我对树莓派的使用和开发有了一定的了解,并通过对比STC15系列单片机和AT89C51单片机明了了一些树莓派的优势与劣势。

1. 基于树莓派的火灾报警器

选题背景

在大型仓库、商场、高级写字楼、宾馆等场所,火灾报警采用集中区域报警控制方式,其系统复杂、成本较高。而在居民住宅区、办公室等小型防火单位,需要设置一种单一或区域联网、廉价实用的火灾自动探测报警装置。因此,研制一种结构简单、价格低廉的数字联网火灾自动报警器是必要的。

设计思路

采用树莓派3B作为控制器件,传感器采用MQ-2型气体传感器和数字型温度传感器DS18B20完成对烟雾和温度的检测。


控制流程

报警条件:有害气体浓度达到设定的阈值或环境温度达到设定的最高值
应急措施:通过蜂鸣器与LED报警,并启动风扇以散热和消烟
人机交互:在树莓派上利用python中的socket模块搭建基于TCP协议的服务器,在PC端与之相对应地通过python中的socket模块搭建客户端,或编写安卓app作为移动客户端
当移动端或PC端未通过人机交互控制树莓派时,每隔1s进行自动检测,若达报警条件则启用应急措施;当移动端或PC端通过人机交互控制树莓派后,使用者可远程监测环境温度和气体浓度,达到报警条件后会启用应急措施并向使用者发送警报。

实物电路
实物电路

2. 基于STC15系列单片机的烟雾报警器

选题背景

2019年宏晶杯2题

设计思路

通过MQ-2烟雾传感器检测并通过AD模块和LCD1602液晶显示屏显示烟雾浓度,通过按键调整报警阈值,达阈值后产生蜂鸣器响和LED点亮的模拟输出动作并启动风扇。风扇的转速与时间控制根据题目要求的设计相应算法:采用PI算法,烟雾浓度与阈值的差值作为比例算法的输入、烟雾浓度的下降量作为积分算法的输入。

电路设计
仿真电路

3.基于AT89C51的计算器

选题背景

课程微处理器实验3.7

实验要求

AT89C51本身作计算器,通过与16个按键和LCD 1602实现并显示两个数的加减乘除

电路设计
计算器

4.用树莓派做RTMP流直播服务器(进行中)

选题背景

在智能车实验中,要实现摄像头画面的实时传输,要考虑视频的采集、流的传输与接收、服务器与客户端的配置。
采用GStreamer采集摄像头捕获的视频,RTMP模块用于流的传输与接收。

GStreamer与RTMP

gstreamer是一个用于开发流式多媒体应用的开源框架,其核心是pipeline及用于扩展功能的插件,基本元素有element、pad、bin和pipeline。
element:节点,最基本的单元
pad:相当于插头,节点的输入和输出
bin:element按照某种目的实现的集合,可实现某种功能
pipeline:完整的流式数据处理管道
RTMP:Real Time Message Protocol,基于TCP协议的实时信息传输协议

软件配置

avconv 和 GStreamer 用于采集摄像头捕获的视频流并推送到 RTMP 服务
NGINX 和 RTMP 模块,用于接收视频流,同时提供视频发布功能
Strobe Media Playback,一款基于 Flash 的网页视频播放器
参考:用树莓派做 RTMP 流直播服务器,可推送至斗鱼直播 | 树莓派实验室 http://shumeipai.nxez.com/2017/11/01/build-rtmp-stream-live-server-with-raspberry-pi.html

项目进展

完成了NGINX和RTMP模块的安装与配置,开启GStreamer模块采集后如图所示。


GStreamer采集

目前存在的问题:在开启浏览器的Flash后,显示无法连接到网络,即无法将摄像头采集到的视频呈现给客户端的浏览器。但注意到左上角视频采集的数据越来越大,说明开始采集。


Strobe播放器

- 感受

项目1与2的横向对比

可以看到,项目1与项目2实现的是相同的功能,但无论是电路实现还是代码实现,树莓派比STC15系列单片机要简单许多。其中最直观的原因就是项目1采用了python编程而项目2使用的是C,而且我们在为STC15配置网络的时候要额外加上一个ESP8266wifi模块,所以对比之下显得树莓派真的太方便了!

项目1与3的纵向对比

项目3实现的是简单的计算功能,但它的C源代码达到了200多行;相比之下,项目1实现的为更复杂的报警系统,但却仅仅需要几十行代码。无论从代码编写还是调试检查的角度,真的不是一个等级的啊!

为何树莓派如此方便呢?这要从树莓派的宗旨说起,它正是为了让全世界的计算机工作者更好地编程而实现的,所以既有网络层面的支持又有开放的编程平台、支持更多的编程语言。
结构决定功能。CPU分为两类:MCU(微控制器)和MPU(微处理器) 。树莓派用的是MPU,而单片机用到的是MCU,树莓派属于开源硬件,而STC属于传统单片机开发板,所以二者的运算能力有巨大差别。
有利必有弊,人们常常会注意树莓派的高度便捷而忽略了它的高度封装。换句话说,虽然树莓派是为编程而设计,但我们却接触不到它最底层的东西。如果想要解除最底层最接近原理的,可以更多地考虑单片机。玩STM系列可以学到更多基础的知识,脚踏实地慢慢来,从零开始,看着自己的作品一点点完善,难道不是一件很有趣的事情吗?
另外一点,就是成本。对于量产化的产品,设计成本的重要性不言而喻。而树莓派开发的高成本在一定程度上也限制了它的发展。
没有最好的,只有最合适的,通过这段时间的学习我不仅仅学到了树莓派开发的知识和过程,更明白了要根据自己的爱好和需要选择合适的产品。更重要的,关于树莓派,关于开源硬件,关于创新项目,很开心走上这条道路,也希望在老师和同学的陪伴下能够越走越远!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,039评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,426评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,417评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,868评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,892评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,692评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,416评论 3 419
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,326评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,782评论 1 316
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,957评论 3 337
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,102评论 1 350
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,790评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,442评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,996评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,113评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,332评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,044评论 2 355

推荐阅读更多精彩内容