“开源”这一词语是在90年代后期OSI(开放代码促进会)成立时才正式被使用。OSI是为协作开发而成立的宣传和管理的组织,在早期,开源基本上指的就是开源软件(OSS),开源硬件(OSHW)的出现晚于开源软件。
1997年,Bruce Perens(开源定义的创造者,OSI的共同创立者,同时也是一个业余无线电操作员和爱好者)发布了开源硬件认证程序。该程序可以让硬件开发者将他们的产品自行认证为开源。
1998年,很多人给出了他们的想象中开源硬件的发展方向。David Freeman宣布了开源硬件规范工程(OHSpec);Troy Benjegerdes把将开源软件准则应用于硬件,并创立一个商业投机机构的想法公之于众;Reinoud Lamberts创建了一个致力于低成本和开放设计电路的协作网站Open Design Circuits。
一年后,Sepehr Kiani博士,Ryan Vallance博士和Samir Nayfeh博士参与一个项目,把开源哲学应用到机器设计应用,并共同建立了非盈利结构开源设计基金会(ODF),而且着手于开发一个开源设计定义。
直至开源硬件协会(Open Source Hardware Association)对开源硬件给出了这样的定义:开源硬件是可以通过公开渠道获得的硬件设计,任何人可以对已有的设计进行学习、修改、发布、制作和销售。硬件设计的源代码的特定的格式可以为其他人获得,以方便对其进行修改。理想情况下,开源硬件使用随处可得的电子元件和材料,标准的过程,开放的基础架构,无限制的内容和开源的设计工具,以最大化个人利用硬件的便利性。开源硬件提供人们在控制他们的技术自由的同时共享知识并鼓励硬件设计开放、交流、贸易。
主流的开源硬件有Micro:bit、Arduino、Raspberry Pi(树莓派)、BeagleBone等,更多可参考Wikimedia开源硬件项目列表。
从开发者体验的角度来看,如果是初学者,建议选择资料多、易上手的Arduino和树莓派。这两者之间的区别是Arduino更适合做一些与电路、传感器等相关而不需要太多复杂计算的项目,比如机器人控制、四轴飞行器控制、时钟、发光阵列控制等等,并提供非常精确的实时处理;树莓派的处理器运算能力更强,由于具有操作系统,可以设计出功能更丰富的软件,因此树莓派更适合做一些需要较多运算和功能的项目,比如游戏虚拟机、网页服务器、机器人、家庭智能控制系统等,其运行桌面应用程序和多媒体的能力特性适合人工智能、视频流和数据库项目。
micro:bit是一个BBC设计的小型可编程计算机,micro:bit是否将取代Arduino在创客(Maker)教育领域的地位,还有待时间检验。但相比与Arduino,micro:bit具有免安装驱动,电子模块集成度高,支持时下最热门的多种编程语言等多项优势,节省了教学资源成本的同时大大增加了可玩性和拓展空间。
如果是经验丰富的极客,推荐选择配置更强大,开发难度较大的BeagleBone,可以打造功能齐全的机器人控制等。
虽然树莓派非常适合于需要网络连接、图形用户界面以及低压GPIO输出的项目,但是与Micro:bit、Arduino之类的单片机电路板相比,其劣势在于缺乏模拟输入,即与外部电子设备的交互。
联合树莓派与单片机(如树莓派+Micro:bit或者树莓派+Arduino)来共同处理所有底层设备,能够发挥各自的优势,将是非常棒的组合。如果使用带有GPIO接口并兼容单片机的扩展接口板,将可以使这一组合的功效发挥到极致——使用 Pi 来提供处理能力,并使用微控制器来连接硬件。
酷玛Labs暂时没有计划谈到全球第一款开源的ARM开发板BeagleBoard,它是为嵌入式Linux极客打造的微型计算机;短期内也不会关注国内开源硬件。
硬件编程是把控制器对数据处理器的控制过程可以写成硬件程序,从而控制硬件(如STEM领域常见的Micro:bit、Arduino等)的输出装置(如常见的指示灯、喇叭、马达等)完成相应的操作。创客的兴趣主要集中在以工程化为导向的主题上,对现实世界的硬件进行编程,进而制作各种有趣的小发明,相比更加抽象的软件编程,直观而有趣的过程吸引了许多人的参与。
结合上述主流开源硬件、硬件编程与软件编程的观点,酷码STEM实验室设计的开源硬件路线图是Micro:bit - Arduino → Raspberry Pi。请注意Micro:bit - Arduino是平行的,如果走Python路线,推荐 Micro:bit → Raspberry Pi;如果走C语言路线,推荐 Arduino → Raspberry Pi。