1.2 Arduino开源硬件

本节主要介绍Arduino开源硬件的各类开发板和扩展架的使用方式、Arduino开发板的特点以及Arduino开源硬件的总体情况,便于更好地应用Arduino开源硬件进行开发创作。

1.2.1 Arduino开发板

Arduino开发板是基于开放原始代码简化的I/O平台,但是使用类似Java、C/C++语言的开发环境,可以快速使用Arduino语言与Flash或Processing软件,完成各类创新作品。Arduino开发板可以使用各类电子器件,如传感、显示设备、通信设备、控制设备或其他可用设备。

Arduino开发板也可以独立使用,成为与其他软件沟通的平台,如Flash、Processing、Max/MSP、VVVV或其他互动软件。Arduino开发板的种类好多,包括ArduinoUNO、YUN、DUE、Leonardo、Tre、Zero、Micro、Esplora、MEGA、Mini、NANO、Fio、Pro及LilyPadArduino。随着开源硬件的发展,将会出现更多的开源产品。下边介绍几种典型的Arduino开发板。

ArduinoUNO是ArduinoUSB插口系列的常用版本,是Arduino平台的参考标准模板,如图1-1所示。ArduinoUNO的处理器核心是ATmega328,具有14个数字I/O引脚(其中6个可作为PWM输出)、6个模拟输入引脚、1个16MHz晶体振荡器、1个USB插口、1个电源插头、1个ICSP插座和1个复位按键。

如图1-2所示,ArduinoYUN是一款基于ATmega3232UU4和AtherosAR9331的开发板。AtherosAR9331可以运行基于Linux和OpenWRT的操作系统Linino。这款单片机开发板具有外置的Ethernet、WiFi、1个USB插口、1个Micro插孔、20个数字I/O引脚(其中7个可以用于PWM、12个可以用于模数转换)、1个MicroUSB插口、1个ICSP插座和3个复位开关。

linux usb 转串口驱动_Arduino开发板种类_Arduino扩展板功能

图1-1 ArduinoUNO

Arduino扩展板功能_linux usb 转串口驱动_Arduino开发板种类

linux usb 转串口驱动_Arduino扩展板功能_Arduino开发板种类

图1-2 ArduinoYUN

如图1-3所示,ArduinoDUE是一块基于AtmelSAM3X8ECPU的微控制器板。它是第一块基于32位ARM核心的Arduino开发板,有54个数字I/O引脚(其中12个可用于PWM输出)、12个模拟输入引脚、4个UART硬件并口、84MHz的时钟频度、1个USBOTG插口、2个数模转换、2个TWI、1个电源插头、1个SPI插口、1个JTAG插口、1个复位按钮和1个擦写按钮。

如图1-4所示,ArduinoMEGA2560开发板也是采用USB插口的核心开发板,它的最大特征就是具有多达54个数字I/O引脚,非常适宜须要大量I/O引脚的设计。ArduinoMEGA2560开发板的处理器核心是ATmega2560,具有54个数字I/O引脚(其中16个可作为PWM输出)、16个模拟输入、4个UART插口、1个16MHz晶体振荡器、1个USB插口、1个电源插头、1个ICSP插座和1个复位按键。ArduinoMEGA2560开发板也能兼容为ArduinoUNO设计的扩易拉宝。目前,ArduinoMEGA2560开发板早已发布到第3版。与前两版相比,第3版有以下新的特性。

Arduino扩展板功能_linux usb 转串口驱动_Arduino开发板种类

图1-3 ArduinoDUE

linux usb 转串口驱动_Arduino扩展板功能_Arduino开发板种类

图1-4 ArduinoMEGA2560

(1)在AREF处降低了两个引脚SDA和SCL,支持I2C插口;降低IOREF和1个预留引脚,便于将来扩易拉宝才能兼容5V和3.3V核心板;改进了复位电路设计;USB插口芯片由ATmega1616UU2取代ATmega8U2。

(2)第3版可以通过三种形式供电:外部直流电源通过电源插头供电;电瓶联接电源联接器的GND和VIN引脚供电;USB插口直接供电。并且,它能手动选择供电形式。

电源引脚说明如下。

Arduino开发板种类_linux usb 转串口驱动_Arduino扩展板功能

VIN:当外部直流电源接入电源插头时,可以通过VIN向外部供电,也可以通过此引脚向ArduinoMEGA2560开发板直接供电;VIN供电时将忽视从USB或则其他引脚接入的电源。

