【物联网(IoT)开发】Arduino 简介

来源:互联网 发布:手机代理软件 编辑:程序博客网 时间:2024/04/20 21:34

Arduino 的开源、开放、廉价、简单、跨平台等特点使其快速发展起来,成为学习微控制器的首选,成为物联网(IoT)开发的重要组成部分,通过Arduino我们可以从各种传感器感知世界,也可以控制各种执行器执行与世界的交互。

什么是Arduino?

Arduino是一款便捷灵活、方便上手的开源电子原型平台。包含硬件(各种型号的Arduino板)和软件(Arduino IDE)。由一个欧洲开发团队于2005年冬季开发。其成员包括Massimo Banzi、David Cuartielles、Tom Igoe、Gianluca Martino、David Mellis和Nicholas Zambetti。
它构建于开放原始码simple I/O介面版,并且具有使用类似Java、C语言的Processing/Wiring开发环境。主要包含两个主要的部分:硬件部分是可以用来做电路连接的Arduino电路板;另外一个则是Arduino IDE,你的计算机中的程序开发环境。你只要在IDE中编写程序代码,将程序上传到Arduino电路板后,程序便会告诉Arduino电路板要做些什么了。
Arduino能通过各种各样的传感器来感知环境,通过控制灯光、马达和其他的装置来反馈、影响环境。板子上的微控制器可以通过Arduino的编程语言来编写程序,编译成二进制文件,烧录进微控制器。对Arduino的编程是利用 Arduino编程语言 (基于 Wiring)和Arduino开发环境(基于 Processing)来实现的。基于Arduino的项目,可以只包含Arduino,也可以包含Arduino和其他一些在PC上运行的软件,他们之间进行通信 (比如 Flash, Processing, MaxMSP)来实现。

Arduino怎么读?

音标:arduino /a:(r)d∧inəu/

音译名称有很多:阿对诺,阿都伊诺,阿尔杜伊诺,阿尔迪诺(意为:勇敢的朋友);

在几个Arduino的开发群中问发音这个问题,发现大家并不关注它的发音,也没有统一的意见;

个人觉得按英文的发音规则“阿都伊诺”相对准确,而我个人更喜欢“阿尔迪诺”这个名称;

基于Arduino能做什么?

三D打印机,激光雕刻机,遥控汽车,遥控飞机,机器人,能做什么不重要,重要的是你能想到什么!

Arduino的特色

跨平台

Arduino IDE可以在Windows、Macintosh OS X、Linux三大主流操作系统上运行,而其他的大多数控制器只能在Windows上开发。

简单清晰

Arduino IDE基于processing IDE开发。对于初学者来说,极易掌握,同时有着足够的灵活性。Arduino语言基于wiring语言开发,是对 avr-gcc库的二次封装,不需要太多的单片机基础、编程基础,简单学习后,你也可以快速的进行开发。可以使用USB接口直接供电,也可以使用5V直流输入电源。支持多样的交互程序(如:Flash,Max/Msp,VVVV,PD,C,Processing)等。

开放性

Arduino的硬件原理图、电路图、IDE软件及核心库文件都是开源的,在开源协议范围内里可以任意修改原始设计及相应代码。

发展迅速

Arduino不仅仅是全球最流行的开源硬件,也是一个优秀的硬件开发平台,更是硬件开发的趋势。Arduino简单的开发方式使得开发者更关注创意与实现,更快的完成自己的项目开发,大大节约了学习的成本,缩短了开发的周期。
因为Arduino的种种优势,越来越多的专业硬件开发者已经或开始使用Arduino来开发他们的项目、产品;越来越多的软件开发者使用Arduino进入硬件、物联网等开发领域;大学里,自动化、软件,甚至艺术专业,也纷纷开展了Arduino相关课程。

廉价

相比其他微控制器平台的Arduino板是相对便宜的。Arduino的模块的最便宜的版本可以自己动手装配。使用廉价的微处理控制器(ATMega8/168/328),只需要十几块二十几块就能买到一块开发板。对于入门尝试的开发者来说,不需要付出很高的成本。

在物联网(IoT)开发中的位置

如下图,在全自建物联网系统中,通过连接到Arduino开发板上的传感器来收集温度和湿度信息,然后上传到Web应用保存到数据库中;

基于收集温度和湿度信息,生成智能分析建议,比如穿衣指数,防晒指数之类的。


Arduino不只可以连接传感器,还可以连接执行器,控制器;

例如:一个Arduino智能孵化器,需要将孵化器的温湿度控制在合理的范围:
        孵化鹌鹑蛋:温度控制在37.2℃~38.5℃范围,湿度控制在54%~70%范围;
        孵化鸡蛋和鸭蛋:温度控制在37℃~38℃范围,湿度控制在40%~70%范围。
