资源预览内容
亲,该文档总共61页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第 1 章 进入 Arduino 的世界 欢迎来到 Arduino 的世界!Arduino 是一个开源的开发平台,在全世界范围内成千上万的人正 在用它开发制作一个又一个电子产品,这些电子产品包括从平时生活的小物件到时下流行的 3D 打 印机,它降低了电子开发的门槛,即使是从零开始的入门者也能迅速上手,制作有趣的东西,这便 是开源 Arduino 的魅力。通过本书的介绍,读者对 Arduino 会有一个更全面的认识。 本章知识点: Arduino 的起源与发展 Arduino 的特点 Arduino 开发板简介 Arduino 的未来展望 1.1 什么是 Arduino 什么是 Arduino?相信很多读者会有这个疑问,也需要一个全面而准确的答案。不仅是读者, 很多使用 Arduino 的人也许对这个问题都难以给出一个准确的说法,甚至认为手中的开发板就是 Arduino,其实这并不准确。那么,Arduino 究竟该如何理解呢? 1.1.1 Arduino 不只是电路板 Arduino 是一种开源的电子平台,该平台最初主要基于 AVR 单片机的微控制器1和相应的开 发软件,目前在国内正受到电子发烧友的广泛关注。自从 2005 年 Arduino 腾空出世以来,其硬件 和开发环境一直进行着更新迭代。现在 Arduino 已经有将近十年的发展历史,因此市场上称为 Arduino的电路板已经有各式各样的版本了。 Arduino开发团队正式发布的是Arduino Uno和Arduino Mega 2560,如图 1-1 和图 1-2 所示。 1 关于 AVR 单片机的内容会在第 3 章进行介绍。 Arduino 开发从零开始学 2 图 1-1 Arduino Uno R3 图 1-2 Arduino Mega 2560 R3 图1-1和图1-2所示的开发板就是所谓的Arduino I/O印刷电路板 (Printed Circuit Board, PCB) 。 Arduino 项目起源于意大利,该名字在意大利是男性用名,音译为 “阿尔杜伊诺”, 意思为 “强 壮的朋友” , 通常作为专有名词, 在拼写时首字母需要大写。 其创始团队成员包括: Massimo Banzi、 David Cuartielles、Tom Igoe、Gianluca Martino、David Mellis 和 Nicholas Zambetti 6 人。Arduino 的 出现并不是偶然,Arduino 最初是为一些非电子工程专业的学生设计的。设计者最初为了寻求一个 廉价好用的微控制器开发板从而决定自己动手制作开发板,Arduino 一经推出,因其开源、廉价、 简单易懂的特性迅速受到了广大电子迷的喜爱和推崇。几乎任何人,即便不懂电脑编程,利用这个 开发板也能用 Arduino 做出炫酷有趣的东西,比如对感测器探测做出一些回应、闪烁灯光、控制马 达等。 Arduino 的硬件设计电路和软件都可以在官方网站上获得,正式的制作商是意大利的 SmartProjects(), 许多制造商也在生产和销售他们自己的与 Arduino 兼容的电路 板和扩展板, 但是由 Arduino 团队设计和支持的产品需要始终保留着 Arduino 的名字。 所以, Arduino 更加准确的说法是一个包含硬件和软件的电子开发平台,具有互助和奉献的开源精神以及团队力 量。 1.1.2 Arduino 程序的开发过程 由于 Arduino 主要是为了非电子专业和业余爱好者使用而设计的, 所以 Arduino 被设计成一个 小型控制器的形式,通过连接到计算机进行控制。Arduino 开发过程是: (1)开发者设计并连接好电路; (2)将电路连接到计算机上进行编程; (3)将编译通过的程序下载到控制板中进行观测; (4)最后不断修改代码进行调试以达到预期效果。 进入 Arduino 的世界 第 1 章 3 1.2 为什么要使用 Arduino 在嵌入式开发中, 根据不同的功能开发者会用到各种不同的开发平台。而 Arduino 作为新兴开 发平台,在短时间内受到很多人的欢迎和使用,这跟其设计的原理和思想是密切相关的。 首先, Arduino 无论是硬件还是软件都是开源的, 这就意味着所有人都可以查看和下载其源码、 图表、设计等资源,并且用来做任何开发都可以。用户可以购买克隆开发板和基于 Arduino 的开发 板,甚至可以自己动手制作一个开发板。但是自己制作的不能继续使用 Arduino 这个名称,可以自 己命名,比如 Robotduino。 其次,正如林纳斯本纳第克特托瓦兹的 Linux 操作系统一样,开源还意味着所有人可以下 载使用并且参与研究和改进 Arduino,这也是 Arduino 更新换代如此迅速的原因。全世界各种电子 爱好者用 Arduino 开发出各种有意思的电子互动产品。有人用它制作了一个自动除草机,去上班的 时候打开,不久花园里的杂草就被清除干净了!有人用它制作微博机器人,配合一些传感器监测植 物的状态,并及时发微博来提醒主人,植物什么时间该浇水、施肥、除草等,非常有趣。 图 1-3 所示为日本一开发者用 Arduino 和 Kinect 制作的可以自己接住丢掉垃圾的智能垃圾桶。 图 1-3 智能垃圾桶 Arduino 可以和 LED、点阵显示板、电机、各类传感器、按钮、以太网卡等各类可以输出输入 数据或被控制的任何东西连接,在互联网上各种资源十分丰富,各种案例、资料可以帮助用户迅速 制作自己想要制作的电子设备。 在应用方面,Arduino 突破了传统的依靠键盘、鼠标等外界设备进行交互的局限,可以更方便 地进行双人或者多人互动,还可以通过 Flash、Processing 等应用程序与 Arduino 进行交互。 Arduino 与 Flash、Processing 的交互将在第 6 章介绍。 1.3 Arduino 硬件的分类 在了解 Arduino 起源以及使用 Arduino 制作的各种电子产品之后,接下来对 Arduino 硬件和开 Arduino 开发从零开始学 4 发板,以及其他扩展硬件进行初步的了解和学习。 1.3.1 Arduino 开发板 Arduino 开发板设计得非常简洁, 一块 AVR 单片机、 一个晶振或振荡器和一个 5V 的直流电源。 常见的开发板通过一条 USB 数据线连接计算机。Arduino 有各式各样的开发板,其中最通用的是 Arduino UNO。另外,还有很多小型的、微型的、基于蓝牙和 Wi-Fi 的变种开发板。还有一款新增 的开发板叫做 Arduino Mega 2560,它提供了更多的 I/O 引脚和更大的存储空间,并且启动更加迅 速。以 Arduino UNO 为例,Arduino UNO 的处理器核心是 ATmega 328,同时具有 14 路数字输入/ 输出口(其中 6 路可作为 PWM 输出),6 路模拟输入,一个 16MHz 的晶体振荡器,一个 USB 口, 一个电源插座,一个 ICSP header 和一个复位按钮。因为 Arduino UNO 开发板的基础构成在一个表 里显示不下,所以这里特意设计了两个表来展示,如表 1-1 和表 1-2 所示。 表 1-1 Arduino UNO 开发板基本概要构成(ATmega328)1 处理器 工作电压 输入电压 数字 I/O 脚 模拟输入脚 串口 ATmega328 5V 6-20V 14 6 1 表 1-2 Arduino UNO 开发板基本概要构成(ATmega328)2 IO 脚直流电流 3.3V 脚直流电流 程序存储器 SRAM EEPROM 工作时钟 40 mA 50 mA 32 KB 2 KB 1 KB 16 MHz 图 1-4 对一块 Arduino UNO 开发板功能进行了详细标注。 图 1-4 Arduino UNO R3 功能标注 Arduino UNO 可以通过以下三种方式供电,能自动选择供电方式: 外部直流电源通过电源插座供电; 电池连接电源连接器的 GND 和 VIN 引脚; USB 接口直接供电,图 1-4 所示的稳压器可以把输入的 7V12V 电压稳定到 5V。 进入 Arduino 的世界 第 1 章 5 在电源接口上方,一个右侧引出 3 个引脚,左侧一个比较大的引脚细看会发现上面有 AMST1117 的字样,其实这个芯片是个三端 5V 稳压器,电源口的电源经过它稳压之后才给板子输 入,其实电源适配器内已经有稳压器,但是电池没有。可以理解为它是一个安检员,一切从电源口 经过的电源都必须过它这一关,这个“安检员”对不同的电源会进行区别对待。 首先, AMS1117 的片上微调把基准电压调整到 1.5%的误差以内, 而且电流限制也得到了调整, 以尽量减少因稳压器和电源电路超载而造成的压力。再者根据输入电压的不同而输出不同的电压, 可提供 1.8V、2.5V、2.85V、3.3V、5V 稳定输出,电流最大可达 800mA,内部的工作原理这里不 必去探究,读者只需要知道,当输入 5V 的时候输出为 3.3V,输入 9V 的时候输出才为 5V,所以 用 9V(9V12V 均可,但是过高的电源会烧坏板子)电源供电的原因就在这,如使用 5V 的适配器 与 Arduino 连接,之后连接外设做实验,会发现一些传感器没有反应,这就是某些传感器需要 5V 的信号源,可是板子最高输出只能达到 3.3V,必然有问题。 重置按钮和重置接口都用于重启单片机,就像重启电脑一样。若利用重置接口来重启单片机, 应暂时将接口设置为 0V 即可重启。 GND 引脚为接地引脚,也就是 0V。A0A5 引脚为模拟输入的 6 个接口,可以用来测量连接 到引脚上的电压,测量值可以通过串口显示出来。当然也可以用作数字信号的输入输出。 Arduino 同样需要串口进行通信,图 1-4 所示的串口指示灯在串口工作的时候会闪烁。Arduino 通信在编译程序和下载程序时进行, 同时还可以与其他设备进行通信。 而与其他设备进行通信时则 需要连接 RX(接收)和 TX(发送)引脚。ATmega 328 芯片中内置的串口通信硬件是可以通过同 步和异步模式工作的。同步模式需要专用的信号来表示时钟信息,而 Arduino 的串口(USART 外 围设备,即通用同步/异步接收发送装置)工作在异步模式下,这和大多数 PC 的串口是一致的。数 字引脚 0 和 1 分别标注着 RX 和 TX,表明这两个可以当做串口的引脚是异步工作的,即可以只接 收、发送,或者同时接收和发送信号。 1.3.2 Arduino 扩展硬件 与 Arduino 相关的硬件除了核心开发板外,各种扩展板也是重要的组成部分。Arduino 开发板 设计的可以安装扩展板,即盾板进行扩展。它们是一些电路板,包含其他的元件,如网络模块、 GPRS 模块、语音模块等。在图 1-4 所示的开发板两侧可以插其他引脚的地方就是可以用于安装其 他扩展板的地方。它被设计为类似积木、通过一层层的叠加而实现各种各样的扩展功能。例如 Arduino UNO 同 W5100 网络扩展板可以实现上网的功能,堆插传感器扩展板可以扩展 Arduino 连 接传感器的接口。图 1-5 和图 1-6 为 Arduino 同扩展板连接的例子。 图 1-5 Arduino UNO 与一块原型扩展板连接 Arduino 开发从零开始学 6 图 1-6 Arduino UNO 与网络扩展板连接 虽然 Arduino 开发板支持很多扩展板来扩展功能,但其扩展插座中引脚的间距并不严格规整。 仔细观察开发板会发现上面两个最远的引脚之间距离为 4
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号