查看: 171766|回复: 123

关于使用Arduino做开发的二三理解

  [复制链接]
  • TA的每日心情
    奋斗
    2018-8-17 09:12
  • 签到天数: 47 天

    [LV.5]常住居民I

    发表于 2014-4-24 12:40 | 显示全部楼层 |阅读模式
    转帖、引用都请注明出处!
    见到很多人对Arduino的开发方法 、应用场景有误解,特别开个帖子说明下。


    误解一:Arduino性能很低,不如树莓派等开发板,所以不要用arduino做开发
    杀鸡焉用牛刀,中科院不会用银河来玩魔兽,你也不会想用计算器来LOL,不同的平台有不同的定位;
    Arduino更多用在数据采集和控制上,简单轻量。而树莓派等带OS开发板可以实现更多的复杂功能,如图形图像处理;
    聪明的开发者会选择合适自己、合适项目的平台,而非选择性能最强大的平台。

    误解二:Arduino程序效率很低,所以不要用arduino做开发
    Arduino核心库是对AVRGCC的二次封装,确实会降低一些运行效率,但是这又有什么关系呢?你的程序真是对实时性要求很高么?至少我在论坛或者国内没有看到多少对效率极为苛求的项目;
    Arduino与传统的单片机开发的关系,类似于各种语言和其配套的SDK,一个正常的程序必定是选择一个合适语言+相应的SDK快速的做出开发,选择Arduino做开发也是如此。
    当然,你可以选择使用传统方式,甚至是汇编开发单片机,把效率做到极致,但你必定会付出更大的学习成本,程序后期的修改也会变得举步维艰;
    如果你的项目真是需要很高的实时性,那我建议你使用arduino+avrgcc,甚至arduino+汇编的混编方式开发,如果这样还达不到你的要求,你还可以使用Arduino Due、Arduino Zero、chipkit、maple等32位的arduino的开发平台。

    误解三:Arduino只能开发玩具,不能做产品
    能不能开发产品和arduino本身无关,只与你自身能力有关。多次封装后可靠性是否会降低?没有数据或案例表明arduino库的封装导致可靠性降低,更多时候,可靠性主要依靠编程能力、电路设计能力和编译器的性能。不过可以肯定的一点是,精心维护了数年的代码理论上会比自己花几天写的代码更可靠 。
    国内外很多公司都在使用Arduino开发产品,也有不少成功的商业产品(我知道肯定有人要来和我较真什么叫“成功”了),所谓的不能开发产品,只能当玩具一说,完全是无稽之谈。如果你真是从事硬件开发的人员,你会发现现在各大IC厂商都推出了自己的类库或sdk,其本质和Arduino类库是一样的,这也是硬件行业的趋势。这和大家写软件用别人的sdk是一个性质。
    我个人也一直不太明白有人说arduino不能开发产品的逻辑何在,就不能把它当作avr+sdk么?如果你的理由是成本,那看下一条。

    误解四:Arduino开发板成本太高,不适合做产品
    我介绍Arduino时,都会告诉别人Arduino是一个开发平台。
    我所说的用Arduino做开发,指的是使用arduino核心库做开发。开发产品也并不是非得集成个Arduino开发板,一个核心的控制芯片足以。
    至于芯片多少钱,开发者们自己去查吧。如果你对产品体积没要求,且产量很小,也完全可以直接使用Arduino控制器。
    在小批量的情况下,使用arduino开发可以大大的降低你的开发成本,这个就没啥好说的了。如果你的项目产量超级大~你当然应该选用更便宜的芯片开发,1块钱的stc,5毛钱的HT都是可以的。


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

    有个冷笑话:如果在任一程序QQ群说“php是最好的web语言”,必定会激起一番论战。
    如果讨论众多硬件开发平台熟好熟坏,就会陷入这种无意义的逻辑中,所以请注意,我没有说过Arduino是最好的开发平台,我只是希望大家知道选择一个适合的自己,适合项目的开发平台,才是最重要的。
    以下是我列举的一些情况,个人经验,可能不正确,欢迎大家讨论。

    哪些情况Arduino可能适合你:
    你从来没接触过硬件开发;
    你想快速的开发,降低开发陈本;
    你的项目未来产量不大,或者就不会量产(这个需要你自己测算开发成本和生产成本的关系);

    哪些情况Arduino可能不适合你:
    如果你对处理能力,系统实时性有较高要求,那Arduino不适合你;
    如果你的项目未来产量巨大,那Arduino也不适合你(这个需要你自己测算开发成本和生产成本的关系);
    对其他一种单片机或者硬件开发平台开发极其熟悉;
    你项目会使用的到的类库在其他平台也有,且其他平台硬件成本、开发成本也很低;


    为什么使用Arduino做开发——以下摘自《Arduino程序设计基础》,引用转发都请注明出处
    1.3        为什么使用Arduino做开发平台
    用Arduino制作作品或者进行产品开发的优势是很明显的。
            跨平台
    Arduino IDE可以在Windows、Macintosh OSX、Linux三大主流操作系统上运行,而其他的大多数控制器只能在Windows上开发。
            简单清晰的开发
    Arduino IDE基于processing IDE开发。对于初学者来说,极易掌握,同时有着足够的灵活性。Arduino语言基于wiring语言开发,是对 AVRGCC库的二次封装,不需要太多的单片机基础、编程基础,简单学习后,你也可以快速的进行开发。
            开放性
    Arduino的硬件原理图、电路图、IDE软件及核心库文件都是开源的,在开源协议范围内里可以任意修改原始设计及相应代码。
            社区与第三方支持
    Arduino有着众多的开发者和用户,你可以找到他们提供的众多开源的示例代码、硬件设计。例如,可以在Github.com、Arduino.cc、Openjumper.com等网站找到Arduino第三方硬件、外设、类库等支持,更快更简单的扩展你的Arduino项目。
            硬件开发的趋势
    Arduino不仅仅是全球最流行的开源硬件,也是一个优秀的硬件开发平台,更是硬件开发的趋势。Arduino简单的开发方式使得开发者更关注创意与实现,更快的完成自己的项目开发,大大节约了学习的成本,缩短了开发的周期。

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














    如果以上内容对你有帮助,你可以通过打赏支持作者

    4人打赏

  • TA的每日心情

    2015-9-22 09:41
  • 签到天数: 9 天

    [LV.3]偶尔看看II

    发表于 2014-4-26 00:09 | 显示全部楼层
    适合忽悠初学,真是非常强大的库呀,很容易就能实现,和在2000年我学vb一样的道理。
    管他呢,能学习容易入门,以后再想成为高手吧……

    该用户从未签到

    发表于 2014-4-30 08:35 | 显示全部楼层
    像我们这些普通工科专业的,并没有系统学过单片机。但是,有了更简单的,更忽略硬件细节的开发平台,结合我们的专业就能做出更多更有用的东西出来。{:soso_e116:}
  • TA的每日心情
    郁闷
    2015-2-1 17:22
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    发表于 2014-4-24 15:11 | 显示全部楼层
    这么好这么详细的介绍,楼主辛苦了
  • TA的每日心情

    2016-1-14 16:32
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2014-4-24 16:20 | 显示全部楼层
    lz这是让谁给气到啦?呵呵

    该用户从未签到

    发表于 2014-4-24 16:22 | 显示全部楼层
    说的实在的话,觉得Arduino拿来做产品的,估计是技术不到家。。。。

    点评

    你自己不也用arduino开发了项目,赚了不少钱啊,咋就不能做项目,做产品呢~  详情 回复 发表于 2014-4-24 16:48
  • TA的每日心情
    慵懒
    2017-8-30 09:12
  • 签到天数: 14 天

    [LV.3]偶尔看看II

    发表于 2014-4-24 16:31 | 显示全部楼层
    赞同2 3 4~ 但1里面说的树莓派做图形图像处理。。呵呵呵。。。
    单张图片还行。。买了做了个摄像头捕捉。。完全不行。。10FPS。。
    打赏作者鼓励一下!
  • TA的每日心情
    慵懒
    2017-8-30 09:12
  • 签到天数: 14 天

    [LV.3]偶尔看看II

    发表于 2014-4-24 16:33 | 显示全部楼层
    szchenwei 发表于 2014-4-24 16:22
    说的实在的话,觉得Arduino拿来做产品的,估计是技术不到家。。。。

    我觉得挺好的嘛。。看着人家用STM32做的中控,我用arduino也做了一个~妥妥的~
    打赏作者鼓励一下!

    该用户从未签到

    发表于 2014-4-24 16:36 | 显示全部楼层
    .oο麽麽茶㊣ 发表于 2014-4-24 16:33
    我觉得挺好的嘛。。看着人家用STM32做的中控,我用arduino也做了一个~妥妥的~ ...

    自己玩和做demo还是很支持的,也很好玩,容易快速搭建出来

    该用户从未签到

    发表于 2014-4-24 16:36 | 显示全部楼层
    .oο麽麽茶㊣ 发表于 2014-4-24 16:33
    我觉得挺好的嘛。。看着人家用STM32做的中控,我用arduino也做了一个~妥妥的~ ...

    自己玩和做demo还是很支持的,也很好玩,容易快速搭建出来
    您需要登录后才可以回帖 登录 | 立即注册  

    本版积分规则

    热门推荐

    中文字库的8针OLED12864模块 arduino
    中文字库的8针OLED12864模
    屏幕电路SPI连线: 中文字库OLED Arduino UNO GND GND
    博哥零基础教你玩转ESP8266(一) 重识ESP8266
    博哥零基础教你玩转ESP826
    帖子导航: 博哥零基础教你玩转ESP8266(一) 重识ESP8266 博哥零基础教你玩转ESP8266
    wifi音箱
    wifi音箱
    大家好,最近事情事炒鸡炒鸡多,姗姗来迟 很早前就计划自己做个wifi音箱了,正好趁这
    原创 drawbot平面关节机械臂 教程直播贴
    原创 drawbot平面关节机械
    这个项目上个月就在做了,结构和代码反反复复改了多次,加上自己又太懒,一直没来得及
    创客集结号:MakeBlock mBot智能小车作品
    创客集结号:MakeBlock mB
    创客集结号:该套件包括各种随时可以使用的项目,包括避障车,线下车,遥控车,可用于
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   ( 蜀ICP备14017632号-3 )
    快速回复 返回顶部 返回列表