5V:通过稳压器或USB的5V电流,为ArduinoMEGA2560开发板上的5V芯片供电。

3.3V:通过稳压器形成的3.3V电流,最大驱动电压为50mA。

GND:接地引脚。

如图1-5所示,ArduinoLeonardo是一款基于ATmega3232UU4的开发板。它有20个数字I/O引脚(其中7个可用作PWM输出、12个可用作模拟输入)、1个16MHz晶体振荡器、1个MicroUSB联接、1个电源插头、1个ICSP头和1个复位按键。它具有支持微控制器所需的一切功能,只需通过USB线缆将其连至计算机,或则通过电源适配器、电池为其供电即可使用。

Leonardo与以前的所有开发板都不同,ATmega3232UU4具有外置式USB通讯,因而无须二级处理器。这样,不仅虚拟(CDC)串行/通讯端口,Leonardo还可以充当计算机的键盘和鼠标,它对开发板的性能也会形成影响。

如图1-6所示,ArduinoEthernet是一款基于ATmega328的开发板。它有14个数字I/O引脚、6个模拟输入、1个16MHz晶体振荡器、1个RJ45联接、1个电源插头、1个ICSP头和1个复位按键。引脚10、11、12和13只能用于联接以太网模块,不能用作他用。可用引脚只有9个,其中4个可用作PWM输出。

linux usb 转串口驱动_Arduino扩展板功能_Arduino开发板种类

图1-5 ArduinoLeonardo

linux usb 转串口驱动_Arduino开发板种类_Arduino扩展板功能

Arduino开发板种类_Arduino扩展板功能_linux usb 转串口驱动

图1-6 ArduinoEthernet

ArduinoEthernet没有板载USB转并口驱动器芯片,并且有1个WIZnet以太网插口,该插口与以太扩展架相同。板载microSD优盘可用于储存文件,还能通过SD库进行访问。引脚10留作WIZnet插口,SD卡的SS在引脚4上。引脚6串行编程头与USB并口适配器兼容,与FTDIUSB线缆、SparkFun和AdafruitFTDI式基本USB转并口分线板也兼容。它支持手动复位,因而无须按下开发板上的复位按键即可上传程序代码。当插入USB转并口适配器时,ArduinoEthernet由适配器供电。

Arduino扩展板功能_linux usb 转串口驱动_Arduino开发板种类

图1-7 ArduinoRobot

ArduinoRobot是一款有轮子的Arduino开发板,如图1-7所示。ArduinoRobot有控制板和马达板,每位开发板上都有1个处理器,共2个处理器。马达板控制马达,控制板读取传感的数据并决定怎么操作。每位开发板都是完整的Arduino开发板linux格式化命令,用ArduinoIDE进行编程。直流马达板和控制板都是基于ATmega3232UU4的开发板。ArduinoRobot将它的一些引脚映射到板载的传感和刹车器上。

ArduinoRobot编程的步骤与ArduinoLeonardo类似,2个处理器都有外置式USB通讯,无须二级处理器,可以充当计算机的虚拟(CDC)串行/通讯端口。ArduinoRobot有一系列预点焊联接器,所有联接器都标明在开发板上,通过ArduinoRobot库映射到指定的端口上,因而可使用标准Arduino函数。在5V电流下,每位引脚都可以提供或接受最高40mA的电压。

linux usb 转串口驱动_Arduino开发板种类_Arduino扩展板功能

图1-8 ArduinoNANO

如图1-8所示,ArduinoNANO是一款精巧、全面、基于ATmega328的开发板,与ArduinoDuemilanove的功能类似,但封装不同,没有直流电源插头且采用Mini-BUSB线缆。ArduinoNANO开发板上的14个数字引脚都可用作输入或输出,借助函数pinMode()、digitalWrite()和digitalRead()可以对它们操作。工作电流为5V,每位引脚都可以提供或接受最高40mA的电压,都有1个20~50kΩ的内部上拉内阻器(默认情况下断掉)。ArduinoNANO有8个模拟输入,每位模拟输入都提供10位的码率(即1024个不同的数值)。默认情况下,它们的电流为0~5V,可以借助函数analogReference()改变其电流范围的上限值。模拟引脚6和7不能用作数字引脚。

