Arduino Yún

原地址:https://www.arduino.cc/en/Main/ArduinoBoardYun

Arduino Yún正面Arduino Yún反面

概述

Arduino Yún是一款基于ATmega32U4和Atheros AR9331的微控制器版。Atheros处理器运行 OpenWrt-Yun系统,它是基于OpenWrt系统的Linux发行版本。此板卡内置以太网接口、 WiFi 模块、一个USB Type-A接口、一个micro SD卡插槽、20路数字I/O端口(其中7个可以用于PWM输出, 12个用于模拟量输入)、一个16 MHz有源晶振、1个micro USB接口、1个ICSP插口和3个复位开关。

提示:在某些国家没有政府批准禁止销售带有WiFi功能的设备。在等待合适的批准前,一些当地经销商禁用了WiFi功能。如果您处在这样的国家,请在购买前向经销商确认。 如果你希望禁用WiFi功能,运行此sketch。需要更多信息,请参考此文章
Arduino Yún 简介 - 图3
Yún较其它Arduino板卡的不同之处在于它可以与Linux系统通讯,它提供了一个可以用Arduino平台轻松实现而又强大的网络计算机[offering a powerful networked computer with the ease of Arduino]。除了像cURL这样的Linux命令,您可以编写您自己的shell和python脚本来实现健壮的交互[robust interactions]

Yún与Leonardo类似,其ATmega32u4芯片内置USB通讯功能,省去了额外的芯片。这让Yún可以用作计算机的鼠标和键盘,但不可以用作虚拟(CDC)串口或COM端口[in addition to a virtual (CDC) serial / COM port]

Arduino Yún 简介 - 图4
Bridge库用于实现两个处理器之间的通讯,它可以让Arduino的sketch运行shell脚本、与网络接口通讯,还可以接收AR9331发来的信息。USB接口、网络接口和SD卡并没有与32U4相连接,而是连接在了AR9331上,Bridge库同样可以让Arduino与这些外设进行交互。

参数

因为Yún有两个处理器芯片,下面分两个表介绍每一个处理器的详细参数。

AVR Arduino 微控制器

处理器 ATmega32u4
工作电压 5V
输入电压 5V
数字I/O口数量 20个
PWM通道数 7
模拟量输入通道数 12
每个I/O口的电流 40 mA
3.3V脚的电流 50 mA
Flash内存 32 KB(其中4 KB用于bootloader)
SRAM 2.5 KB
EEPROM 1 KB
时钟速率 16 MHz

Linux 微处理器

处理器 Atheros AR9331
架构 MIPS @400MHz
工作电压 3.3V
以太网 IEEE 802.3 10/100Mbit/s
WiFi IEEE 802.11b/g/n
USB Type-A 2.0 母口
读卡器 仅支持Micro-SD卡
RAM 64 MB DDR2
Flash内存 16 MB
支持802.3af标准的PoE电源(见下文)
长度 73 mm
宽度 53 mm
重量 32 g

原理图

arduino-Yun-schematic.pdfarduino-Yun-DSN.zip

供电

建议通过micro-USB接口用5V直流电的为板卡供电。

如果您通过Vin脚为板卡供电,请务必保证电源提供的是稳定的5V直流电。板卡上没有针对高电压的稳压器,过高的电压会导致板卡的损坏。

Yún支持用PoE电源供电,但是如果您想使用此方法供电,您需要为板卡挂载一个PoE模块或者买一套组装散件。

注意:早期带有PoE适配器的Yún错误的给板卡提供了12V电压。改善版本提供了正确的5V电压,此版本会很快提供给经销商。如果您确定您使用的板卡使用的是错误的PoE适配器,请联系support@arduino.cc。

电源引脚如下:

  • VIN:Arduino板卡的输入电压。不同于其它Arduino板卡,如果您要通过此脚为板卡供电,请务必保证电源提供的是稳定的5V直流电。

  • 5V:为板卡上的处理器芯片和其它部件提供的电压。此电压来自于VIN或USB接口。

  • 3.3V:通过板卡上稳压器产生的电压。最大~驱动~电流为50mA。

  • GND:接地引脚。

  • IOREF:I/O口的工作参考电压(也就是板卡上的VCC)。在Yún上为5V。

存储

ATmega32U4芯片有32 KB的存储空间(其中4KB用做BOOTLOADER)。此外还有2.5 KB的SRAM和1KB的EEPROM(可以通过EEPROM库对其进行读写操作)。

AR9331没有内置存储空间,它的RAM和大容量存储由外部存储设备提供。Yún包含64 MB的DDR2 RAM和16 MB的FLASH。FLASH里已经在出厂时预装了OpenWrt-Yun系统,它是基于OpenWrt系统的Linux发行版本。您可以安装程序或者改变配置文件来改变出厂镜像文件中的内容。您可以长按WLAN RST键30秒来恢复出厂设置。

