树莓派(Raspberry Pi)是基于ARM的微型电脑主板,外形只有信用卡大小,因此也被称为新型卡片式电脑,树莓派具有电脑的所有基本功能,可谓麻雀虽小五脏俱全。而其开发组织Raspberry Pi 基金会更是以“提升学校计算机科学及相关学科的教学质量,让计算机变得有趣”为宗旨,所以热爱IT技术、喜欢折腾的千万不要错过这一神器。
树莓派早期有A和B两个型号,B型的树莓派配置上要高A型一个级别。主要区别在USB接口、网卡的数量、功率、工作电流和运行内存上。甚至日常生活中标准的5V2A移动电源都可以支撑他们正常工作,而最新产出的Raspberry Pi 3更是搭载了64位四核1.2GHz处理器,1GB LPDDR2内存,完全兼容已发布的应用程序。Raspberry Pi 3在无线方面还直接板载了激动人心的802.11n Wi-Fi和蓝牙4.1支持。而供电方面第三代树莓派则需要搭配2.5A的USB充电器。笔者体验的是树莓派B和B+这两块板,通过av或者HDMI可以将图像输出到任何显示器上,接上鼠标和键盘,一台完整的电脑就诞生了。如果你手头上没有闲置的显示器,树莓派板子上预留了一个csi接口的液晶显示屏,通过notro/fbtft这个开源项目,可以完整的实现framebuffer驱动,让树莓派完美支持tft液晶,有没有想起了曾经爱不释手的MP4,现在又被遗忘在哪个角落呢?
我们可以将树莓派看做是一台搭载Linux操作系统的迷你电脑,虽然极客们已经绞尽脑汁的想要把windows 10 x86移植到上面了,但树莓派和Linux才是最配的。出厂默认的树莓派是不带存储设备的,我们需要一张SD卡(B+之后采用体积更小的TF卡),然后通过win32diskimager等磁盘管理工具即可将合适的操作系统烧录到内存卡上,官方提供并推荐的操作系统是基于debian的Raspbian,Raspbian自带了Python、Java等语言的集成开发环境,当然NOOBS也是不错的选择。安装和配置完系统之后我们就可以”为所欲为”了。
我们甚至可以说树莓派无所不能,除了用于日常的编程学习,树莓派的内核在编译时就自带了gpio的驱动,你可以很方便的通过python GPIO、wiringPi、BCM2835 C Library等第三方操作库进行编程和学习。
事实上我对硬件的了解并不多,因此玩的更多是软(黑)科技,当然,要是让我用树莓派实现一个收音机,我想还是可以做到的。笔者对Linux的学习也是在摸索阶段,目前正在学习《Linux就该这么学》这本书中Linux命令的章节,刘老师的书籍是免费公开的,冲着这种共享精神也要给他做下广告,书籍网址是,趁着学习Linux的劲头也写下了这篇技术含量不算高的文章来介绍树莓派的黑科技。
树莓派简而言之有这样两大玩法:一是作为控制中心实现各种"智能机器",在智能设备方面,我们可以通过树莓派实现一台Wifi小车、自制笔记本、智能开关、监控拍摄、甚至智能机器人等。二是发挥其每一块硬件的提供"软"服务,在软服务方面可以通过树莓派搭建个人网站、作为网络存储设备、部署家庭相册、提供WIFI热点、站点监控仪等。
我的其中一块树莓派(Model B+)现正在实验室中服役,作为实验室的NAS(网络附属存储),它主要提供的“软”服务不只是文件的存储,同时还提供了实时备份和同步的功能。采用硬盘架来装载闲置的硬盘,通过高速USB3.0的接口对存储设备的进行读写(性能瓶颈在于网络而不是IO,因此这里没有进行优化)。使用SMABA协议我们可以很方便的在Linux、Windows甚至OS X中对NAS进行访问,通过schedule调度和rsync进行实时增量备份,再配合Shell脚本进行智能判断,实现从远端服务器进行文件的同步。
而我的另外一块树莓派更是久经沙场,曾经一度被当作我的Git仓库,说实话内存有点吃不消,通过Docker进行gogs的安装和部署可以说是最敏捷的git仓库搭建之道。当然后面我还给这位老将带上温度、湿度传感器,通过websocket推送到服务器,然后只需要在手机浏览器或者微信访问页面就能对实验室的温度湿度一览无余了。甚至想过一怒之下用树莓派搭载继电器,通过WEB服务器进行电动门的开关控制,当然出于“安全”着想,我还是放弃了这个危险的想法。
树莓派是我在Linux学习之路上又一件神奇的法宝,通过对它的学习和使用,我对Linux基础掌握和应用能力都得到了不小的提升。同时还挺庆幸自己的学习路线并没有太过曲折,实践之后久而久之,原来用于打基础的《Raspberry Pi用户指南》、《Linux就该这么学》、《玩转树莓派Raspberry Pi》书籍逐渐从教材的作用转变为工具书进行查阅。这篇文章只是出于兴趣爱好,执笔比较仓促,如有盲点还望海涵。当然另外一个目的就是想广而告之:树莓派真的太棒了!