Arduino真的只是玩具吗?学习方向?stm32/esp32?未来Arduino发展预测?

[复制链接]
草鞋林 发表于 2023-10-3 19:08:38|来自:江西南昌 | 显示全部楼层 |阅读模式
大三了,刚刚结束了今年电赛,因为在学校中,老师的各种项目,以及平时接触到的,大部分都是用32进行开发的,所以个人也对环境比较熟悉,但是在本次电赛中,我发现同一个实验室另一组是在esp32上用Arduino进行开发的,在结束后的讨论中,我发他们开发速度比我们快很多,当然,这不排除个人因素,但我突然发现Arduino这个开发环境并不像网上大部分人说的如何如何,赛后,在我看了他们的代码后,我发现Arduino的环境以及各种开源库异常完备,而且代码也很优雅,对我过去唯32的观点造成了一定冲击,且esp32等对于无线通讯也具有极大便利,我目前是在校学生,我目前觉得esp32除了gpio较少,好像更有利于我们的开发,故我想问,作为一个未来想向嵌入式方向发展的自动化大三学生,是否有必要去详细钻研一下esp32等除了32以外的用arduino开发的微处理器,以及处理器之间的优劣,适用范围,以及Arduino环境的发展,是否有必要详细学习,以及对其未来发展的预测(Arduino)?
全部回复5 显示全部楼层
hhhh713 发表于 2023-10-3 19:08:54|来自:江西南昌 | 显示全部楼层
这个问题的本质是个人发展方向的问题,说白了是主攻业务还是主攻底层的选择。
主攻业务,核心竞争力是业务素质,而不是掌握了多少承载业务的平台。越来越多的单片机库和Arduino这样的开发环境的出现,就是要让开发人员专注业务的开发,尽量不被底层的问题所困扰。
主攻底层,核心竞争力是对处理器硬件和底层软件的掌握,也就是微机原理和操作系统这两个大方向。这比会操作单片机的寄存器难得多,所以也不用纠结哪个平台未来更有发展空间,掌握了最基础的东西,就会发现不管啥型号的处理器都是殊途同归。
可以看到不管哪个方向,未来发展都与使用的硬件平台无关,所以没必要纠结什么平台未来更有发展前景,短时间内上手一个新平台是优秀开发者的基本素养。
huchuanhao 发表于 2023-10-3 19:09:02|来自:江西南昌 | 显示全部楼层
arduino是开发环境,不是一块板子。
正经懂单片机的不会说arduino是玩具,开发环境怎么能是玩具?
stm32的几乎每一个系列都已经被arduino较好的兼容了,而且这个过程还在继续。
很多牛逼优秀的库都移植成功(甚至不用移植直接用)。大量的社区贡献和繁荣的生态环境,目前找不到第二个。
说arduino是玩具的人,大概率不会给arduino写库,想深入学习,c++类库写起来吧。。。。。
未来,一套api兼容所有单片机的情况或许要实现了。。。。
dzq2828 发表于 2023-10-3 19:10:00|来自:江西南昌 | 显示全部楼层
可以是玩具,但是并不只是玩具。
在嵌入式开发中,大致有两种需求:
第一种是,我有一个想法或者方案要进行快速验证。这时候,我需要一个硬件统一,软件资源丰富,开发方便的硬件平台。这种情况下,成本、稳定性之类的需求都是次要的。
第二种是,我需要开发一个产品。这时候,成本往往就成为了第一需要考虑的因素,然后还有体积、性能、功耗、稳定性、外围电路复杂度、布线难易度、供货稳定度等等等等多种因素都需要进行考虑。
以上的这两种需求中,Arduino可以在较多情况下满足第一种需求。而第二种需求,STM32/ESP32只是大多数情况下优先考虑的方案。具体用什么还是需要具体问题具体分析。
所以Arduino非常适合电赛这种应用场景——上手容易,优先考虑功能的实现而不是易用性和成本。而工业和消费市场上的产品很少用Arduino的——成本高,体积大,性能弱等都是它的致命缺点。
至于未来的发展前景,如果做嵌入式开发只是爱好,那么深入研究下Arduino没啥问题。如果不是爱好,而是要吃饭的家伙,那还是不要在Arduino上浪费太多时间的好。
tdmazi 发表于 2023-10-3 19:10:13|来自:江西南昌 | 显示全部楼层
抖个机灵,你都会用32了,arduino可不就5天学会arduino,有啥好钻研的?
<hr/>好好说话,arduino也好,32也好,51也好,树莓派也好,海思麒麟970也好,都只是工具。最重要的,是你想用这个工具干什么,而不是,到底哪个工具最牛逼?我想把这个工具用的多好,这是很大的一个误区。

