工欲善其事必先利其器, 本节介绍Arduino系统中的核心硬件设备和需安装的软件 |
2.1 Arduino开发板 |
Arduino开发板设计得非常简洁,一块AVR单片机、一个晶振或振荡器和一个5V的直流电源。常见的开发板通过一条USB数据线连接计算机。Arduino有各式各样的开发板,其中最通用的是Arduino UNO。另外,还有很多小型的、微型的、基于蓝牙和Wi-Fi的变种开发板。还有一款新增的开发板叫做Arduino Mega 2560,它提供了更多的I/O引脚和更大的存储空间,并且启动更加迅速。以Arduino UNO为例,它的处理器核心是ATmega 328,同时具有14路数字输入/输出口(其中6路可作为PWM输出),6路模拟输入,一个16MHz的晶体振荡器,一个USB口,一个电源插座,一个ICSP header和一个复位按钮,如表2-1和表2-2所示。
表2-1 Arduino UNO开发板基本概要构成(ATmega328)
处理器 | 工作电压 | 输入电压 | 数字I/O脚 | 模拟输入脚 | 串口 |
ATmega328 | 5V | 6-20V | 14 | 6 | 1 |
表2-2 Arduino UNO开发板基本概要构成(ATmega328)
IO脚直流电流 | 3.3V脚直流电流 | 程序存储器 | SRAM | EEPROM | 工作时钟 |
40 mA | 50 mA | 32 KB | 2 KB | 1 KB | 16 MHz |
图2-1 Arduino UNO R3功能标注
图2-1对一块Arduino UNO开发板功能进行了详细标注,以下为Arduino的硬件接口功能描述。1. 数字输入/输出(Digital I/O)端子0~13(共14个数字输入/输出口DIO)。
2. 模数转换(ADC)输入端子0~5(共6个,可做模拟输入口AI)。
3. 脉宽调制(PWM)输出(Pin11,Pin10,Pin9,Pin6,Pin5,Pin3)共6个,可做模拟输出口。
4. 支持USB接头传输数据及供电(可以免用外接电源)。
5. 支援串口通信TX/RX端子。
6. 支持在线串行烧写(ICSP)功能。接线端子为6芯的排针。
7. 支持外部模数转换(ADC)的电压基准(AREF)端子输入。
8. 输入电压:USB接口提供,无须外部供电。也可由7V~12V DC外部供电。
9. 可以向外提供电源电压:DC5V输出。
10.智能核心器件采用的是型号为ATmega328的高性能单片机。
重置按钮和重置接口都用于重启单片机,就像重启电脑一样。若利用重置接口来重启单片机,应暂时将接口设置为0V即可重启。GND引脚为接地引脚,也就是0V。A0~A5引脚为模拟输入的6个接口,可以用来测量连接到引脚上的电压,测量值可以通过串口显示出来。当然也可以用作数字信号的输入输出。
ArduinoUNO可以通过以下三种方式供电,能自动选择供电方式:
1.外部直流电源通过电源插座供电;
2.电池连接电源连接器的GND和VIN引脚;
3.USB接口直接供电,图2-1所示的稳压器可以把输入的7V~12V电压稳定到5V。
当输入5V的时候输出为3.3V,输入9V的时候输出才为5V,所以用9V(9V~12V均可,但是过高的电源会烧坏板子)电源供电的原因就在这,如使用5V的适配器与Arduino连接,之后连接外设做实验,会发现一些传感器没有反应,这就是某些传感器需要5V的信号源,可是板子最高输出只能达到3.3V,必然有问题。
Arduino同样需要串口进行通信,图2-1所示的串口指示灯在串口工作的时候会闪烁。Arduino通信在编译程序和下载程序时进行,同时还可以与其他设备进行通信。而与其他设备进行通信时则需要连接RX(接收)和TX(发送)引脚。ATmega328芯片中内置的串口通信硬件是可以通过同步和异步模式工作的。同步模式需要专用的信号来表示时钟信息,而Arduino的串口(USART外围设备,即通用同步/异步接收发送装置)工作在异步模式下,这和大多数PC的串口是一致的。
2.2 官方软件ArduinoIDE介绍 |
在使用IDE(Integrated Development Environment),即集成开发环境之前,需要了解一些有关嵌入式软件的相关知识。
2.2.1 交叉编译
Arduino做好的电子产品不能直接运行,需要利用电脑将程序烧到单片机里面。很多嵌入式系统需要从一台计算机上编程,将写好的程序下载到开发板中进行测试和实际运行。因此跨平台开发在嵌入式系统软件开发中很常见。所谓交叉编译,就是在一个平台上生成另一个平台上可以执行的代码。开发人员在电脑上将程序写好,编译生成单片机执行的程序,就是一个交叉编译的过程。
编译器最主要的一个功能就是将程序转化为执行该程序的处理器能够识别的代码,因为单片机上不具备直接编程的环境,因此利用Arduino编程需要个人计算机上进行。
2.2.2 Arduino IDE介绍
给Arduino编程需要用到IDE(集成开发环境),这是一款免费的软件。在这款软件上编程需要使用Arduino的语言,这是一种解释型语言,写好的程序被称为sketch,编译通过后就可以下载到开发板中。在Arduino的官方网站上可以下载这款官方设计的软件及源码、教程和文档。ArduinoIDE的官方下载地址为:http://arduino.cc/en/Main/Software。
在安装完Arduino IDE后,进入Arduino安装目录,打开arduino.exe文件,进入初始界面。打开软件会发现这个开发环境非常简洁(上面提到的三个操作系统IDE的界面基本一致),依次显示为菜单栏、图形化的工具条、中间的编辑区域和底部的状态区域。Arduino IDE用户界面的区域功能如图2-2所示。
图2-3为Arduino IDE界面工具栏,从左至右依次为编译、上传、新建程序(sketch)、打开程序(sketch)、保存程序(sketch)和串口监视器(Serial Monitor)。编辑器窗口选用一致的选项卡结构来管理多个程序 ,编辑器光标所在的行号在当前屏幕的左下角。
1.文件菜单
写好的程序通过文件的形式保存在计算机时,需要使用文件(File)菜单,文件菜单常用的选项包括:新建文件(New)、打开文件(Open)、保存文件(Save)、文件另存为(Save as)、关闭文件(Close)、程序示例(Examples)、打印文件(Print)。
其他选项,如“程序库”是打开最近编辑和使用的程序,“参数设置”可以设置程序库的位置、语言、编辑器字体大小、输出时的详细信息、更新文件后缀(用后缀名.ino代替原来的.pde后缀)。“上传”选项是对绝大多数支持的Arduino I/O电路板使用传统的Arduino引导装载程序来上传。
2.编辑菜单紧邻文件菜单右侧的是编辑(Edit)菜单,编辑菜单顾名思义是编辑文本时常用的选项集合。常用的编辑选项为恢复(Undo)、重做(Redo)、剪切(Cut)、复制(Copy)、粘贴(Paste)、全选(Selectall)和查找(Find)。这些选项的快捷键也和MicrosoftWindows应用程序的编辑快捷键相同。此外,编辑菜单还提供了其他选项,如“注释(Comment)”和“取消注释(Uncomment)”,Arduino编辑器中使用“//”代表注释。
3.程序菜单
程序(Sketch)菜单包括与程序相关功能的菜单项。主要包括:
l“编译/校验(Verify)”,和工具条中的编译相同。
l“显示程序文件夹(Show Sketch Folder)”,会打开当前程序的文件夹。
l“增加文件(Add File)”,可以将一个其他程序复制到当前程序中,并在编辑器窗口的新选项卡中打开。
l“导入库(Import Library)”,导入所引用的Arduino库文件。
4.工具菜单工具(Tools)菜单是一个与Arduino开发板相关的工具和设置集合。主要包括:
l“自动格式化(Auto Format)”,可以整理代码的格式,包括缩进、括号,使程序更易读和规范。
l“程序打包(Archive Sketch)”,将程序文件夹中的所有文件均整合到一个压缩文件中。
l修复编码并重新装载(Fix Encoding & Reload)”,在打开一个程序时发现由于编码问题导致无法显示程序中的非英文字符时使用的,如一些汉字无法显示或者出现乱码时,可以使用另外的编码方式重新打开文件。
l“串口监视器(Serial Monitor)”,是一个非常实用而且常用的选项, PC与Arduino开发板连接的串口“交谈”的内容会在该串口显示器中显示出来,如图2-4所示。
l“串口”,需要手动设置系统中可用的串口时选择的,在每次插拔一个Arduino电路板时,这个菜单的菜单项都会自动更新,也可手动选择哪个串口接开发板。
l“板卡”,用来选择串口连接的Arduino开发板型号。
l“烧写Bootloader”,将Arduino开发板变成一个芯片编程器,也称为AVRISP烧写器,读者可以到Arduino中文社区查找相关内容。
5.帮助菜单
帮助(Help)菜单是使用Arduino IDE时可以迅速查找帮助的选项集合。包括快速入门、问题排查和参考手册,可以及时帮助了解开发环境,解决一些遇到的问题。