APP下载

Raspberry PI在课程设计中的应用

2013-08-20董安定

电子设计工程 2013年19期
关键词:输入输出显示器以太网

李 伟,董安定

(盐城卫生职业技术学院 医学影像系,江苏 盐城 224000)

Raspberry PI是英国一个慈善机构推出的一个超小型的电脑,尺寸与银行卡相当,开发者为剑桥大学的Eben Upton所带领的一个团队。其最引人注目的一个特点就是“超级便宜但可用性高”,价格仅需25美元却可以运行Linux操作系统,甚至可以播放分辨率为1080p的视频,这使得它一露面便引起极大的关注。自2012年4月正式问世以来,其销量已远超于基金会的预期。Raspberry PI包括两种型号:Model A(25 美元)与 Model B(35 美元)。 相对于Model A来说,后者在功能上的增强非常限:几乎仅多了一个USB口和以太网接口。

1 系统构成

Raspberry PI主要由以下几个部分构成[1]:

CPU:为一基于ARM11系列的 32位,主频 700 MHz的芯片,其计算能力与iPhone 3G相当。Model B包含了512MB的内存,Model A有256MB。

SD卡插槽:Raspberry PI本身没有硬盘,当前也没有软件,其操作系统和数据全部都存储到SD卡上。系统本身并不包括SD卡,由用户另外购买并自行将操作系统写入到SD卡中。

USB口:Raspberry PI有两种USB接口,一个MicroUSB口用于向系统本身供电,另还有两个(Model A仅有一个)用于作为普通的USB口使用。一般来讲至少需要两个USB口才够维持系统正常工作,一个用于鼠标一个用于键盘。如果要扩展其它外部设备或模块(比如Arduino[2])就必须添加一个USB HUB。

以太网接口:仅Model B有一个标准的以太网RJ45接口,而Model A没有。替代的方案是选择一个USB接口的无线网卡。

HDMI:HDMI接口提供数字的视频和音频输出,Raspberry PI支持14种不同的分辨率。考虑到目前许多显示器的视频接口为VGA或DIV,我们可以选择HDMI-DIV或HDMI-VGA的转换线,以能够连接到大多数普通的显示器上。

音频输出:除了通过HDMI输出音频信号,Raspberry PI也有一个标准的3.5 mm插孔,能够接入普通的音箱或耳机。

GPIO(通用输入输出口):Raspberry PI电路板有 26根引脚(2x13),支持几种目前较为流行的几种总线标准,包SPI、I2C、UART等,还可以向外部提供3.3 V和5 V的电压。要注意GPIO的耐受电压是3.3 V,尽管它可以向外提供5 V的电压输出。

显示串行接口:Raspberry PI可以通过一个15针的扁平带状线缆与LCD或LED显示器通信摄像头串行接口:此端口允许直接将摄像头模块连接到电路板。

Raspberry PI基于移动设备的芯片,因而其操作系统与桌面电脑有所区别。目前支持的系统:

Raspbian[3]:Raspbian是一个基于Debian而对 Raspberry PI优化了的系统。对于初学者来说,官方推荐使用这个系统。由于Raspbian是由官方出品的系统,因而保证了其可靠性与稳定性,我们实际上也使用这一版本。

Arch Linux Arm:Arch Linux ARM 基于 Arch Linux,是基于ARM系列芯片的linux[4]的一个分支。其目标是简单和终端用户对操作系统的完全控制,然而一般来讲,灵活性越大难度也就越大,因而不适合初学者。

另外还有一个RISC OS,这是一个一开始就为ARM芯片开发的系统,由于与主流的Linux系统区别较大,因而不推荐使用。

Raspberry PI的官方网站提供以上系统下载。我们选择Raspbian和适用于 Windows系统的写入工具Win32DiskImager。成功写入操作系统后,即可插入Raspberry PI的SD卡插槽,接上电源,显示器及鼠标键盘启动,由于Raspberry PI本身没有电源开关,接入电源即启动。供电接口为MicroUSB,因而电源线可以很方便的获得,比如说手机的充电器,或直接使用普通电脑的USB口。

2 系统使用

