《Microduino实战》——1.4 开源硬件-阿里云开发者社区

开发者社区> 华章出版社> 正文

《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口,以及代码友好的开源编程环境,无需具备任何硬件知识,就可以轻松地入门这一硬件平台。所以,极客、创客、艺术家、电子爱好者,甚至中小学生都能够在这个小巧的平台上发挥自己的创意。

69cfd69e7f10452eb14f16d51e7e00f5aee5b90a

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一系列的电子积木。

0acd04764e2dcbc7cac15d5132718e151cd31f77

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等编程语言的学习。目前国内有一个树莓派论坛,在上面可以获得一些入门资料和必备的知识,还可以找到一些高级玩家实现的方案,而且在市面上已经有好几本树莓派的教材可供参考。

8212bab08e1854d64fc65f2da287801bc0ecd6fd

在采访树莓派联合创始人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元。

d8280a01df7735f23c45308ffa1ac943f4d0c53b

1.4.5 其他开源硬件平台

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

b59195e0ce1cd07c067cc316dbaed82ff99fb97d

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

5721218c20c32ef24a8991b435692b852bbe9eea

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

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:

华章出版社

官方博客
官网链接