Arduino到底适不适合做产品?

【点击上方「蓝字」关注芯片之家,一起成为技术颜控】

Arduino一直受到众多非“Arduino派”的争议,这周我们就一起来看看几个Arduino社区里面小伙伴们常见的几个观点吧。

大家也可以在文末留言区发表自己的看法!

c1d9c296ba327cfc0cedc52bb0055bfa.jpeg

一、Arduino性能很低,不如树莓派等开发板,所以不要用Arduino做开发

A:杀鸡焉用牛刀,中科院不会用银河来玩魔兽,你也不会想用计算器来LOL,不同的平台有不同的定位。

B: Arduino更多用在数据采集和控制上,简单轻量。而树莓派等带OS开发板可以实现更多的复杂功能,如图形图像处理。

C: 聪明的开发者会选择合适自己、合适项目的平台,而非选择性能最强大的平台。

2461d94f5246b157e4b4cebdbef557fa.jpeg

二、Arduino程序效率很低,所以不要用Arduino做开发

A: Arduino核心库是对AVRGCC的二次封装,确实会降低一些运行效率,但是这又有什么关系呢?你的程序真是对实时性要求很高么?至少我在论坛或者国内没有看到多少对效率极为苛求的项目。

B: Arduino与传统的单片机开发的关系,类似于各种语言和其配套的SDK,一个正常的程序必定是选择一个合适语言+相应的SDK快速的做出开发,选择Arduino做开发也是如此。

当然,你可以选择使用传统方式,甚至是汇编开发单片机,把效率做到极致,但你必定会付出更大的学习成本,程序后期的修改也会变得举步维艰。

C: 如果你的项目真是需要很高的实时性,那我建议你使用Arduino+avrgcc,甚至Arduino+汇编的混编方式开发,如果这样还达不到你的要求,你还可以使用chipkit、maple等32位的类Arduino的开发平台。

三、Arduino只能开发玩具,不能做产品

A: 能不能开发产品和Arduino本身无关,只与你自身能力有关。

0d8ceff6e1d0e0759672c1a3ee376f49.jpeg

B: 国内外很多公司都在使用Arduino开发产品,也有不少成功的商业产品(我知道肯定有人要来和我较真什么叫“成功”了),所谓的不能开发产品,只能当玩具一说,完全是无稽之谈。如果你真是从事硬件开发的人员,你会发现现在各大IC厂商都推出了自己的类库或sdk,其本质和Arduino类库是一样的,这也是硬件行业的趋势。这和大家写软件用别人的sdk是一个性质。

四、Arduino开发板成本太高,不适合做产品

A: 我介绍Arduino时,都会告诉别人Arduino是一个开发平台。

我所说的用Arduino做开发,指的是使用Arduino核心库做开发。开发产品也并不是非得集成个Arduino开发板,一个核心的控制芯片足以。

至于芯片多少钱,开发者们自己去查吧。如果你对产品体积没要求,且产量很小,也完全可以直接使用Arduino控制器。

B: 在小批量的情况下,使用Arduino开发可以大大的降低你的开发成本,这个就没啥好说的了。如果你的项目产量超级大,你当然应该选用更便宜的芯片开发,1块钱的stc,5毛钱的HT都是可以的。

总结一下

Arduino的优势在于社区的强大和众多类库资源,其资源和影响力已经让GitHub都加上了Arduino语言分类。

有个冷笑话:如果在任一程序QQ群说“php是最好的web语言”,必定会激起一番论战。

如果讨论众多硬件开发平台孰好孰坏,就会陷入这种无意义的逻辑中。

没有最好的开发平台,只有最适合项目的,最适合自己的开发平台。

个人见解

以下列举的一些情况,属于个人经验,可能不正确,欢迎大家在留言区讨论交流。

哪些情况Arduino可能适合你:

  • 你从来没接触过硬件开发;

  • 你想快速的开发,降低开发成本;

  • 你的项目未来产量不大,或者就不会量产(这个需要你自己测算开发成本和生产成本的关系);

哪些情况Arduino可能不适合你:

  • 如果你对处理能力,系统实时性有较高要求,那Arduino不适合你;

  • 如果你的项目未来产量巨大,那Arduino也不适合你(这个需要你自己测算开发成本和生产成本的关系);

  • 对其他一种单片机或者硬件开发平台开发极其熟悉;

  • 你项目会使用的到的类库在其他平台也有,且其他平台硬件成本、开发成本也很低;

为什么使用Arduino做开发?

为什么使用Arduino做开发平台,用Arduino制作作品或者进行产品开发的几点优势:

1、跨平台

Arduino IDE可以在Windows、Macintosh OSX、Linux三大主流操作系统上运行,而其他的大多数控制器只能在Windows上开发。

2、简单清晰的开发

Arduino IDE基于processing IDE开发。对于初学者来说,极易掌握,同时有着足够的灵活性。Arduino语言基于wiring语言开发,是对 AVRGCC库的二次封装,不需要太多的单片机基础、编程基础,简单学习后,你也可以快速的进行开发。

3、开放性

Arduino的硬件原理图、电路图、IDE软件及核心库文件都是开源的,在开源协议范围内里可以任意修改原始设计及相应代码。

4、社区与第三方支持

Arduino有着众多的开发者和用户,你可以找到他们提供的众多开源的示例代码、硬件设计。例如,可以在Github.com、Arduino.cc、Openjumper.com等网站找到Arduino第三方硬件、外设、类库等支持,更快更简单的扩展你的Arduino项目。

5、硬件开发的趋势

Arduino不仅仅是全球最流行的开源硬件,也是一个优秀的硬件开发平台,更是硬件开发的趋势。Arduino简单的开发方式使得开发者更关注创意与实现,更快的完成自己的项目开发,大大节约了学习的成本,缩短了开发的周期。

因为Arduino的种种优势,越来越多的专业硬件开发者已经或开始使用Arduino来开发他们的项目、产品;越来越多的软件开发者使用Arduino进入硬件、物联网等开发领域;大学里,自动化、软件,甚至艺术专业,也纷纷开展了Arduino相关课程。

本文素材来源Arduino中文社区,DF创客社区,整理自strongerHuang

b469367211369147bb00520910ed720e.jpeg

老宇哥带你玩转ESP32,12篇基础教程已经更新完毕,接下来是进阶教程

58f8fd0a234a596d46f4b1e496910c94.jpeg

老宇哥带你玩转 ESP32:14 亲自动手做一个双向通讯的无线遥控器(一)

5f7d2277362d4a138efd73fab016254d.jpeg

基于 ESP32 + LVGL8.0 的小电视

a1c8eade2f155abbea67bcb182d38fc3.jpeg

经典深度分析!ESP8266/ESP32自动下载电路究竟是如何巧妙实现的

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值