关于"为什么说Arduino是玩具?"的回答

最开始从51入门、之后MSP、ARM、FriendARM等等和使用keil(MDK)、iar等工具、之后Arduino、Raspberry Pi的人想说:

”说’Arduino是玩具,和Arduino极其简单‘的人,基本是没有搞过Arduino的人,或者是接触Arduino浅尝辄止的人。“

  • Arduino不是电路板!!!
  • Arduino只是个开发方法和开发平台!!!
  • Arduino硬件和软件都是开源的!!!

1. Arduino平台可以支持很多MCU

Arduino可以支持从简单到复杂的很多种板子,从原理上说,是不受MCU限制的。当前已经可以支持包括ARM的STM32,ESP8266,ESP32等板子32位MCU。就是Arduino支持的最低功能的UNO板(atmega328p MCU),也比51板功能强大很多。

2.”搭积木“的结构

Arduino的开发方法是,硬件和软件的开发,都有明显的"搭积木"的方式,不重复"造轮子"。如果有已有"积木",硬件买来用,软件免费下载用; 如果"积木"不够,自己设计硬件或软件,构造新的"积木",再用这些"积木"搭建你的应用系统。
Arduino平台规定了一层硬件抽象层HAL,可以使你更加关注应用逻辑。因为是开源,底层细节源码也可以看到,很优秀的。

3.多快好高

Arduino开发方式例子丰富,思路开阔,入门学习容易,原型开发快,成功感强。也可以搞得很深,这与应用领域相关,如3D打印机、四轴飞行器、机器人、物联网应用、与树莓派连接等。

4.成功感

从Arduino开始学习,完全可以绕过开始学习的"挫折感期",较轻易进去高层开发阶段,同时也不失底层的开发能力。而开始就学习其它如51、arm和使用iar、mdk等开发工具,可能会阻塞在某个细节上,学习进度慢,挫折感强。

—以下后添加—

(1) 支持混合语言编程

Arduino平台采用著名的开源gcc编译器,自动支持汇编语言、C语言、C++语言混合编程。

(2) 直接支持面向对象思想!!!

Arduino平台可以使你直接就学习到面向对象的编程思路,库中的模块以类或对象形式给你,你理解它就是个"积木",让你以"搭积木"的方式去拼装应用,而这就是面向对象的方法。而从51等开始学习,即使语言上支持面向对象,但是还在用面向过程的思路编程。

(3)gcc支持

Arduino平台支持的最低配官方板子是Arduino UNO,第三方插件有支持更低配的ATTiny85八个引脚的MCU,也有支持ARM和ESP等32位机的MCU的插件。UNO板子采用ATMega328P的MCU,它是采用AVR8的内核的8位RISC的CPU,即使是8位CPU,gcc编译器也支持它。而gcc是不支持51的。
gcc支持Arduino!逐渐显现出linux的影子!

(4)麻雀虽小,也有引导

看看Arduino的引导程序bootloader,更显现出linux的影子!其中是汇编与C混合编程的。
(5)看看Arduino的Firmata,更神奇!!!
分布式控制,类似B/S程序结构。可以做到只在上位机编程,多个下位机采用Arduino板,所有下位机"仅仅"安装"一个"相同的Firmata客户端程序(像浏览器!),所有下位机的具体控制应用逻辑都在上位机中编程实现。上位机可以用树莓派。

(6)Arduino不支持操作系统?

支持!!!
当前的Arduino板不能支持linux os,那是因为硬件资源不够,原理上是支持的。
麻雀就应该有麻雀的心脏,而不是大象的。
Duinos是Arduino的操作系统之一,而本人更喜欢把nanoQP放到Arduino上作为操作系统。

(7)为什么还有那么多人还用51?

-MCS51系列是1980年INTEL设计出的微控制器(MCU),采用复杂指令集(CISC)的51内核。
-MCS51系列是最早进入国内的MCU,熟悉的人多。
-MCS51的IP核(知识产权核)便宜,公司可以很便宜购买51的IP核,构造公司自己的MCU或特殊芯片。如韩国的网络控制器芯片W5100,W5200,W5500等就是采用51核。
-MCS51功耗大,导致抗干扰强。在要求可靠性高而计算能力不高的情况下,抗干扰设计不用考虑太多,与低功耗MCU对比,抗干扰部分更好设计。这是一些应用者考虑比较多的因素之一。
-MCS51计算能力大约是AVR8(Arduino UNO板子用)的十分之一。

说实在的,以上内容对我已经翻篇了,我在用micropython,python,和AI相关东西。

猜你喜欢

转载自www.cnblogs.com/hyper99/p/guan-yuwei-shen-me-shuoArduino-shi-wan-jude-hui-da.html