关于"为什么说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发行版.有所耳闻的读者应该听说他是 ...
随机推荐
- 润乾V4报表批量打印
背景说明 在应用中,经常遇到,批量打印的需求,批量打印,顾名思义,就是点击一次打印按钮,能打印多张报表. 下面,我们来介绍一下怎么样实现批量打印的 应用举例: Jsp代码 <% //rep ...
- Windows 安装 python MySQLdb模块
pip install wheel 去这个网站查找whl格式的MYSQL-python http://www.lfd.uci.edu/~gohlke/pythonlibs/#mysql-python ...
- jenkins集成caliper"
1.jenkins安装caliper-ci插件(Caliper CI Plugin) 2.编写microbench 最简便的办法就是作为单元测试来跑(这样就不用在jenkins里配置跑microben ...
- socat 的神奇使用方式
目的是实现科* 学 * 上*网,现在记录一下流程 先在服务器上安装(比如美国,香港,台湾,马来的云主机)squid,easy_rsa, centos 下可以用yum直接安装 $ yum install ...
- Vue2学习笔记:class和style
1.用法 <!DOCTYPE html> <html> <head> <title></title> <meta charset=&q ...
- JAVA两种代理模式
简单设计动态代理,基本模拟spring的动态代理方式. before afterReturning around afterException after这些通知方法都可以这块模拟出来 spring的 ...
- 铁乐学Python_day10_函数2
今天书接昨天的函数继续去学习了解: 昨天说到函数的动态参数. 1.函数的[动态参数] *args 动态参数,万能参数 args接受的就是实参对应的所有剩余的位置参数,并将其放在元组( )中. def ...
- php解决约瑟夫环的问题
php里面解决约瑟夫环还是比较方面的,但是下面的方法太费空间 <?php class SelectKing{ private $m;//幅度 private $n;//总数 public fun ...
- 【整理】close 和 shutdown 的原理
http://stackoverflow.com/questions/14740852/linux-socket-close-vs-shutdown shutdown(sd, SHUT_WR) 发送 ...
- [转]Linux下查看CPU信息、机器型号等硬件信息
From: http://www.jbxue.com/LINUXjishu/14582.html 查看CPU信息(型号) : # cat /proc/cpuinfo | grep name | cut ...