《Microduino实战》——1.4 开源硬件

本节书摘来自华章出版社《Microduino实战》一 书中的第1章,第1.1节,作者:姚琪 杨立斌,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

1.4 开源硬件

开源硬件是对开源软件领域的一种扩展,指的是通过与*及开放源代码软件相同的方式设计的计算机和电子硬件。与开源软件不同的是,开源硬件最终会涉及物理实体的生产与制造,所以是*的,但并不免费。这里的*是指发布硬件设计的详细信息,如电路图、材料列表和电路板布局数据,而且通常会使用开源软件来驱动硬件。
开源的IP核是一种类型的开源硬件。IP核是指在数字电路领域中描述硬件设计功能的可重用模块。比如,OpenSPARC是SUN公司一款开源的处理器设计,使用者可以用来在FPGA等可编程芯片上实现该设计;OpenCores提供了开源的处理器、外围设备、总线控制等逻辑设计。
除此之外,还有像Arduino、树莓派、pcDuino这样的开源软硬件平台。
开源硬件的特点如下:
模块化的设计
允许商业化
有很好的技术支持
完全开放的软硬件
开源硬件降低了硬件入门门槛,让更多的人可以参与到硬件开发中,甚至那些完全没有任何硬件知识的人同样能够快速地使用像Arduino这样的开源平台进行开发。

1.4.1 Arduino

Arduino[2]是一款开放源代码的微芯片控制器平台,如图1-1所示为其中一款Arduino UNO开发板。它使用的是Atmel AVR单片机,具有非常简单的I/O口,以及代码友好的开源编程环境,无需具备任何硬件知识,就可以轻松地入门这一硬件平台。所以,极客、创客、艺术家、电子爱好者,甚至中小学生都能够在这个小巧的平台上发挥自己的创意。

《Microduino实战》——1.4 开源硬件

2004年冬,一名意大利的教师和一名西班牙工程师为了学生开发了一款电路板,取名Arduino。随后的几年,Arduino在全球流行了起来,起初只是为了教学,而如今Arduino在开源硬件社区中异常火爆,它就像一种电子积木玩具,可以搭建各种创意
设计。
Arduino有如下的一些特点。
1)开源:Arduino的硬件以及软件都是开源的,开发成本相对较低,可以让用户*使用,使用者可以在没有商业利益的情况下使用、修改以及发布。这让更多的创新者能够在其基础上发挥自己的创意,并与社区中的创客一起分享、讨论。
2)易使用:简单的Arduino IDE界面,容易上手的编程语言,以及丰富的封装函数,技术门槛很低,这让初学者在很短时间内就能够将类似于“Hello World!”这样的设计运行起来。这大大激发了初学者进一步学习的积极性。
3)庞大的社区:正因为前面两个特点,使Arduino逐渐形成一个很庞大的技术社区。用户本着开源的精神,既能够获得各种开放的源代码和设计,又能够开放自己的设计,并与社区中的人一起交流讨论,形成了一种设计开发的良性循环。
4)丰富的外围设备:除了官方提供的一些扩展板和模块,第三方模块供应商也提供了很多兼容Arduino的扩展板和模块,如WiFi、蓝牙、以太网等通信接口模块,以及各种类型的传感器模块,还有电机驱动模块等。这种相对完善的供应链,能够极大地满足创客的不同需求,加速了从创意到原型设计的过程。
如果仅从外观上看,根本不会觉得Arduino有多大的能耐,但是从开源硬件社区中提供的开源项目中就能看出Arduino的魅力了。比如基于Arduino的数字示波器、智能避障小车、远程遥控侦查机器人等[3]。
当然,Arduino不可能尽善尽美,不可能满足所有人的要求,比如所采用的MCU是一款低功耗的8位微控制器,不能实现复杂的计算,无法运行操作系统,当然也不可能实现图形界面,等等。自然,Arduino整个生态体系也在逐渐地进化和完善。2014年美国TI公司与Arduino开源项目一起合作,推出了一款ARM+MCU架构的开源硬件平台——Arduino TRE,ARM处理器采用了1GHz Cortex-A8处理器,能够运行高性能的桌面应用、处理密集型的算法和高速通信[4],例如3D打印等。此外,Intel发布了一款兼容x86架构的Arduino开发板——Intel Galileo开发板[5]。这两者无疑都说明了世界*的芯片厂商非常重视开源硬件这块领域,也间接说明了开源硬件良好的发展趋势。

