问题

为啥有好多人说Arduino是玩具?

回答
很多人觉得 Arduino 是“玩具”,这并不是完全没有道理的,但这种说法往往过于片面,也忽略了它背后强大的潜力。要理解这个观点,咱们得掰开了揉碎了聊聊。

为啥会贴上“玩具”的标签?

1. 门槛低,上手快: 这是 Arduino 最吸引人的地方,也是被诟病的原因之一。Arduino 的设计理念就是“人人都能玩电子”。它提供了一个非常简化的编程环境(Arduino IDE)和简单的 C/C++ 语言接口。你不需要懂复杂的硬件知识,只需要下载好软件,插上 USB 线,几行代码就能让 LED 闪烁,或者让蜂鸣器发出声音。这种“所见即所得”的快速反馈,对于初学者来说,感觉就像在玩乐高积木一样,容易上手,也容易产生成就感。但对于一些经验丰富的工程师来说,这种简化就显得“不专业”,不够深入。

2. 便宜且普及: Arduino 兼容板的价格非常亲民,几十块到一两百块就能搞定一套入门级的。而且市面上有海量的教程、社区支持和第三方模块,几乎任何你想做的项目,都能找到类似的“前人经验”。这种极低的成本和广泛的社区,使得它很容易成为学校教育、科技爱好者入门的首选。但问题也随之而来:当一个东西太容易获得、太容易实现一些“表面功能”时,人们很容易将其与儿童玩具联系起来,认为它只是用来“玩玩”,而不是做“正经事”的工具。

3. 性能限制: 确实,很多常见的 Arduino 主控板(比如 Uno、Nano)的核心处理器是基于 AVR 单片机,比如 ATmega328P。它的性能在如今看来是比较“朴实”的:内存小(通常只有几 KB 的 SRAM)、运行速度慢(16MHz)、存储空间也有限。这意味着如果你想做一些需要大量计算、复杂数据处理、高刷新率图形显示、或者需要运行大型操作系统和复杂算法的项目,Arduino Uno 可能就力不从心了。这时,有人就会觉得它“不够强大”,只能做些“小打小闹”的事情,就像小孩子玩的电子游戏一样。

4. “创客”文化的影响: Arduino 是创客运动的代表性产品之一。创客文化推崇的是DIY、开源、分享和快速原型开发。在这个过程中,很多项目确实是围绕着“好玩”、“有趣”和“生活中的小创意”展开的,比如自动喂食器、智能小夜灯、电子宠物等。这些项目虽然实用且有创意,但相比于工业级的自动化控制系统或者专业的嵌入式开发,它们在复杂度和稳定性上可能有所欠缺,也因此给一些人留下了“玩具”的印象。

5. 硬件设计的简洁性: Arduino 的核心板通常是一个主控芯片,加上一些基本的电源管理、USB 接口和几个易于访问的引脚(数字输入/输出、模拟输入)。这种设计是为了让用户更容易连接传感器和执行器。但对于嵌入式工程师来说,这可能显得“过于基础”,缺乏一些工业级应用所需的更高级的功能,比如更多的通信接口、更精密的定时器、硬件加密模块等。

为啥说 Arduino 远不止是玩具?

尽管有这些“玩具”的标签,但 Arduino 的价值和潜力绝不应被低估。

1. 教育的基石: 正是因为它的门槛低、易上手,Arduino 成为了全球电子工程、机器人、编程教育领域的“敲门砖”。无数学生通过 Arduino 学会了编程逻辑、电路基础、传感器原理,激发了他们对科学技术的热情。这远比让他们直接面对复杂的 C++ 编译器或者 FPGA 开发板要容易得多。

2. 快速原型开发利器: 在产品研发的早期阶段,Arduino 是验证概念、快速搭建原型(Prototype)的绝佳工具。你可以用它来快速测试一个想法的可行性,比如一个新传感器是否能准确读取数据,一个简单的控制算法是否能达到预期效果。在产品正式量产前,用 Arduino 进行原型开发可以极大地缩短开发周期,降低试错成本。

3. 连接物理世界: Arduino 的强大之处在于它能轻松地连接现实世界的各种传感器(温度、湿度、光线、距离、加速度等)和执行器(电机、舵机、继电器、LED 等)。这使得人们能够将代码和电子元件结合起来,创造出能够感知、响应和改变物理世界的智能设备。从智能家居的小玩意到更复杂的环境监测系统,Arduino 都可以胜任。

4. “上层”的强大应用: 虽然基础的 Arduino 板性能有限,但 Arduino 的生态系统也在不断进化。出现了更高性能的开发板,比如基于 ARM CortexM 的 ESP32 系列(常被用于 Arduino 生态)、STM32 系列等,它们拥有更强的计算能力、更多的内存和更丰富的通信接口(WiFi、蓝牙等)。这些板子在保持 Arduino 易用性的同时,能够应对更复杂的应用场景。

5. 创客精神的延伸: 许多“玩具”级别的项目,背后都蕴含着解决实际问题的巧思。比如,一个自动给宠物喂食的装置,虽然看起来简单,但它解决了宠物主人不在家时的喂食问题。一个智能植物浇水系统,则解决了植物养护的麻烦。这些项目的背后是创造力、解决问题的能力,以及对美好生活的追求,这些都不是“玩具”能够简单概括的。