OpenWrt-Yun系统本身占用了16 MB的FLASH中的9 MB存储空间。您可以安装上micro SD卡,来获得更大的存储空间用于安装应用。具体操作请参阅本教程:How to expand the Yún disk space

输入输出设备

通过I/O口是无法访问Atheros AR9331的,因为所有I/O口都被连接至了32U4上。

Yún上的20个数字I/O口中的每一个都可以用作输入口和输出口,使用pinMode()digitalWrite()digitalRead()函数进行相关操作。它们的工作电压为5V。每个I/O口拉电流或灌电流最大为40 mA,并内置20-50千欧的上拉电阻。此外部分IO还有其他功能:

  • 串口:0 (RX)、1 (TX)。ATmega32U4的硬件串口,用于接收(RX)和发送(TX)TTL串口数据。请注意在Yún上,Serial类用于USB(CDC)通讯,请使用Serial1类来实现0和1引脚的TTL串口通讯。ATmega32U4的硬件串口已经与AR9331相连,被用于两个处理器之间的通讯。正如Linux系统常见的那样,AR9331的串口给控制台提供了访问系统的功能[on the serial port of the AR9331 is exposed the console for access to the system],这意味着您可从sketch中访问Linux提供的程序和工具。
  • TWI:2 (SDA)、3 (SCL)。提供TWI协议通讯,使用Wire库实现。
  • 外部中断:3 (中断0)、2 (中断1)、0 (中断2)、1 (中断3)、7 (中断4)。这些引脚可以被配置用于触发中断,可以由低电平触发、下降沿触发或者电平改变触发。详见 attachInterrupt()函数。不推荐使用 0 和 1 脚用作中断,因为它们已经与AR9331连接用于实现串口通信。此外 7 脚也不推荐使用,因为它在后期可能会用做和AR9331的握手信号。如果您坚持使用以上三个引脚作为中断引脚,请注意可能引发的冲突。
  • PWM:3、5、6、9、10、11、13。提供8位PWM输出,使用analogWrite()函数实现。
  • SPI:ICSP端口。这些引脚用于提供SPI协议通讯,使用SPI库实现。 请注意Yún的SPI引脚与UNO不同,它们不与任何数字I/O口相连,它们仅连接在ICSP端口上。这意味着如果您有一块使用SPI的shield没有可以和Yún相连的6针ICSP接口,它将无法工作。 SPI引脚也连接在AR9331的GPIO引脚上,它已经通过软件实现了SPI接口。这意味着ATMega32u4 和AR9331还可以使用SPI协议进行通讯。
  • LED:13。这是一个内置连接在13引脚上的LED。当此引脚输出高电平的时候这个LED会被点亮,低电平时会熄灭。
  • Yún上还有一些状态指示灯:通电指示灯、WLAN指示灯、WAN指示灯和USB指示灯。 Arduino Yún 简介 - 图5
  • 模拟输入:A0 - A5, A6 - A11(对应的数字引脚为4、6、8、9、10、12)。Yún有12个模拟输入引脚,标记为A0 - A11,这些引脚还可以用作数字I/O口。A0 - A5的位置与UNO相同,A6 - A11则分别对应数字引脚4、6、8、9、10和12。每一个模拟输入脚的采样分辨率为10位(换句话说采样1024个不同的数值)。模拟输入的默认测量范围是0 ~ 5V,可以通过使用AREF脚和analogReference()函数来改变这个测量范围的上限。
  • AREF:用作模拟输入的参考电压。使用analogReference()函数。 Arduino Yún 简介 - 图6
  • Yún RST:拉低电平来复位AR9331微处理器。对AR9331复位会导致linux系统的重新启动。所有存储在RAM中的数据将会丢失并且所有运行中的程序将会中断。
  • 32U4 RST:拉低电平来复位ATmega32U4微处理器。通常shield会在其上面添加一个复位按钮用于取代这个复位键[Typically used to add a reset button to shields which block the one on the board]
  • WLAN RST:这个复位键具有双重功能:主要用于将WiFi还原至出厂设置。出厂设置信息包括将WiFi改为接入点模式(AP)以及将默认的IP地址改为192.168.240.1,在此条件下您可以用您的电脑连接至SSID名称为”Arduino Yun-XXXXXXXXXXXX”字样的无线网络热点,这里的’X’对应您Yún的MAC地址。一旦连接上您可以在浏览器中的地址栏输入192.168.240.1或者 “http://arduino.local“ 来访问Yún的Web控制台界面。请注意还原WiFi配置将会导致linux环境的重启。要还原WiFi配置信息您需要按下并保持WLAN RST键5秒钟。当按下按钮后WLAN蓝色指示灯将会开始闪烁并会在您释放按钮后继续保持闪烁以指示WiFi还原操作已经被识别。WLAN RST按键的第二个功能是还原linux镜像至出厂默认镜像,要还原linux环境,您必须按住并保持这个按钮30秒钟。请注意还原出厂镜像将会是您丢失所有保存的文件和连接在AR9331上flash存储芯片中的安装程序。