1.4.2 Microduino

Microduino[6]是一款兼容Arduino的微控制器平台,如图1-2所示。它将USB接口与微控制器分离开,分别做成了一个模块,可以通过Microduino制定的U型27 Pin的接口标准,将所有Microduino系列模块堆叠起来使用,这让Microduino变得更加小巧而富有灵活性。
对于尺寸大小受限的设计来说,Microduino有很大的吸引力,而且通过堆叠模块的方式添加功能模块,方便了模块的连接,还能防止引脚插错的失误。第2章会详细介绍Microduino一系列的电子积木。

《Microduino实战》——1.4 开源硬件

1.4.3 树莓派

树莓派(Raspberry Pi)[7]是一款基于ARM的微型计算机板,是专门为学生学习计算机编程而设计的,采用了博通公司的700MHz BCM2835 CPU,可以运行Debian、Archlinux等Linux系统,内置多种接口,包括USB、HDMI、LAN等。它自从问世以来,就受到广大计算机和硬件爱好者的追捧。最新版本树莓派B+在中国国内的价格不到200元,非常小巧,只有一张信用卡那么大,却可以当作一台普通的计算机,如
图1-3所示。任何年龄段的电脑爱好者都可以拥有它,可以在上面进行硬件DIY,以及软件编程。
树莓派毕竟是一台计算机,对于技术薄弱的爱好者而言,上手比较困难,比如Linux系统的使用,C、Python、Java等编程语言的学习。目前国内有一个树莓派论坛,在上面可以获得一些入门资料和必备的知识,还可以找到一些高级玩家实现的方案,而且在市面上已经有好几本树莓派的教材可供参考。

《Microduino实战》——1.4 开源硬件

在采访树莓派联合创始人Eben Upton时,他说道:“8岁是很好的年纪。你有合适的身体,有合适的心智,而且还处于生命中能轻松学习新知识的时候。你的大脑还具有非常大的可塑性,可以学习语言……所以我认为越早接触计算机编程越好,而8岁是奇妙的年纪。8岁,10岁,12岁,12岁可能都有点晚了。”从采访中可以看出,树莓派的一大初衷在于初级教育,在于鼓励和教育小孩子编程。这样的做法有一定的理想主义,但这样的尝试具有很大的意义,这条路还需有很长一段要走。或许从小让孩子学编程,可能其中的一部分人会将编程当作一种爱好,而不只是一种谋生的工具,那么“编程要从娃娃抓起”这样的话,就变得更加有意义了。

1.4.4 pcDuino

pcDuino[8]是一款高性能的迷你PC平台,可以运行Ubuntu和Android ICS,它专门针对开源快速增长的需要而开发,I/O接口兼容Arduino。如图1-4所示是最新的pcDuino 3,全志A20Soc芯片,内置1GHz ARM Cortex A7双核处理器,1G内存,4GB闪存,自带兼容Arduino的扩展接口。最新版本的技术参数可以参考官方网站所提供的资料[8]。它可以看作是Arduino和树莓派集成和增强版,价格为300~400元。

《Microduino实战》——1.4 开源硬件

1.4.5 其他开源硬件平台

除了以上所介绍的开源硬件,还有BeagleBone Black[9],如图1-5所示。它使用的是TI的1GHz ARM Cortex-A8处理器,2GB eMMC存储,512MB的DDR3内存,有46Pin可供使用,支持LCD、UART、ADC、I2C、PWM、SPI等接口。它同样是一款迷你的嵌入式系统开发平台。

《Microduino实战》——1.4 开源硬件

中国珠海的一个团队推出了一款叫作Cubieboard[10]的开源平台,如图1-6所示。它使用1GHz ARM Cortex-A8处理器,1GB DDR3内存, 4GB 闪存,有96个扩展口,可以运行Android、Ubuntu等系统。

《Microduino实战》——1.4 开源硬件

以上介绍的开源硬件主要涉及微控制器和迷你PC系列的开源硬件。另外还有NetFPGA,它是一款用于网络设计的开放平台,核心控制芯片采用的是FPGA,需要对FPGA内部的逻辑资源进行编程,才能让芯片实现某种具体的功能。考虑到本书的写作目的,这里就不再介绍了。

上一篇:IDEA快捷键拆解系列(八):Refactor篇


下一篇:开源硬件智能家居控制装置出现 小企业福音