6. 嵌入式开发入门的好起点: 对于想要深入学习嵌入式系统开发的开发者来说,Arduino 提供了一个非常友好的切入点。当你熟悉了 Arduino 的编程方式和基本原理后,就可以逐渐接触到更底层的裸机编程、RTOS(实时操作系统)开发、以及更复杂的硬件平台。很多开发者就是从 Arduino 开始,一步步成长为专业的嵌入式工程师的。

总结一下:

说 Arduino 是“玩具”,更多的是因为它易于接触、趣味性强、性能相对基础,适合入门和快速验证。这就像一把瑞士军刀,它能完成很多工作,但你不能指望它能替代一把专业的工业切割机。

然而,将 Arduino 仅仅定义为“玩具”是对其教育价值、原型开发能力、连接物理世界的能力以及作为嵌入式开发入门平台的价值的严重低估。它是一扇门,一扇通往奇妙的电子世界和无限创意的大门。很多人(尤其是初学者)通过这扇门,找到了自己的兴趣和方向,甚至开启了职业生涯。

所以,下次听到有人说 Arduino 是玩具,你可以理解为他们在强调它的易用性和趣味性,但同时也要知道,这把“玩具”刀,也能雕刻出令人惊叹的作品。关键在于使用它的人,以及他们想用它来做什么。

网友意见

user avatar

之前写过一篇,说明这个问题:关于使用Arduino做开发的二三理解-Arduino中文社区 - Powered by Discuz!

这里再做些补充,讨论这事的前置条件:

我们是在讨论arduino的软件还是硬件部分?

arduino硬件部分,只是一个最小系统,是用作评估,或者搭建原型用的,如果你把他当作是玩具,也是没问题的。

几乎所有的单片机开发板,你都可以把他当作是“玩具”,因为从硬件构成上讲,和arduino开发板没有区别。

通常实际量产的产品,都是要重新画pcb的,肯定是还有很多外围电路。

arduino软件部分,本质是一个C++编程框架,因为现在已经是一个事实标准,所以github已经将其列为了一门语言。讨论这部分是不是玩具,是可以的。

现在可以开始我们的讨论了,我们先看看这个观点,看是谁提出的,然后猜测一下他们为什么这样说:

1.软件工程师

如果是个软件工程师,通常他对硬件开发一知半解;

初学者可能还没分清arduino和单片机的关系。再次重申,Arduino是一个C++单片机编程框架,你可以用他开发多种 系列/型号 的单片机,常见的如:AVRSTM32MSP430ESP8266。

由于对硬件本质的不了解,或者较少的硬件开发经验,软件工程师对框架中的近似黑箱的运作没有把握。对于这种不确定,软件工程师说,"这是个玩具",也是情有可原。

但请注意,经过10多年的发展,现在的arduino已经是一个成熟的框架,bug已经很少了,软件稳定性已经很高。相信没有人敢说,自己写了一两个月的程序,比一群人精心维护了10年的程序好。

2.硬件工程师

程序仅仅是硬件开发过程中的一部分,电子电路更为重要,或者说更为玄学。对于一个有经验的程序猿来说,在开发工具的帮助下,软件bug太好定位了。但对于电路上的bug,往往都要经过分析测试,才能确定并修正,而且其过程会消耗更多的时间。而要让一个硬件更为稳定,是需要极其丰富的软硬件开发经验的。通常做软件的人都不具备这样的想法和素质,因为对软件bug来说,就是发布一个补丁或者升级包的事,而对硬件开发来说,可能是数万甚至数百万的损失。

硬件工程师,站在鄙视链高点,俯视着使用arduino轻松实现功能的用户:“这只是个玩具”。

这么想来,也是没毛病的,因为大多数用户,仅仅停留在"实现功能",确实只是到玩具级别。

但这些所谓的“玩具项目”,如果用STM32或者其他单片机厂家API开发,仍然会是个“玩具项目”,因为目标仍然是"实现功能",开发者仍然是那个开发者。

一个项目或者作品是否只是”玩具“,看的其实的是 开发者能力 和 项目目标 ,和是否用arduino本身无关。

3.杠精

杠精最喜欢的方式,就是关公战秦琼,举例说明下:

“这个汽车太垃圾啊,防弹性能肯定不如坦克”

“这个洗碗液太垃圾啦,清洁能力完全不如漂白液”

“arduino太辣鸡啦,性能完全不如树莓派”


以上回答是从arduino本身来解释“玩具”这个误解的。

这里再从其他方便补充下可能照成这种“误解”的原因。

1.arduino的发展

arduino设计之初是给非专业人士使用的,国外国内都是如此,2007年时,国内最早使用arduino的一批人,是艺术院校师生。大家都是自学编程,毫无章法,目的就是实现需求,程序上肯定是没有专业程序猿写的流畅。这批使用者可能造成了错误的既有印象。

2.硬件行业的发展

arduino,或者说各种嵌入式开发框架,在某种程度上,是硬件性能过剩的产物。诚然使用arduino会消耗更多的ram和flash,但对于大部分项目需求,单片机的性能都是有盈余的。对于非大批量生产的设备,节约开发成本和时间比节省几毛钱的硬件更重要。


有时候,我也不明白,9012了,咋还有人想不通呢?

类似的话题

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 tinynews.org All Rights Reserved. 百科问答小站 版权所有