开源硬件的前世今生

简介: 在互联网爆发式增长了几十年的今天,越来越多的末端硬件设备已经具备连接网络的能力,业态也越来越丰富,这就是今天所说的物联网。

1、序言

在互联网爆发式增长了几十年的今天,越来越多的末端硬件设备已经具备连接网络的能力,业态也越来越丰富,这就是今天所说的物联网。

作为一个08年就开始玩“开源硬件”的骨灰玩家,本着执古御今,严谨治学的态度,笔者觉得有必要再回头捋一捋,究竟是什么力量在驱使行业飞速发展。

2、开源硬件及生态介绍

2.1、简介

开源硬件是指,与自由及开放源代码软件相同方式设计的计算机和电子硬件。
image.png
(图片来源于互联网)

开源硬件其实是源于开源软件的,开发开源硬件的工具和运行在开源硬件上的软件,一般都是开源软件,其实是一种非强制的开源文化。开发硬件过程中的详细设计材料,如原理图(Schematic)、原料清单(BOM)、布局图(PCB Layout)等,也都会完全开放。尤其是开源许可证,一般会直接与配套的开源软件保持一致。
image.png
当然,要聊开源硬件,就少不了开源硬件的鼻祖 - Arduino.

2.2、Arduino

2.2.1、硬件

Arduino 最初在 2005 年被引入学校,用作微控制器编程教学。那时只是一个很普通的开发板,唯一特殊之处是定义了一套简单易用的IO接口。

Arduino is the world’s leading open-source hardware and software ecosystem.
-- arduino.cc
image.png
(图片来源于互联网)

后来 Arduino 因为硬件接口极其简单易用,许多人开始为它开发扩展硬件模块(原名Shield,俗称扩展板或扣板),尤其是在2008年以后,因Arduino开发板和扩展模块成本都极其低廉,开始在国内大量生产。
image.png
(图片来源于互联网)

有了硬件,就少不了需要驱动软件,于是很多爱好者开始为 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 架构图
image.png
2.3、Platform IO

大约2014年开始,出现了 PlatformIO ,早期这个开源软件以Arduino生态为阵地,通过“爬取”各个社区和团队产出的硬件和软件库,整合到一套开发工具和生态中,使得 Arduino 系列的生态以及后来的其他嵌入式框架和软件,对于用户而言又归于统一。
image.png
(图片来源于互联网)

现在的 PlatformIO 已支持包括 ST, NXP, Espressif 等10+家厂商的1000多种各类开发板,其中绝大多数是基于 Arduino 及其派生的 framework 来支持 Arduino 模式的应用开发,可以使用其生态中囊括的约11000多个硬件驱动、中间件的软件库。

为什么重点提到PlatformIO呢?因为它类似一个流量入口,把开发硬件的工具和软件生态收敛在一个地方,在Arduino生态的基础上,又形成了更加高效创新力。

2.4、更多

不仅板级硬件能开源,芯片架构和指令集也可以开源,比如 RISC-V.

2010年UC Berkerly启动的RISC-V项目迅速引爆了业内的关注,很快几年内就有了相应软硬件产品面世。
image.png
3、阿里云与开源硬件

3.1、HaaS

在开源生态的贡献中,阿里从来都是大手笔投入。除了捐给Apache基金会的众多开源软件,也有阿里云捐赠给开放原子开源基金会的AliOS Things.
在开源硬件上,自然也有戏份。

HaaS是硬件即服务的缩写,旗下有多款开源硬件,比如HaaS100,HaaS600和刚发布的HaaS EDU K1.
image.png
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

结语:开源硬件畅想

聊了这么多开源硬件,可以发现它的发展轨迹是始于开源软件,也终于开源软件的。

回到本文开头的思考,到底是什么推动了行业飞速发展?原因似乎很容易理解,开源并非免费,开源是更多的资源互换,催生更多的交易,从而让整个社会的协作效率大大提升,实与“让天下没有难做的生意”有异曲同工之妙。

自由开放即生产力。

相关文章
|
2月前
|
人工智能 vr&ar Android开发
探索未来移动操作系统的技术前沿
【2月更文挑战第7天】本文将深入探讨当前安卓和iOS操作系统的技术发展趋势,包括人工智能、虚拟现实、增强现实等领域的创新应用。我们将探索未来移动操作系统的技术前沿,展望新一代操作系统的可能性,并对其对用户体验和行业发展的影响进行分析。
|
6月前
|
存储 人工智能 量子技术
中国芯的技术
中国芯的技术
190 0
|
设计模式 前端开发 搜索推荐
细数国产接口协作平台的六把武器!
软件界发展至今,API(接口)的重要性日益凸显——不同的端,不同的模块都在通过API交互,不同角色的成员也都在围绕着接口展开工作。
|
人工智能 供应链 监控
Xbox的奇幻漂流 大数据定成败
Xbox的奇幻漂流 大数据定成败
132 0
Xbox的奇幻漂流 大数据定成败
组态王、力控、MCGS、瑞尔、杰控等国内组态软件一点看法
从结构上说,组态王和MCGS一样,前台动画和后台集成在一起,在运行模式下一起运行。而力控、瑞尔却分为后台驱动、实时数据库、前台三部分组成,更为有意思的是,瑞尔的每一个驱动就是一个EXE,其驱动DLL的接口和力控的一致,不知他们是同出一源,还是互为“切磋”!
4543 0
|
测试技术 Python 编译器
8个嵌入式软件支柱
成功开发和启动嵌入式系统需要各种工程学科的广泛技能。每个嵌入式系统开发团队都需要八个不同软件开发领域的知识。开发人员掌握嵌入式软件这八大支柱的程度将直接影响开发成本,代码可扩展性以及其他关键开发指标中的系统稳健性。
1528 0
|
物联网 机器人 智能硬件