1、序言
在互联网爆发式增长了几十年的今天,越来越多的末端硬件设备已经具备连接网络的能力,业态也越来越丰富,这就是今天所说的物联网。
作为一个08年就开始玩“开源硬件”的骨灰玩家,本着执古御今,严谨治学的态度,笔者觉得有必要再回头捋一捋,究竟是什么力量在驱使行业飞速发展。
2、开源硬件及生态介绍
2.1、简介
开源硬件是指,与自由及开放源代码软件相同方式设计的计算机和电子硬件。
(图片来源于互联网)
开源硬件其实是源于开源软件的,开发开源硬件的工具和运行在开源硬件上的软件,一般都是开源软件,其实是一种非强制的开源文化。开发硬件过程中的详细设计材料,如原理图(Schematic)、原料清单(BOM)、布局图(PCB Layout)等,也都会完全开放。尤其是开源许可证,一般会直接与配套的开源软件保持一致。
当然,要聊开源硬件,就少不了开源硬件的鼻祖 - Arduino.
2.2、Arduino
2.2.1、硬件
Arduino 最初在 2005 年被引入学校,用作微控制器编程教学。那时只是一个很普通的开发板,唯一特殊之处是定义了一套简单易用的IO接口。
Arduino is the world’s leading open-source hardware and software ecosystem.
-- arduino.cc
(图片来源于互联网)
后来 Arduino 因为硬件接口极其简单易用,许多人开始为它开发扩展硬件模块(原名Shield,俗称扩展板或扣板),尤其是在2008年以后,因Arduino开发板和扩展模块成本都极其低廉,开始在国内大量生产。
(图片来源于互联网)
有了硬件,就少不了需要驱动软件,于是很多爱好者开始为 Arduino 写可重用的软件。直到今天,Arduino 的软件生态异常庞大,市面上常见的包括传感器的各类IO硬件,都有了统一规范的软件支持,集成在 Arduino 软件生态中。
这是 Arduino 对 IoT 领域 2021 年出货规模的预测。
Arduino has become the number one choice for electronics makers, especially for developing solutions for the IoT marketplace, which has been predicted to become a $6 trillion market by 2021.
-- arduino.cc
单纯使用 Arduino 的短板也很明显:
基于 Arduino 开发,需要遵循 Arduino 的许可证和相关 Policy,直接将在 Arduino 基础上构建的应用商业化有一些限制。
Arduino 自身的开发工具比较单一,仅适合初学者学习之用
阻塞式单线程运行,完成复杂工程需要清晰的状态机设计,性价比并不高
所以后来出现了各类 Arduino 变种硬件及软件,让整个软硬件生态开始多样化,同时其实又是有些“分裂”的。
2.2.2、软件
Arduino的软件设计特别“傻”,一个初始化入口,一个大循环,就是整个应用开发的全部。
然而正是因为这种极简的设计,让非常多非电子工程科班出身的开发人员,得以发挥他们的创造力。
在这种框架下,Arduino编程语言采用了C++最精要的部分,面向对象设计,对硬件原子能力进行抽象,从而使得大量的第三方开发人员可以将其开发适配的各类外设,对接到Arduino软件框架的标准接口上,提供给开源生态使用,再次极大推动了生产力提升。
Arduino Framework 架构图
2.3、Platform IO
大约2014年开始,出现了 PlatformIO ,早期这个开源软件以Arduino生态为阵地,通过“爬取”各个社区和团队产出的硬件和软件库,整合到一套开发工具和生态中,使得 Arduino 系列的生态以及后来的其他嵌入式框架和软件,对于用户而言又归于统一。
(图片来源于互联网)
现在的 PlatformIO 已支持包括 ST, NXP, Espressif 等10+家厂商的1000多种各类开发板,其中绝大多数是基于 Arduino 及其派生的 framework 来支持 Arduino 模式的应用开发,可以使用其生态中囊括的约11000多个硬件驱动、中间件的软件库。
为什么重点提到PlatformIO呢?因为它类似一个流量入口,把开发硬件的工具和软件生态收敛在一个地方,在Arduino生态的基础上,又形成了更加高效创新力。
2.4、更多
不仅板级硬件能开源,芯片架构和指令集也可以开源,比如 RISC-V.
2010年UC Berkerly启动的RISC-V项目迅速引爆了业内的关注,很快几年内就有了相应软硬件产品面世。
3、阿里云与开源硬件
3.1、HaaS
在开源生态的贡献中,阿里从来都是大手笔投入。除了捐给Apache基金会的众多开源软件,也有阿里云捐赠给开放原子开源基金会的AliOS Things.
在开源硬件上,自然也有戏份。
HaaS是硬件即服务的缩写,旗下有多款开源硬件,比如HaaS100,HaaS600和刚发布的HaaS EDU K1.
3.2、轻应用
如果说HaaS硬件就像Arduino主板,HaaS轻应用则对应Arduino Framework.
和Arduino Framework一样,为了让更多开发人员能够用起来,HaaS轻应用支持JavaScript和Python这类全栈语言,快速在嵌入式硬件上进行应用开发。
同样,HaaS轻应用也是一套开源软件:
Github: https://github.com/aliyun/haas-mini-program
Gitee: https://gitee.com/alios-things/haas-mini-program
结语:开源硬件畅想
聊了这么多开源硬件,可以发现它的发展轨迹是始于开源软件,也终于开源软件的。
回到本文开头的思考,到底是什么推动了行业飞速发展?原因似乎很容易理解,开源并非免费,开源是更多的资源互换,催生更多的交易,从而让整个社会的协作效率大大提升,实与“让天下没有难做的生意”有异曲同工之妙。
自由开放即生产力。