都2020年了,还有必要学Arduino吗

小编经常被初学者问到一个问题,现在市面上这么多平台开发板,什么51、STM32、ESP8266/ESP32、Micro:bit还有各种Pi,外加一堆语言、图形化编程。我到底学哪一个呢,听说Arduino不错,学了有用么?一些Arduino的老玩家也开始疑惑:这2020年都快过了一半了,现在玩Arduino还有这个必要么?ESP8266/ESP32不香么?

都2020年了,还有必要学Arduino吗

是啊,自2004年左右第一块Arduino的诞生到2020年都已经过了16年了,16年对于一款硬件平台来说已经很长了,可以说Arduino已经步入中年。几年前,我们在「Arduino入门16: 学习方法建议和Arduino的未来」中描述了Arduino的困局:当这个万物互联的大趋势下,各路自带联网、智能化属性的硬件平台争先崛起,而专业垂直领域被性能更强大价格更优美的专业硬件盘踞地越来越深,Arduino处于一种前有狼后有虎的困局中。那么几年后的今天,这个格局发生了多少变化?Arduino的官方是如何应对Arduino的“中年危机”?以及我们作为学习者如何顺应趋势,小编今天就和大家来侃一侃。

外部市场的蚕食

如果把市面上常见的几种平台按市场分一下类,我们可以发现Arduino主要面向的对象市场是爱好者和教育市场,而这几年,这在两类市场中,Arduino的份额基本都被三个平台慢慢蚕食。首先是教育市场,BBC推出Micro:bit自2016面市后,推广力度非常大,其本身的设计也深受青少年编程教育的喜爱。硬件方面麻雀虽小,但集成了很多传感器和输出元件,配套的编程环境和课程都非常完备。

都2020年了,还有必要学Arduino吗

都2020年了,还有必要学Arduino吗

还有国内模仿Micro:bit范式基于ESP32的掌控板和M5STACK,这些后起之秀都借鉴了Arduino的优秀理念,并在垂直领域青出于蓝,用更加集成化的生态课程蚕食着这块市场并构筑自己的护城河。而相比它们,Arduino的硬件和生态体系显得非常*和无中心化,显得更“散装”。

都2020年了,还有必要学Arduino吗

都2020年了,还有必要学Arduino吗

而在DIY爱好者市场,可以说是Arduino的基本盘,也在被ESP系列和树莓派家族蹂躏。树莓派家族还算界限清楚,主要搞搞网络服务和计算,视觉处理什么的,作为单片电脑在性能和价位上都和Arduino保持区别,而且显然树莓派基金会还是在努力更新的,同样的价格隔一两年性能就翻几倍。

都2020年了,还有必要学Arduino吗

而这两年ESP8266和ESP32在开源社区里更是流行地不得了,除了自带WiFi(ESP32还是WiFi和BLE双模),性能也更强,自从能用Arduino IDE给ESP8266/ESP32编程后,那简直就是“人有我有,人无我还有”啊。像什么Wemos D1 UNO,长得像你,还比你便宜比你牛,不香么?

都2020年了,还有必要学Arduino吗

而在专业的电子领域,类似51或者STM32为首的ARM阵营大多数都是电子工程师技能树,学习Arduino属于借道启蒙,或者锦上添花,大多数还是要回归故土的,该学的C/C++底层还是要学的。

官方内部的挣扎

外面硝烟四起,那这几年官方是如何谋划应对的呢?很可惜,小编并没有看到什么实质性的努力。参考「什么?正版Arduino涨价了?」,2015-2019年官方的精力基本浪费在了内斗。2019年统一后官方一顿骚操作,正版的Arduino硬件价格不降反升。

硬件上,继UNO以后,尽管官方在IoT和深度学习方向上出过几款开发板,但就性价比上都算不上一款具有竞争力的开发板(至少在中国)。

都2020年了,还有必要学Arduino吗

都2020年了,还有必要学Arduino吗

唯一可圈可点的是软件上,官方重写了底层工具链,推出了Arduino CLI命令行工具。以及在命令行工具基础上新的IDE工具Arduino IDE pro。终于在开发者工具上加入自动补全还有一些debug功能。

都2020年了,还有必要学Arduino吗

都2020年了,还有必要学Arduino吗

还有学习Arduino的必要么?

尽管Arduino内外堪忧,但不容否认的是还没有一款平台能完完全全地取代它。这得益于它广泛的群众基础和开放性。就像有朋友留言区说的Arduino更像是一种框架协议,新生代的平台想利用Arduino的社区和知识就需要根据Arduino的规则和接口提供自己的接口和资源,这种相互交融式反哺也为Arduino的生态链带来了活力。这种力量也是Arduino历经16年仍然受欢迎的理由。但这并不意味着,Arduino官方可以一直啃老本行。

都2020年了,还有必要学Arduino吗

至于我们作为学习者如何选择,小编认为还是因人而异。如果把主流各种学习平台放在xy坐标系上,x轴代表平台的性能或者智能化程度,y轴代表语言的抽象程度(汇编或者C语言属于更接近机器的低级语言,像Python脚本属于高级语言)。

都2020年了,还有必要学Arduino吗

我们可以预见,在各个位置都会有相应的平台冒出来,平台间会越来越“挤”,平台也会发展着越来越“专”。比如Arduino的基本盘还是在非智能化的终端,比如读个温度传感器,驱动个电机什么的应用场景,但它的语言抽象程度比专业的51或者STM32更高,对初学者更加友好。

所以如果你是想成为专业的电子工程师,以后接触的也是应用型的消费电子或者终端,那Arduino可能会是入门或者快速原型的选择,最终你还是要去死磕模电数电和C/C++。

如果你是设计师、艺术家,不想成天和编程打交道又想实现比较酷炫的声光电,那Arduino、ESP8266甚至图形化的Micro:bit都可以玩一玩。

如果你对网络数据处理、机器视觉、嵌入AI等方向更感兴趣,那你的技能树应该向右走,可能Arduino并不是你最好的选择。

当然,如果你很牛,你可以选择全都要。

都2020年了,还有必要学Arduino吗

都2020年了,还有必要学Arduino吗

你点的每个赞,我都当成喜欢