你说,我去参加比赛,那种从给题目到做出来只有3天时间的比赛,我非要在这三天时间,折腾一个不太熟练的工具,第一天搭建熟悉开发环境,第二天移植之前写的代码到这个平台,第三天,比赛结束了。这不扯淡呢麽,不过,你还别笑,我还真这么干过。
你说,我要去创业,做一款遥控车,就遥控车能前进后退,转向都不需要。我就觉得华为的麒麟970厉害,我就要用970开发板做主控,那没问题呀,量产以后,一个只能前进后退的遥控车,卖5000块,挺划算呗?
所以,搞清楚你的目的是什么,为了这个目的,我选哪个工具去学习使用,然后实现我的目的。而不是这么多工具,到底哪个工具最牛逼,我去学那个工具,然后我再看,我能用这个工具干什么。

回到前面的例子,你说,我参加一个三天的比赛,从给题目到结束就3天时间,也没限定一定要用什么芯片。arduino我最熟练,写代码最快,那我就用arduino,我把时间留给其他东西,对吧。或者你说32我最熟练,写代码最快,那我就用32,也行。再不济你说,我就学了51,我觉得51能实现这个题目,我就用51,这都没问题。
你说我要创业,造一个只能前进后退的遥控车,那就用最便宜的51呗,几毛钱一片,比32几块钱一片,比arduino uno几十块一片,比麒麟970几千块一片便宜多了。51最便宜,我成本就最低,我就能赚更多钱呗。
看到了吗?场景不一样,目的不一样,没有绝对完美的工具。

最后,谁说32不能用arduino开发的?stm32duino了解一下呗?
32,51这是说的芯片。arduino、stm32库开发、stm32 hal、mbed os、platformio、alios things、tencentOS tiny、鸿蒙操作系统,这都相当于是写代码用的框架。
arduino uno用的avr,esp8266这是乐鑫的芯片,它们都能用arduino这个框架写代码,uno只能实现普通单片机的功能,esp8266、esp32多了射频模块,所以能实现wifi的一些功能。arduino不等于esp32,不等于esp8266,不等于arduino uno。

明白了吗?工具都是好工具,关键是,不同场景,要去选择合适工具,没有完美的工具。你问,stm32这个芯片和arduino这个硬件加软件框架的发展方向,我也不知道,好比你问,自行车轮子和电动汽车的发展方向哪个好?这俩都不是一个东西。你问,STM32库开发和arduino的发展方向?哪个好?STM32库开发更自由,你能很方便的写各种中断的逻辑。arduino开发起来更快。另外,STM32库开发没办法给乐鑫的芯片写代码,也没办法给庆科的芯片新代码,arduino能给32写代码。

最后的最后,总结:
你说,我的目的,就是成为一名单片机工程师,那现在公司里面很少有用arduino做开发的,就老老实实学精32。
你说,我的目的,是自己没事捣鼓个小玩意儿,只是需要这么个东西,能做主控,那arduino挺适合,这个框架适配了非常多的芯片,挺好使。
你说,我还想要高级点的,洋气点的,那,ARM亲自操刀,Mbed了解一下呗?欢迎看看我写的另一篇文章:Mbed——我心中完美物联网OS。
51、32、麒麟970这都是芯片,都有适合他们场景。32库开发,hal开发,arduino,mbed也都有他们适合的开发场景。搞清楚你要干什么吧,工具,只是工具。
之海 发表于 2023-10-3 19:10:55|来自:江西南昌 | 显示全部楼层
个人见解:
Arduino只适合短期速成,比如参加比赛、DIY;不适合做工程项目,因为你很难独立根据库来做出很深的东西。
讲真,带Arduino的比赛的代码绝大部分都是抄GitHub里面的开源代码的,没有技术含量,不信你自己搜一搜,多的是!
认真的讲,Arduino只能在高端一点的玩具里出现,低端的玩具压根就带不起Arduino,因为太吃硬件了。
我个人很不喜欢esp32,限制太多,佛系ADC,要外挂flash(内置的太少),休眠时启动太慢,bug太多。

快速回帖

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则