关于"为什么说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相关东西。
关于"为什么说Arduino是玩具?"的回答的更多相关文章
- 学Arduino 需要做哪些准备?(引自"知乎用户:郑兴芳,DhP"的回答)
本人非电子专业,使用Arduino完全出于兴趣,目前主要用于实验过程中的自动化操作. 一.基础准备主要是看一些入门介绍的电子文档,如Arduino_Basic.PDF.ArduinoL2.PDF .& ...
- Arduino小车学习与研究
信安系统设计基础实践模块 Arduino小车学习与研究 ================== 陈都(20135328) 余佳源(20135321) 莫凡(20135225) ---------- 索引 ...
- Arduino小车学习与研究博客
Arduino小车学习与研究博客 信安系统设计基础实践模块 Arduino小车学习与研究 ================== 陈都(20135328) 余佳源(20135321) 莫凡(201352 ...
- Arduino语言学习记录(持续更新)
几天前某宝买了一套,这几天没工夫.今天开始学学这个“玩具”. 1.Arduino的变量数据类型: 数据类型 数据类型 RAM 范围 void keyword N/A N/A boolean 1 by ...
- 【原创】Arduino入门基础知识总结
一.概述 Arduino是源自意大利的一个开放源代码的硬件项目平台,该平台包括一块具备简单I/O功能的电路板以及一套程序开发环境软件. Arduino可以用来开发交互产品,比如它可以读取大量的开 ...
- Arduino通过L9110进行电机控制
L9110S是为控制和驱动电机设计的两通道推挽式功率放大专用集成电路器件,将分立电路集成在单片IC之中,使外围器件成本降低,整机可靠性提高. 该芯片有两个TTL/CMOS兼容电平的输入,具有良好的抗干 ...
- python 全栈开发,Day133(玩具与玩具之间的对话,基于jieba gensim pypinyin实现的自然语言处理,打包apk)
先下载github代码,下面的操作,都是基于这个版本来的! https://github.com/987334176/Intelligent_toy/archive/v1.6.zip 注意:由于涉及到 ...
- Arduino入门笔记(1):认识Arduino
转载请注明:@小五义http://www.cnblogs.com/xiaowuyi 欢迎加入讨论群 64770604 各种网站论坛里经常看到网友DIY各种遥控小车.机器人什么的,一直很好奇,很想学习一 ...
- ArduinoYun教程之OpenWrt-Yun与CLI配置Arduino Yun
ArduinoYun教程之OpenWrt-Yun与CLI配置Arduino Yun OpenWrt-Yun OpenWrt-Yun是基于OpenWrt的一个Linux发行版.有所耳闻的读者应该听说他是 ...
随机推荐
- angularjs初识ng-app、ng-model、ng-repeat指令
ng-app属性是angular.js的标志语句,它标记了angular.js的作用域.ng-app可以添加在很多地方,像上面那样添加到html标签上,说明angular脚本对整个页面都起作用.也可以 ...
- C语言图形编程
四.图形和图像函数(一) 像素函数 56. putpiel() 画像素点函数 57. getpixel()返回像素色函数(二) 直线和线型函数 58. line() 画线函数 ...
- lsnrctl 与 tnsnames.ora 的联系
平台:Windoxs XP+Oracle 11G 当使用oralce的 Net Manager创建了一个名为“L3”的Listener后,要想使用lsnrctl启动和关闭 L3 还必须在tnsname ...
- 单机安装hive和presto
问题: 公司最近在搞presto,主要是分析一下presto和hive的查询大数据量的性能对比: 我先把我的对比图拿出来(50条数据左右)针对同一条sql(select * from employee ...
- Django 配置mysql
1.创建数据库 create database django_lianxi charset=utf8; 2.django项目文件夹的setting.py设置 Django项目默认 sqlite3 数据 ...
- 5.Spring MVC 自动装配问题
一.使用@controller注解,实际上也是在IOC容器中配置了,它的id是类的首字母小写 一.使用@controller注解,实际上也是在IOC容器中配置了,它的id是类的首字母小写 1.如果不使 ...
- 第六章 函数、谓词、CASE表达式 6-1 各种各样的函数
一.函数的种类 算术函数 字符串函数 日期函数 转换函数 聚合函数 二.算术函数 + - * / 1.ABS——绝对值 ABS(数值) 绝对值 absolute value ,不考虑数值的符号 ...
- Java中的消息框
JOptionPane.showMessageDialog(newFrame.getContentPane(),"弹出的是消息提示框!", "系统信息", JO ...
- Oracle GoldenGate DDL 详细说明 使用手册(较早资料)
一. 概述 DDL 相关的参数包括:DDL.DDLERROR.DDLOPTIONS.DDLSUBST.DDLTABLE.GGSCHEMA. PURGEDDLHISTORY.PURGEMARKERHIS ...
- 编译并导入OpenSSL
编译并导入OpenSSL 1. 首先,需要运行脚本生成OpenSSL库,参考 https://github.com/x2on/OpenSSL-for-iPhone 示例 2. 运行脚本生成静态库 下一 ...