Arduino引脚与ATmega32u4引脚的对应图见 mapping between Arduino pins and ATmega32u4 ports

通讯

Yún拥有多个可以与电脑、另一个Arduino或者其它微控制器进行通讯的设备。ATmega32U4提供一个专用的UART TTL(5V)串口通讯接口。32U4也允许通过USB进行串口(CDC)通讯并且会在电脑上被表示为一个虚拟com口。此芯片还可以扮演为一个全速USB 2.0设备,使用标准的USB COM驱动。Arduino IDB软件包括的串口调试工具可以接收或发送Arduino板卡的文本数据。板卡上的RX和TX指示灯会在与电脑的USB连接中数据传输时闪烁。

数字引脚0和1用于32U4和AR9331之间的串口通讯,由Bridge库控制。 SoftwareSerial库可以让Yún的任意数字引脚实现串口通讯。数字引脚0和1应当在它们被Bridge库占用的时候避免使用。

ATmega32U4也指出I2C(TWI)和SPI通讯。Arduino IDE中包含了一个Wire库用于简化I2C总线的使用,详见文档。对于SPI通讯,使用SPI库

Yún还可以作为原生键盘和鼠标,还可以使用Keyboard and Mouse类编程来控制这些设备。

板载以太网和WiFi接口被直接暴露给AR9331处理器。使用Bridge库实现数据的发送与接收。您可以按照getting started page中的描述来访问网络控制台。

Yún还具备连接到OpenWrt-Yun的USB接口。您可以通过这个接口连接像USB存储设备、键盘或者网络摄像头之类的外围设备。您可能需要下载并安装额外的软件来使得这些设备工作。向AR9331添加软件的相关信息请参见using the package manager

编程

可以使用Arduino IDE软件(下载地址)对Yún编程。从Tool > Board菜单中选择Arduino Yún(根据您板卡上的微处理器选择)。详见referencetutorials

Arduino Yún上的ATmega32U4预先烧录的bootloader可以让in不需要额外硬件编程器而上传新的程序代码。它使用AVR109协议进行数据传输。

您还可以绕过bootloader,使用Arduino ISP或者类似编程器通过ICSP(In-Circuit Serial Programming)接口对微处理器进行编程,详见介绍

自动(软)复位和Bootloader初始化

Yún被设计成它可以通过运行在所连电脑上的软件进行复位,而不需要在上传代码前手动按下复位按钮。复位操作会在Yún的虚拟(CDC)串口/COM端口在1200波特率的时候打开时而被触发,随后会被关闭[The reset is triggered when the Yún’s virtual (CDC) serial / COM port is opened at 1200 baud and then closed]。当复位发生时,处理器会被复位,与电脑的USB连接会被中断(这表示虚拟串口/COM端口会消失)。当处理器复位后,bootloader开始运行并持续活动8秒。Bootloader还可以通过按下Yún上的复位键而被初始化。请注意板卡第一次上电时,它会直接跳转带用户的sketch程序(如果存在的话),而不是初始化bootloader。

因为有了Yún可以控制复位的这个方式,可以更好的让Arduino IDE试图在上传代码前进行初始化复位操作,尤其当您习惯于在给其它板卡上传代码前手动按下复位键。当然如果软件不能对板卡复位,您总是可以通过按下板卡上的复位键来启动bootloader。

USB过流保护

Yún拥有一个自恢复保险丝可以保护您电脑的USB接口免受短路和过流伤害。尽管大多数电脑具有独立的内置保护功能,这个保险丝还是提供了额外层面的保护。如果USB接口上的电流大于500 mA,保险丝会自动断开电路直至短路或者过载问题消失。

物理参数

Yún的PCB电路板长2.7英寸,宽2.1英寸(不计USB接口)[with the USB connector extending beyond the former dimension]。四个过孔眼可以让板卡固定在物体表面或者盒子上。请注意数字引脚7和8的间距是160 mil(0.16”)而不是其它引脚那样100 mil的间距。

板卡重32克。

使用您的Yún

这里有一篇详细的入门指南和一些函数库参考页面中的教程供您参考。


知识共享许可协议
Arduino Yun Reference CNChen 创作,采用 知识共享 署名-相同方式共享 4.0 国际 许可协议进行许可。
基于arduino.cc上的作品创作。