一、Arduino是什么
Arduino是一个能够用来感应和控制现实物理世界的一套工具。 它由一个基于单片机并且开放源码的硬件平台,和一套为Arduino板编写程序 的开发环境组成。
Arduino可以用来开发交互产品,比如它可以读取大量的开关和传感器信号,并且可以控制各式各样的电灯、电机和其他物理设备。Arduino项目可以是单独的,也可以在运行时和你电脑中运行的程序(例如:FlashProcessingMaxMSP)进行通讯。Arduino板你可以选择自己去手动组装或是购买已经组装好的;Arduino开源的IDE可以免费下载得到。
 
二、Arduino的优点:
· 便宜 和其它平台相比,Arduino板算是相当便宜了。最便宜的Arduino版本可以自己动手制作,淘宝上有组装好的成品,价格在20元左右。
我在淘宝的这里买过,https://item.taobao.com/item.htm?spm=a1z09.2.0.0.1f30a53fYMAhyo&id=523243157722&_u=71r66iq3f1f
· 跨平台 Arduino软件可以运行在WindowsMacintosh OSX(Mac),和Linux操作系统。大部分其它的单片机系统都只能运行在Windows上。
· 简易的编程环境 初学者很容易就能学会使用Arduino编程环境,同时它又能为高级用户提供足够多的高级应用。对于老师们来说,一般都能很方便的使用Processing 编程环境,所以如果学生学习过使用Processing 编程环境的话,那他们在使用Arduino开发环境的时候就会觉得很相似很熟悉。
· 软件开源并可扩展 Arduino软件是开源的,对于有经验的程序员可以对其进行扩展。Arduino编程语言可以通过C++库进行扩展,如果有人想去了解技术上的细节,可以跳过Arduino语言而直接使用AVR C 编程语言(因为Arduino语言实际上是基于AVR C的)。类似的,如果你需要的话,你也可以直接往你的Arduino程序中添加AVR-C 代码。目前我给小车加了一个C语言的串口协议,这就是C语言的扩展。
· 硬件开源并可扩展 Arduino板基于 Atmel ATMEGA8 ATMEGA168/328 单片机。Arduino基于Creative Commons 许可协议,所以有经验的电路设计师能够根据需求设计自己的模块,可以对其扩展或改进。甚至是对于一些相对没有什么经验的用户,也可以通过制作试验板来理解Arduino是怎么工作的。
·大大降低了软件开发难度,适宜非专业爱好者使用
三、Arduino的缺点:
Arduino基于AVR平台,对AVR库进行了二次编译封装,把端口都打包好了,寄存器啦、地址指针之类的基本不用管。因为是二次编译封装,代码不如直接使用AVR代码编写精练,代码执行效率与代码体积都弱于AVR直接编译。