普通版本
POE版本
概述
Arduino Yún是基于ATmega32u4和Atheros AR9331的微控制器电路板。Atheros处理器支持基于OpenWrt的Linux版本——Linino OS。Arduino Yún内置以太网和WiFi支持功能、一个USB-A端口、微型SD卡插槽、20个数字输入/输出引脚(其中7个引脚用作PWM输出,12个用作模拟输入)、一个16 MHz晶体振荡器、一个微型USB连接器、一个ICSP头部和三个重置按钮。
注意:在一些国家,未经政府批准禁止销售支持WiFi的设备。在等待认证时,当地的一些分销商会禁用WiFi功能。如果你认为自己可能居住在这样一个国家,那么请在购买Yún之前向经销商进行咨询(这也许是针对朝鲜国的吧,不知道在这个国度是否有极客存在)。
Yún与其他Arduino电路板的不同之处在于,它能在板上与Linux系统进行通信,实现功能强大的联网计算机,同时享有Arduino的便捷性。除cURL这样的Linux命令之外,你可以编写自己的shell和python脚本,实现强大交互。
Yún与Leonardo类似:ATmega32u4内置USB通信功能,不必配备辅助处理器。这样,使Yún在所连接的计算机上显示为鼠标和键盘——除虚拟(CDC)串行/ COM端口之外。
Bridge库使两个处理器之间的通信更容易,让Arduino sketch能够运行shell脚本、与网络接口进行通信,并接收来自AR9331处理器的信息。USB主机、网络接口和SD卡并不连接到32U4,而是连接到AR9331,并且Bridge库也支持Arduino连接这些外设。
概要
因为Yún有两个处理器,所以,总结部分用两个不同的表来说明每个处理器的特点。
原理图与参考设计
关于硬件细节可以参考文章后面的完整原理图,很可惜AR9331部分是被当作一个module来处理的,不能看的更细节的东西,希望将来有一天全部OPEN吧。
电源
建议通过5VDC微型USB连接为电路板供电。
如果通过Vin引脚为电路板供电,那么必须提供5VDC稳压。没有针对更高电压的板载稳压器,高压会损坏电路板。
另外,Yún还兼容PoE电源,但为了使用该功能,需要在板上安装PoE模块,或购买预装板。
注:带PoE适配器的Yún电路板早期型号错误地为电路板提供12V供电。更新版本将很快提供给分销商,可以提供预期的5V供电。如果你认为电路板上的PoE适配器不正确,请联系support@arduino.org
电源引脚如下:
VIN. Arduino电路板的输入电压。与其他Arduino电路板不同的是,如果要通过这个引脚为电路板供电,必须提供5V稳压。
5V. 用于为微控制器及电路板上其他组件供电的电源。这可以来自VIN或通过USB供电。
3V3. 板载稳压器产生的3.3伏电源。最大电流消耗为50毫安。
GND. 接地引脚。
IOREF. 电路板输入/输出引脚的工作电压(即,电路板的VCC)。在Yún上为5伏。
存储器
ATmega32u4有32 KB(4 KB用于引导加载程序)内存。另外,还有2.5 KB SRAM和1 KB EEPROM(可利用EEPROM库进行读写)。
AR9331的内存并未嵌入处理器内。RAM和存储内存都是外接的。Yún Mini具有64 MB DDR2 RAM和16 MB闪存。闪存在工厂预装基于OpenWrt的Linux系统——Linino。你可以改变原厂镜像的内容,比如,当你安装程序或改变配置文件时。按住“WLAN RST”30秒时间,就可以返回原厂配置。
安装Linino OS会占用内部16MB闪存中的大约9 MB。如果需要更大磁盘空间来安装应用程序,那么可以使用micro SD卡。
输入和输出
不可能接近Atheros AR9331的I/O引脚。所有I/O引脚都已被绑定到32U4上。
Yún上20个数字I/O引脚中的每一个都可用作输入或输出引脚,使用pinMode()、digitalWrite()和digitalRead()函数。其工作电压为5伏。 每个引脚都可提供或接受最大40毫安电流,并有20-50千欧的内部上拉电阻(默认断开)。此外,一些引脚具有专门功能:
Serial:0(RX)和1(TX)。用于利用ATmega32U4硬件串口功能接收(RX)和发送(TX)TTL串行数据。注意,在Yún上,串行类是指USB(CDC)通信;对于引脚0和1上的TTL串口,使用Serial1类。Yún上ATmega32U4和AR9331的硬件串口连接在一起,用于在两个处理器之间进行通信。因为这在Linux系统中很常见,所以,访问系统的控制台会暴露在AR9331的串行端口上,这意味着可以从你的Sketch上访问Linux程序和工具。
TWI:2(SDA)和3(SCL)。支持利用Wire库进行TWI通信。外部中断:3(中断0)、2(中断1)、0(中断2)、1(中断3)和7(中断4)。这些管脚可被配置为在低值、上升沿或下降沿或值的变化时触发中断。参阅attachInterrupt()函数,了解详情。不建议使用引脚0和1作为中断,因为它们也是用于与Linux处理器对话的硬件串口。引脚7连接到AR9331处理器,将来可用作握手应答信号。如果打算将其用作中断,建议要小心可能发生的冲突。
PWM:3、5、6、9、10、11和13。提供具备analogWrite()函数的8位PWM输出。
SPI:在ICSP头部。这些引脚支持利用SPI库进行SPI通信。注意,SPI引脚并不连接到任何数字输入/输出引脚,因为它们在Uno上。它们仅在ICSP接口上提供。这意味着,如果扩展板使用SPI,但没有6引脚ICSP连接器可以连接到Yún的6引脚ICSP 头部,扩展板将无法工作。另外,SPI引脚还连接到AR9331 gpio引脚,这是通过软件实施的。这意味着ATMega32u4和AR9331也可利用SPI协议进行通信。
LED:13。有一个连接到数字管脚13的内置LED。当管脚为HIGH值时,LED亮起,当管脚为LOW值时,LED熄灭。在Yún上还有其他多个状态LED,指示电源、WLAN连接、WAN连接和USB功能。
模拟输入:A0 - A5、A6 - A11(在数字引脚4、6、8、9、10和12上)。Yún有12个模拟输入端口,标有A0到A11,也全部都可用作数字输入/输出端口。引脚A0-A5出现在与Uno上同样的位置上;输入端口A6-A11分别在数字输入/输出引脚4、6、8、9、10和12上。每个模拟输入端口都提供10位分辨率(即1024个不同的值)。默认情况下,模拟输入端口从接地到5伏不等,不过可以利用AREF引脚和analogReference()函数改变其范围的上限值。
AREF: 模拟输入端口的参考电压。配合analogReference()使用。
板上有具备不同功能的3个重置按钮:
Yún RST. 设置为LOW时,对AR9331微处理器进行重置。重置AR9331会造成Linux系统的重启。RAM中存储的所有数据都会丢失,正在运行的所有程序将被终止。
32U4 RST. 设置为LOW时,对ATmega32U4微控制器进行重置。通常用于向扩展板添加重置按钮。
WLAN RST. 该按钮具有双重功能。主要用于将WiFi恢复到原厂配置。原厂配置包括将Yún的WiFi设为接入点模式(AP)并为其分配默认的IP地址192.168.240.1,在这种情况下,你可以将计算机连接到显示 “Arduino Yun-XXXXXXXXXXXX”SSID名称的WiFi网络,其中这12个‘X’是你的Yún的MAC地址。连接后,立即就可以在192.168.240.1或“http://arduino.local”地址利用浏览器访问Yún的网络面板。注意,恢复WiFi配置将导致Linux环境的重启。为恢复你的WiFi配置,必须按住WLAN RST按钮5秒钟时间。在按该按钮时,WLAN蓝色LED开始闪烁,并且在5秒后释放该按钮,仍保持闪烁状态,表明WiFi恢复程序已被记录下来。WLAN RST按钮的第二个功能是将linux镜像恢复到默认的原厂镜像。为恢复linux环境,必须按住该按钮30秒时间。注意,恢复原厂镜像会导致你丢失在连接到AR9331的板载闪存上保存的所有文件和安装的软件。
通信
Yún有许多装置支持与计算机、另一个Arduino或其他微控制器之间进行通信。ATmega32U4提供专用的UART TTL (5V)串行通信。另外,32U4还支持通过USB进行串行(CDC)通信,显示为计算机上软件的一个虚拟com端口。另外,芯片还作为一个全速USB 2.0器件,使用标准USB COM驱动程序。Arduino软件包括一个串口监视器,允许Arduino电路板收发简单的文本数据。当数据正在通过USB连接传输到计算机上时,电路板上的RX和TX LED闪烁。
数字引脚0和1用于32U4与AR9331之间的串行通信。处理器之间的通信由Bridge库处理。
SoftwareSerial库支持使用Yún的任何数字引脚进行串行通信。应避免使用引脚0和1,因为它们由Bridge库使用。
另外,ATmega32U4还支持I2C (TWI) 和SPI通信。Arduino软件包括一个Wire库,可以简化使用I2C总线。对于SPI通信,使用SPI库。
Yún显示为通用的键盘和鼠标,并可进行编程,以利用键盘和鼠标类控制这些输入设备。
板载以太网和WiFi接口直接暴露于AR9331 处理器。要通过它们发送和接收数据,使用Bridge库。
另外,Yún还有基于Linino OS的USB主机功能。你可以连接USB闪存设备这样的外设来获得额外的存储、键盘或摄像头。你可能需要下载并安装额外软件,使这些设备工作。
编程
Yún可利用Arduino软件进行编程。选择“Arduino Yún from the Tools > Board menu(根据电路板上的微控制器)。
Arduino Yún上的ATmega32U4利用引导加载程序进行预烧录,让你可以向其上传新代码,无需使用外部硬件编程。它可以利用AVR109协议进行通信。
另外,你还可以绕过引导加载程序,利用Arduino ISP或类似方式通过ICSP (总线串行编程)头部对微控制器进行编程。
自动(软件)重置和引导加载程序启动
在上传之前不用实际按重置按钮,Yún被设计为可以通过在所连接的计算机上运行的软件对其重置。当Yún的虚拟(CDC)串行/ COM端口在1200波特下打开然后关闭时,会触发重置。当这种情况发生时,处理器将重置,断开与计算机的USB连接(意味着虚拟串行/ COM端口将消失)。在处理器重置后,引导加载程序启动,保持激活状态大约8秒钟时间。另外,也可通过按Yún上的重置按钮来启动引导加载程序。注意,当Leonardo板第一次加电时,会直接跳转到用户sketch,如果存在,就不会启动引导加载程序。
由于Yún处理重置所采用的方式,最好让Arduino软件尝试在上传之前启动重置,特别是如果你习惯于在其他电路板上传之前按重置按钮的话。如果软件不能对电路板重置,随时都可以通过按电路板上的重置按钮启动引导加载程序。
USB 过流保护
具有可复位的多晶硅熔断器,可以保护计算机的USB端口,使其免受短路和过流的影响。尽管大多数计算机都提供自己的内部保护,但熔断器可以提供额外的一层保护。如果超过500 mA的电流施加到USB端口,那么,熔断器将自动中断连接,直至去除短路或过载。
物理特性
Yún PCB的最大长度和宽度分别为2.7和2.1英寸,配备的USB连接器超越先前的尺寸。借助四个螺孔,电路板可以固定到表面或机箱上。注意,数字引脚7和8之间的距离是160密耳(0.16英寸),并不是其他引脚的间距100密耳的偶数倍。
电路板的重量是32 g。
------------------------------------------------ 分割线 -------------------------------------------------
以上文字参考官方介绍和相关资料。
先发拆包图,养眼的小板子,包装盒子上写着MADE IN TAIWAN,当然还有一点,比我想象中要小很多,官方现在还有个Arduino YúN Mini更袖珍。
对Arduino YúN第一印象
第一次关注这个小板子估计是两年之前了,找了一下之前发的说说时间2013-10-22,确实不错的板子,不过在今天拿到板子之前都没有去官方仔细看过板子的资源,本想着Arduino阵营的嘛,全开源的东西咯,等以后接触时再去看官方的资料吧,但是我在官方网站找了个遍也 没找到关于AR9331开发的相关资源,比如uboot/kernel/gcc等,所以从这里可以看出这板子的定位依然是Arduino的易用性,不需要用户折腾这些高深的玩意,你要做什么都能实现才是目的,板载的linux中已经运行好python了,用高级语言不失是一种最有效的途径,能带给用户更好的体验,搭建个YúN应用分分钟的事情,后面的测评中我给大家介绍如何搭建。
说说截图留恋
AR9331算是这几年比较热门的物联网芯片之一了,伴随而来的各种开源硬件/开源项目数不胜数,关于这颗IC这里也给不熟悉的朋友普及一下,Atheros的路由器芯片。
AR9331 General Description & Feature
AR9331内部框图
对于Arduino YúN 这些都是多余的,没有比较深入了解他,很容易能上手用,主要是由于Arduino的丰富的库资源,下载一个支持Arduino YúN 的Arduino IDE看看。
这个IDE中有很多的现成的库可以用于实现Arduino YúN 板子的云端功能,至于细节不要追根就低了,这是Arduinio阵营的法则,易用/好用。好了,第一篇测评就写这么多了,算是一个开端吧,今天中午才拿到板子。
参考资料
http://www.arduino.org/products/arduino-yun
附件资源