Raspberry PI的用途比较广泛:通用计算,编程、项目开发平台,甚至可以拿来开发产品。我们关心的是利用Raspberry PI来直接对硬件进行控制,相对于单片机系统来说,Raspberry PI除了硬件优势之外,它运行于一个完整的Linux操作系统之上。这意味着我们可以几乎不用去关心寄存器这类的细节末节,而将主要精力放在功能的实现上。由于有了一个完整的操作系统,我们有多种高级编程语言可供选择,这将大大的降低编程的难度,提高学生的兴趣,也可以明显的缩短项目的开发周期。对于GPIO[5]的输入输出控制大致上可以分为两类,一类是使用shell来进行控制,主要有以下几个步骤:

1)在使用命令行控制输入输出之前必须使当前用户为超级用户,以便于读取linux内核文件

2)使用echo命令指定要使用的引脚号码,如果我们要使用4号引脚,那么命令如下:

语句的作用即为将13号引脚输出到用户空间以便使用,echo命令会把要用的引脚号写到目录/sys/class/gPio中的export文件。当我们将引脚号写到这个特殊的文件中的时候会创建一个对此引脚进行控制的目录,在本例中为“/sys/classgPio/gPio4”

3)将当前目录改为/sys/classgPio/gPio4,用ls命令可以看到目录中包括以下文件

active_low direction edge power subsystem uevent value

其中的dicrction就是用来控制输入输出的文件,如果是输出的话那么shell命令为:

即设定为输出,输出高电平则为

输入与输出类似:

稍微有点不同的是需要读取输入值

相对于shell脚本语言来说,使用如java、C++或python语言的好处是显而易见的。比如程序的可读性更好,便于移植等等,也更容易使得代码模块化以编写更为复杂的程序。我们可以在网上找到各种主流语言有关Raspberry PI的相关库函数或封装类,使得代码的编写更加简单。比如,以下分别是输入、输出的java语言程序[6](使用framboos库):

Java语言的好处是其语法与Arduino使用的processing(源于Java)类似,因而对于学生来讲当使用两者联合搭建开发平台时会使程序的编写较为容易。另一方面,从上面的代码我们可以看到,C语言可以对延时的时间进行较为精确的控制,因而适合于实时性较高的场合,如信号采集。Java语言还有一个优点,可以通过http协议使用java webapp控制来控制Raspberry PI的GPIO。

3 结束语

基于Raspberry PI的课程设计比较适合于学过单片机的学生,或用于学生实习回校后的毕业设计。这对学生的软件与硬件设计能力和逻辑思维能力都会有一个很大的提高,给学生一个对所学知识进行充分发挥的机会,使学生走出校园后适应工作岗位也是一个较好的锻炼。如果能够把Raspberry PI和Arduino结合起来使用效果当然会更好,对于个别能力比较高并且有兴趣的学生我们可以单独辅导,充分发挥学生的聪明才智。

[1]Upton E,Halfacree G.Raspberry Pi User Guide[M].USA:John Wiley&Sons Inc,2012.

[2]Banzi M.Getting Started with Arduino[M].USA:O'Reilly Media Inc,2011.

[3]Richardson M,Wallace S.Getting Started with Raspberry Pi[M].USA:O'Reilly Media Inc,2012.

[4]鸟哥著,王世江改编.鸟哥的Linux私房菜:基础学习篇[M].3版.北京:人民邮电出版社,2010.

[5]RPi Low-level peripherals[EB/OL](2013).http://elinux.org/RPi_Low-level_peripherals.

[6]Wong H.RPi and Java Embedded GPIO[EB/OL](2013).http://blogs.oracle.com/hinkmond.

[7]Henderson G.WiringPi Examples[EB/OL](2013).http://projects.drogon.net/raspberry-pi.

猜你喜欢

输入输出显示器以太网
把显示器“穿”在身上
基于1500以太网养猪场的智能饲喂控制系统的设计与实现
Camtasia Studio高清视频输入输出原理及方法
IDC发布《2018年PC显示器市场跟踪报告》
铁路信号系统安全输入输出平台
一种新型点阵显示器的设计
输入输出理论在大学英语听说课堂中的教学探索
输入输出视角下高职英语教学研究
谈实时以太网EtherCAT技术在变电站自动化中的应用
浅谈EPON与工业以太网在贵遵高速公路中的应用