Arduino扩展板功能_linux usb 转串口驱动_Arduino开发板种类

1.2.2 Arduino扩易拉宝

在Arduino开源硬件系列中,不仅主要开发板之外,还有与之配合使用的各类扩易拉宝,可以插到开发板上降低额外的功能。选择适宜的扩易拉宝,可以提高系统开发的功能。常见的扩易拉宝有ArduinoEthernetShield、ArduinoGSMShield、ArduinoMotorShield、Arduino9AxesMotionShield等。

ArduinoEthernetShield(以太网扩易拉宝)如图1-9所示linux usb 转串口驱动,有1个标准的有线RJ45联接,具有集成式线路变压器和以太网供电功能node.js安装linux,可将Arduino开发板联接到互联网。它基于WIZnetW5500以太网芯片,提供网路(IP)堆栈,支持TCP和UDP合同,可以同时支持8个套接字联接,使用以太网库写入程序代码。

以太网扩易拉宝借助贯串扩易拉宝的长绕线排与Arduino开发板联接,保持引脚布局完整无缺,便于其他扩易拉宝堆叠其上。它有1个板载micro-SD卡槽,可用于储存文件,且与ArduinoUNO开发板和ArduinoMEGA开发板兼容linux usb 转串口驱动,可通过SD库访问板载micro-SD优盘。以太网扩易拉宝带有1个供电(PoE)模块,可从传统的5类线缆获取电力。

ArduinoGSMShield如图1-10所示,为了联接蜂窝网路,扩易拉宝须要一张由网路营运商提供的SIM卡。它通过联通通讯网将Arduino开发板联接到互联网,可拨通/接听语音电话和发送/接收SMS信息。

Arduino扩展板功能_Arduino开发板种类_linux usb 转串口驱动

图1-9 ArduinoEthernetShield

图1-10 ArduinoGSMShield

GSMShield采用Quectel的无线调制译码器M10,借助AT命令与开发板通讯。GSMShield借助数字引脚2、3与M10进行软件串行通讯,引脚2联接M10的TX引脚,引脚3联接M10的RX引脚,调制混频器的PWRKEY引脚联接引脚7。

Arduino扩展板功能_Arduino开发板种类_linux usb 转串口驱动

M10是一款四频GSM/GPRS调制译码器,其工作频度分别为GSM850MHz、GSM900MHz、DCS1800MHz和PCS1900MHz。它通过GPRS联接支持TCP/UDP和HTTP。其中GPRS数据下行链路和上行链路的最大传输速度为85.6Kb/s。

ArduinoMotorShield如图1-11所示,用于驱动电感负载(如熔断器、螺线管、直流和步进电动机)的双全桥驱动器L298。ArduinoMotorShield可以驱动2个直流马达,并能独立控制每位马达的速率和方向。因而,它有2条独立的通道,即A和B,每条通道使用4个开发板引脚驱动或感应马达,所以ArduinoMotorShield使用的引脚共8个。它除了可以单独驱动2个直流马达,也可以将它们合并上去驱动1个双极步进马达。

Arduino9AxesMotionShield如图1-12所示。它采用美国博世传感技术有限公司推出的BNO055绝对方向传感。这是一个使用系统级封装,集成三轴14位加速计、三轴16位陀螺仪、三轴地磁传感,并运行BSX3.0FusionLib软件的32位微控制器。BNO055在三个垂直的轴上具有三维加速度、角速率和磁场强度数据。

Arduino扩展板功能_Arduino开发板种类_linux usb 转串口驱动

图1-11 ArduinoMotorShield

Arduino扩展板功能_Arduino开发板种类_linux usb 转串口驱动

图1-12 Arduino9AxesMotionShield

另外,它还提供传感融合讯号,如四元数、欧拉角、旋转矢量、线性加速度、重力矢量。结合智能中断引擎,可以基于慢动作或误动作辨识、任何动作(斜率)测量、高g检查等项触发中断。

Arduino9AxesMotionShield兼容UNO、YUN、Leonardo、Ethernet、MEGA和DUE开发板。在使用Arduino9AxesMotionShield时,要按照使用的开发板将中断桥和重置桥钎焊在正确的位置。

Tagged:
Author

这篇优质的内容由TA贡献而来

刘遄

《Linux就该这么学》书籍作者,RHCA认证架构师,教育学(计算机专业硕士)。

发表回复