需要通风,通风是为了提供足够的氧气,防止二氧化碳浓度过高。
        孵化过程中需要翻蛋,翻蛋的主要目的是改变胚胎方位,防止粘连,一般每天翻蛋至少6-8次。
        鹌鹑的孵化期一般为16~17天,鸡的孵化期为21天,鸭的孵化期为28天。
就可以基于Arduino通过温湿度传感器进行温湿度的监控,通过陶瓷加热灯进行加热,
通过风扇进行通风,通过舵机进行翻蛋,通过显示屏显示温湿度等状态,还可以用LED灯进行照明。

Arduino的历史

Massimo Banzi之前是意大利Ivrea一家高科技设计学校的老师。他的学生们经常抱怨找不到便宜好用的微控制器。 2005年冬天, Massimo Banzi跟David Cuartielles讨论了这个问题。 David Cuartielles是一个西班牙籍晶片工程师,当时在这所学校做访问学者。两人决定设计自己的电路板,并引入了Banzi的学生David Mellis为电路板设计编程语言。两天以后,David Mellis就写出了程式码。又过了三天,电路板就完工了。Massimo Banzi喜欢去一家名叫di Re Arduino的酒吧,该酒吧是以1000年前意大利国王Arduin的名字命名的。为了纪念这个地方,他将这块电路板命名为Arduino。
随后Banzi、Cuartielles和Mellis把设计图放到了网上。版权法可以监管开源软件,却很难用在硬件上,为了保持设计的开放源码理念,他们决定采用Creative Commons(CC)的授权方式公开硬件设计图。在这样的授权下.任何人都可以生产电路板的复制品,甚至还能重新设计和销售原设计的复制品。人们不需要支付任何费用,甚至不用取得Arduino团队的许可。然而,如果重新发布了引用设计,就必须声明原始Arduino团队的贡献。如果修改了电路板,则最新设计必须使用相同或类似的Creative Commons(CC)的授权方式,以保证新版本的Arduino电路板也会一样是自由和开放的。唯一被保留的只有Arduino这个名字,它被注册成了商标,在没有官方授权的情况下不能使用它。
Arduino发展至今,已经有了多种型号及众多衍生控制器推出。

硬件组成

主板
Arduino的型号有很多,如
Arduino Uno
Arduino Nano
Arduino LilyPad
Arduino Mega 2560
Arduino Ethernet
Arduino Due
Arduino Leonardo
ArduinoYún


扩展板
Arduino的扩展板很多,如
Arduino GSM Shield
Arduino Ethernet Shield
Arduino WiFi Shield
Arduino Wireless SD Shield
Arduino USB Host Shield
Arduino Motor Shield
Arduino Wireless Proto Shield
Arduino Proto Shield


Arduino IDE


常见Arduino版本参数


注:表中只列出了Arduino的部分版本,更多请参见:Compare board specs

版权与付费

为了保持设计的开放源码理念,因为版权法可以监管开源软件,却很难用在硬件上,Arduino决定采用Creative Commons许可。 Creative Commons(CC)是为保护开放版权行为而出现的类似GPL的一种许可(license)。在Creative Commons许可下,任何人都被允许生产电路板的复制品,还能重新设计,甚至销售原设计的复制品。你不需要付版税,甚至不用取得Arduino团队的许可。然而,如果你重新发布了引用设计,你必须说明原始Arduino团队的贡献。如果你调整或改动了电路板,你的最新设计必须使用相同或类似的 Creative Commons许可,以保证新版本的Arduino电路板也会一样的自由和开放。唯一被保留的只有Arduino这个名字。它被注册成了商标。如果有人想用这个名字卖电路板,那他们必须付一点商标费用给Arduino的核心开发团队成员。

相关学习网站

官网 https://www.arduino.cc/

Arduino中文社区 http://www.arduino.cn/

开源硬件知识库 http://kb.open.eefocus.com/index.php

理论上带广告的链接都不应该贴,但对一种技术、产品的使用学习分享又何尝不是一种广告呢!

结束语

这里对Arduino进行了一个简单的介绍,了解Arduino是什么以及可以用它来做什么,并且了解它在物联网(IoT)开发中的位置。

通过本文,相信你已经知道自己是否需要学习它了!


上一篇:【物联网(IoT)开发】物联网简介

下一篇:【物联网(IoT)开发】Arduino IDE(集成开发环境)下载及安装

===========文档信息============ 
版权声明:非商用自由转载-保持署名-注明出处 
署名(BY) :testcs_dn(微wx笑) 
文章出处:[无知人生,记录点滴](http://blog.csdn.net/testcs_dn)

1 0