1.2.1 Arduino开发板
Arduino开发板是基于开放原始代码简化的I/O平台,并且使用类似Java、C/C++语言的开发环境。可以快速使用Arduino语言与Flash或Processing软件,完成各种创新作品。Arduino开发板可以使用各种电子元件,例如,传感器、显示设备、通信设备、控制设备或其他可用设备。
Arduino开发板也可以独立使用,成为与其他软件沟通的平台,例如,Flash、Processing、Max/MSP、VVVV或其他互动软件。Arduino开发板的种类很多,包括Arduino UNO、YUN、DUE、Leonardo、Tre、Zero、Micro、Esplora、MEGA、MINI、NANO、Fio、Pro以及LilyPad Arduino等。随着开源硬件的发展,将会出现更多的开源产品,下面介绍几种典型的Arduino开发板。
Arduino UNO开发板是Arduino USB接口系列的常用版本,是Arduino平台的参考标准模板,如图1-1所示。Arduino UNO开发板的处理器核心是ATmega328,具有14个数字输入/输出引脚(其中6个可作为PWM输出)、6个模拟输入引脚、1个16MHz晶体振荡器、1个USB接口、1个电源插座、1个ICSP插头和1个复位按钮。
图1-1 Arduino UNO
如图1-2所示,Arduino YUN是一款基于ATmega32U4和Atheros AR9331的单片机开发板。Atheros AR9331可以运行基于Linux和OpenWRT的操作系统Linino。这款单片机开发板具有内置的Ethernet、WiFi、1个USB接口、1个Micro插槽、20个数字输入/输出引脚(其中7个可以用于PWM、12个可以用于ADC)、1个Micro USB接口、1个ICSP插头、3个复位开关。
图1-2 Arduino YUN
如图1-3所示,Arduino DUE是一块基于Atmel SAM3X8E CPU的微控制器板。它是第一块基于32位ARM核心的Arduino开发板,有54个数字输入/输出引脚(其中12个可用于PWM输出)、12个模拟输入引脚、4个UART硬件串口、84MHz的时钟频率、1个USB OTG接口、2个DAC(模/数转换)、2个TWI、1个电源插座、1个SPI接口、1个JTAG接口、1个复位按键和1个擦写按键。
图1-3 Arduino DUE
图1-4所示为Arduino MFGA 2560开发板,也是采用USB接口的核心开发板,它最大的特点就是具有多达54个数字输入/输出引脚,特别适合需要大量输入/输出引脚的设计。Arduino MEGA 2560的处理器核心是ATmega2560,具有54个数字输入/输出引脚(其中16个可作为PWM输出)、16个模拟输入引脚、4个UART接口、1个16MHz晶体振荡器、1个USB接口、1个电源插座、1个ICSP插头和1个复位按钮。Arduino MRGA 2560开发板也能兼容为Arduino UNO设计的扩展板。目前,Arduino MEGA 2560开发板已经发布到第3版,与前两版相比有以下新的特点:
图1-4 Arduino MEGA 2560开发板
①在AREF处增加了两个引脚SDA和SCL,支持I2C接口;增加IOREF和1个预留引脚,以便将来扩展板能够兼容5V和3.3V核心板,改进了复位电路设计;USB接口芯片由ATmega16U2替代了ATmega8U2。
②Arduino MEGA 2560开发板可以通过三种方式供电:外部直流电源通过电源插座供电,电池连接电源连接器的GND和VIN引脚供电,USB接口直接供电,而且,它能自动选择供电方式。
电源引脚说明如下:
①VIN:当外部直流电源接入电源插座时,可以通过VIN向外部供电,也可以通过此引脚向Arduino MEGA 2560开发板直接供电;VIN供电时将忽略从USB或者其他引脚接入的电源。
②5V:通过稳压器或USB的5V电压,为Arduino MEGA 2560开发板上的5V芯片供电。
③3.3V:通过稳压器产生的3.3V电压,最大驱动电流为50mA。
④GND:接地引脚。
如图1-5所示,Arduino Leonardo是一款基于ATmega32u4的微控制器。它有20个数字输入/输出引脚(其中7个可用于PWM输出、12个可用于模拟输入)、1个16 MHz晶体振荡器、1个Micro USB连接、1个电源插座、1个ICSP头和1个复位按钮。具有支持微控制器所需的一切功能,只需通过USB电缆将其连至计算机,或者通过电源适配器、电池为其供电即可使用。
Leonardo与先前的所有开发板都不同,ATmega32u4具有内置式USB通信,从而无须二级处理器。这样,除了虚拟(CDC)串行/通信端口,Leonardo还可以充当计算机的鼠标和键盘,它对开发板的性能也会产生影响。
如图1-6所示,Arduino Ethernet是一款基于ATmega328的开发板。它有14个数字输入/输出引脚、6个模拟输入引脚、1个16 MHz晶体振荡器、1个RJ45连接、1个电源插座、1个ICSP头和1个复位按钮。引脚10、11、12和13只能用于连接以太网模块,不可作为他用,可用引脚只有9个,其中4个可用于PWM输出。
图1-5 Arduino Leonardo
图1-6 Arduino Ethernet
Arduino Ethernet没有板载USB转串口驱动器芯片,但是有1个WIZnet以太网接口。该接口与以太扩展板相同。板载microSD读卡器可用于存储文件,能够通过SD库进行访问。引脚10留为WIZnet接口,SD卡的SS在引脚4上。引脚6串行编程头与USB串口适配器兼容,与FTDI USB电缆、Sparkfun和Adafruit FTDI式基本USB转串口分线板也兼容。它支持自动复位,从而无须按下开发板上的复位按钮即可上传程序代码。当插入USB转串口适配器时,Arduino Ethernet由适配器供电。
如图1-7所示,Arduino Robot是一款有轮子的Arduino开发板。Arduino Robot有控制板和电机板,每个开发板上有1个处理器,共2个处理器。电机板控制电机,控制板读取传感器的数值并决定如何操作。每个开发板都是完整的Arduino开发板,用Arduino IDE进行编程。直流电机板和控制板都是基于ATmega32u4的微控制器。Arduino Robot将它的一些引脚映射到板载的传感器和制动器上。
Arduino Robot编程的步骤与Arduino Leonardo类似,2个处理器都有内置式USB通信,无须二级处理器,可以充当计算机的虚拟(CDC)串行/通信端口。Arduino Robot有一系列预焊接连接器,所有连接器都标注在开发板上,通过Arduino Robot库映射到指定的端口上,从而使用标准Arduino函数,在5V电压下,每个引脚都可以提供或接受最高40mA的电流。
如图1-8所示,Arduino NANO是一款小巧、全面且基于ATmega328的开发板,与Arduino Duemilanove的功能类似,但封装不同,没有直流电源插座且采用Mini-B USB电缆。Arduino NANO开发板上的14个数字引脚都可用于输入或输出,利用pinMode()、digitalWrite()和digitalRead()函数可以对它们操作。工作电压为5V,每个引脚都可以提供或接受最高40mA的电流,都有1个20~50kΩ的内部上拉电阻器(默认情况下断开)。Arduino NANO开发板有8个模拟输入,每个模拟输入都提供10位的分辨率(即1024个不同的数值)。默认情况下,它们的电压为0~5V,可以利用analogReference()函数改变其电压范围的上限值,模拟引脚6和7不能作为数字引脚。
图1-7 Arduino Robot
图1-8 Arduino NANO