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

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

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

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

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

1.4.5 其他开源硬件平台

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

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

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

时间: 2024-08-07 03:37:40

《Microduino实战》——1.4 开源硬件的相关文章

《Microduino实战》——1.5 如何选择开源硬件

1.5 如何选择开源硬件 开源硬件中有很多选择的.在选择时,可以通过以下的考虑点进行综合评估,选择适合自己的一款开源硬件,这也可以说是开始某项工程必须要完成的工作. 易学性Arduino和Microduino不需要太多的硬件知识和编程的专业知识就能够轻松上手,不会有太多的困难.而树莓派.pcDuino都需要安装操作系统,如果没有一定Linux等嵌入式基础知识的话,开发起来会有很多困难. 功能.性能.尺寸的要求Arduino和Microduino有良好的接口扩展性,如果要接入外围的控制器.传感器,

《Microduino实战》——导读

前 言 自2005年Arduino横空出世以来,开源硬件就像Linux一样,很快风靡全球.Arduino最初只是为学生设计的一款既便宜又易用的微控制器板,但如今在"创客运动"的大背景下取得了巨大的成功. Arduino使用的是Atmel VAR 8位微控制器,是一个软硬件开源的平台.不仅开放软件的源代码,而且硬件电路设计图同样可以从网络上下载.任何用户都可以利用这些开放的资源,再根据自己的需要进行修改和定制,发布适合自己的软件工具和硬件设计.此外,它不像传统的微控制器程序,只有有一定电

《Microduino实战》——3.1 准备开发环境

3.1 准备开发环境 获得Arduino IDE有以下两种途径: 从Arduino官网[1]上下载安装后的Arduino IDE尚且不能识别Microduino的核心模块,要手动修改.首先从Microduino下载相关的硬件和软件支持包,然后存放到Arduino相应的目录下. 从Microduino获得定制的Arduino IDE[2]定制的Arduino IDE能够支持Microduino核心模块的编译和下载. 这里所说的定制的Arduino IDE,指的是将支持Microduino的硬件和软

3D 打印和开源硬件的关系

近几年来,"3D打印"成了领先科技的代名词,它也是媒体一直跟踪报道的热门话题.其实这项技术早在20世纪80年代已经存在,当时的设备和耗材都 非常昂贵,所以它只应用于模具开发.原型设计等工业上游环节.单从价格上来看的话,3D打印机的价格在一路下滑:在90年代,它的价格一度高达数百万美 元.而在2000年初,其价格降至一到二万美元.到了现在,你甚至可以在淘宝花数千元购买一台3D打印机(精准度并不高). 对于玩硬件出身的创客来说,他们也许会很自然地把3D打印和开源硬件联想到一起.但是一般人也

结合了云服务的开源硬件Ninja Blocks 让物联网触手可及

被称为第三次产业信息浪潮的物联网离我们越来越近了,与之相关的创业公司越来越多,比如我们此前报道过的让互联网变得"有味道"的设备Olly以及让你附近的物体有需要时"开口说话"的Twine. 又有一个和Twine类似的玩意儿出现了.和Twine一样,Ninja Blocks也一个方形盒子,它与配套的Ninja Cloud云服务一起,能为你的日常物件与常用各种网络服务搭建起双向的桥梁--物联网. Ninja Blocks(方形盒子)能够感应动作.湿度.距离.声音.光线等,

开源硬件也疯狂

学过电脑或是软件工程的同学,一定会把Dennis Allison 在1975 年发布Tiny BASIC 时候说的话放在心上,他倡导的开放.共用的思想得到了多数开发者的认同,这些年,软件开源取得了令人瞩目的成绩.同时,他那句"让我们站在彼此的肩膀,而不是彼此的脚趾上."也变成了开源软件运动的名言. 附图: 易懂易学的Arduino 开发板 如今,随着智慧手机的爆发性增长,Android.Firefox OS.乐OS.Palm各种不同的开源软件都有着自己不错的表现和成绩,每种开源软件都有

开源硬件成就未来新山寨

相信从事开源硬件行业的人,没几个不认识李大维.他曾经参与过著名导演史蒂芬·斯皮尔伯格的互动式多媒体项目.迪士尼虚拟世界项目,也为Facebook等名企设计社交应用.他从事软件行业20多年,并一直致力于开源软件运动.近几年来,他顺应着开源硬件这股潮流,开始了自己的硬件之旅. 为了在国内宣传开源硬件,他到过不少地方参加演讲,当中包括著名的TEDx.为了进一步降低开发硬件的门槛,他携手朋友@何琪辰爱上大开发了ArduBlock,以图形化积木搭建的方式简化编程.值得一提的是,国内首个Hackerspac

《开源硬件创客——15个酷应用玩转树莓派》——1.2树莓派基本介绍

1.2树莓派基本介绍 正所谓"既要仰望星空,又要脚踏实地",那在本节中,作者将给大家详细介绍树莓派的硬件配置,以及各类精彩纷呈的应用. 1.2.1 树莓派的"身体构造" 树莓派硬件.接口及其连接设备如图1-5所示.下面就让我们按图索骥,一同来探索树莓派的"身体构造"吧! 在人身体结构中,最重要的部位应该就是心脏了.那么树莓派的"心脏"是什么?下面请听作者一一道来.树莓派采用了一颗由博通公司(Broadcom Corporati

《开源硬件创客——15个酷应用玩转树莓派》——1.1树莓派是什么

1.1树莓派是什么 要想玩转树莓派,首先得知道树莓派是什么.在本节中,作者将带领大家揭开树莓派的神秘面纱,了解树莓派从最初诞生到现在发生的有趣故事,以及树莓派背后所蕴含着的深刻含义. 1.1.1 树莓派的"诞生" 2012年2月29日,一个载入开源史册的日子,本书的主角-树莓派正式发售了.热情的人们"刷爆"了树莓派订购网站的服务器,逼得网站站长在Twitter上恳求:"朋友,你能别如此频繁地按F5键进行刷新网页吗,将会使服务器瘫痪的."从最初的设