Arduino Yun入手评测与基本配置指南

  版权信息:
● 本博客使用CC 3.0协议,转载请保留该信息。
● 原文作者: 戴晓天 @ 云飞机器人实验室
● 原文地址: Arduino Yun入手评测与基本配置指南

一、不一样的Arduino Yún

DSC01304
Figure 1. Arduino Yún开箱图

上周末从英国本地的网站买到了觊觎已久的Arduino Yún,今天拿到之后大概试用了一下。在我看来,最新的Arduino Yún在三个方面完全不同于以往的Arduino:
1) 高运算速度;
2) 与Linux系统的结合;
3) 网络连接的无缝性。

1) 运算速度

Arduino的运算速度和性能一直是被Geeks诟病的问题,很长一段时间,我也因此拒绝使用Arduino。所以Arduino团队发布了Arduino Due,试图提高Arduino系列的计算能力。而Arduino Yún则是Due的又一次升华,此次Yún使用CPU+MCU架构,400MHz主频的Atheros AR9331处理器使得更多复杂算法的实现成为可能,突破使用单一ATmega32u4单片机16MHz的束缚,让玩家们更加自由的发挥自己的想法。

DSC01307
FIgure 2. Arduino Yún正面特写

2) 与Linux系统的结合

此次Arduino Yún使用CPU+MCU架构,使用一款Bridge的软件包通过UART实现双处理器之间的通信。AR9331内置了发行代号为Linino的Linux版本,此版本基于著名的OpenWRT开源路由器系统。这也是Arduino第一次将Arduino与Linux进行结合,因为Linux有数不甚数的软件包,其引入大大提高了Arduino的可玩性。Yún的有线网络、WiFI、USB Host、microSD等功能都是由AR9331控制的,该方案相比以前的使用Arduino + 扩展板在性能和易用上都有很大提升。内建的USB通讯与Linux系统对多种外设的支持,使Yún可以直接支持外接鼠标、键盘、摄像头、U盘等USB设备。

同时,该Linux版本包含了Python v2.7,Python的强大编程能力与扩展性都将完全不同于之前基于C/C++的Arduino开发方式,Python v2.7.6的开发文档可见:https://docs.python.org/2/.

image
Figure 3. Arudino Yun的双处理器通过Bridge进行数据交换

3) 网络连接的无缝性

另一个Yún的特性就是其内建了有线 / 无线双网络,并且OpenWRT先天对网络相关的功能就有很好的支持。这使得Yún不需要额外的网络扩展板,并且具有更高的网络带宽,使其非常适合于构建基于网络的物联网应用。我想这也是Arduino Yún名字的由来与设计初衷吧。

DSC01308
Figure 4. Arduino Yún背面特写

二、使用Arduino Yún

2.1  硬件布局

Arduino Yun的外部引脚定义与UNO一致,在此不再介绍;其他的硬件与接口布局如下图所示:

YunParts
Figure 5. Arduino Yun正面硬件布局

注意Arduino Yun的背面还有一个芯片 (见 Figure 4),按照原理图应该为AU6350,这是一篇用于USB和SD读取的扩展芯片。Arduino Yun有三个复位按钮,分别用于复位不同的模块,注意32U4的复位按钮需要按两次才有效;同时Yun具有7个LED指示灯,增加的指示灯用于网络状态提示,还有一个指示灯连接到了Pin 13,功能由用户自定义。

YunResetIllustrations
Figure 6. Arduino Yun复位及指示灯

2.2  安装与配置

1、从 http://arduino.cc/en/Main/Software 下载最新的Arduino IDE版本1.5.6,如果已经安装了其他版本,则需要先卸载原版本;另外为了之后能自动识别Yun连接到了网络中,需要下载安装Bonjour,点击这里下载

2、将Arduino Yun的microUSB接入电脑,大约等待30s,等待系统启动完成;
3、搜索无线网络连接并连接Yun创建的网络热点:Arduino Yun – ######:

yun_wifi
Figure 7. 连接到Arduino Yun的WiFi

4、网络连接成功后,打开浏览器并访问网址:http://arduino.local/,将出现Figure 8中的登陆界面,输入密码“arduino”并点击”LOG IN”。

image
Figure 8. Arduino Yun登陆界面

5、登陆成功后,可以看到当前的网络状态,点击右上角的”CONFIGURE”按钮进行下一步配置。

image
Figure 9. Arduino Yun网络状态

6、之后的这一步,主要是设置Arduino Yun的访问账户、密码以及需要连接的无线网络。Yun会自动搜索周围的无线网络,这里最好保证Yun连接的是与开发PC连接的同一个无线路由器。配置完成后,点击”CONFIGURE & RESTART”使配置生效。注意该网页可能不会有响应,因为此时Yun已经关闭了自身的热点,并试图连接到指定的热点。对于没有无线路由器的用户,可以使用有线连接 (没有测试调试,步骤可能与以下不同),也可以使用电脑WiFi共享软件。

image
Figure 10. Arduino Yun配置界面

7、此时打开Arduino IDE,选择工具 –>开发板->Arduino Yun

image

Figure 11. 选择开发板为Arduino Yun

8、因为Yun使用ATmega32U4芯片,所以用microUSB对其编程的方式与Arduino Leonardo是一样的。而一旦你配置了Yun连接到你的WiFi网络,你就可以通过WiFi远程更新32U4的程序了。此时选择工具 –>端口,如果之前的配置无误并且安装了Bonjour,这里就能看到Arduino Yun的IP和端口,点击选择该选项。之后打开一个例程 (比如Files>Examples>01Basic>Blink) 再点击下载,此时AR9331就将作为编程器,通过从WiFi接收程序,并通过SPI接口对32U4进行编程。上传过程中需要输入密码,该密码就是之前在网页中设置的密码。成功编译、下载后,将看到Yun板载的红色指示灯以1s间隔闪烁。

image
Figure 12. 从端口中找到Yun对应的IP

至此,Arduino Yun的基本配置就完成了。

2.3  重设网络与恢复出厂设置

如果网络连接配置不正常或者更换了无线网络,可以通过按下WiFi复位键5秒以上、30秒以下对无线网络进行复位,之后就可以重新配置网络。

如果要恢复出厂设置,就按下WiFi复位按钮30秒以上,这样AR9331就会恢复出厂设置,删除所有网络设置及所有已安装的文件和软件。

2.4  Linux与ATMega32U4的通信方法

Arduino Yun的两个处理器之间使用Bridge程序库进行通信 (硬件上为串口),使得32U4可以访问Linux的程序和功能。该部分相对较为重要,将在我的下一篇博文中具体介绍。

三、使用细节与局限性

■ Yun没有板载电源稳压,如果使用外部电源从VIN引脚供电,必须保证电压为5V输入。

■ Yun支持PoE (Power Over Ethernet) 远程供电,可以购买相应的供电模块。

■ Yun使用的是基于OpenWRT的轻量级Linux,而且内部Flash只有16MB,这意味着有很大一部分Linux程序包无法被支持。

■ Yun有64MB的DDR2内存和16MB的FLASH存储。该存储空间用于安装Linino系统,该安装镜像可以被更改。

■ 串口程序的编写与之前的Arduino不同, Serial 类变为用于USB (CDC)通信, Serial1类才被用于TTL串口通信在硬件上ATmega32U4与AR9331的串口是相互连接的,只是用于两个处理器直接的数据通信的。因为Linux的串口可以访问控制台,所以在程序中可以利用该特性访问Linux的程序与工具。另外Yun的USB连接为虚拟串口,每次重启32U4时会断开当前的串口连接,所以避免在程序操作串口时重启32U4。

■ Yun的外部中断引脚为: 3 (interrupt 0), 2 (interrupt 1), 0 (interrupt 2), 1 (interrupt 3) 以及 7 (interrupt 4)。这些中断支持低电平触发、上升沿触发、下降沿触发以及电平变化触发。然而,数字引脚0和1已经被用于与Linux的串口通信,所以不建议使用;另外数字引脚7也是连接到AR9331的,可能以后会被用于握手信号,所以也要小心使用。换言之,只有中断引脚3 (interrupt 0), 2 (interrupt 1) 是可用的。

■ 注意Yun的SPI口并没有直接连接到引脚上,而是连接到了ICSP下载口上。这意味着如果扩展板需要使用SPI接口但却没有连接到6-pin ICSP接口上,那就没法正常使用。

■ 因为MicroSD卡不是被32U4直接访问的,如果需要从32U4中访问SD的数据,必须在SD卡根目录中包含名为”arduino”的文件夹。

参考资料

[1] Arduino.cc, Arduino Yún, http://arduino.cc/en/Main/ArduinoBoardYun

[2] Arduino.cc, LET’S EXPLORE ARDUINO YÚN’S UNIQUE FEATURES – HARDWARE REVIEW, http://blog.arduino.cc/2013/09/02/arduino-yun-hardware-review/#.Uz3BR_ldUXs

[3] Arduino.cc, Guide to the Arduino Yún, http://arduino.cc/en/Guide/ArduinoYun

[4] Arduino.cc, YÚN Package Manager, http://arduino.cc/en/Tutorial/YunPackageManager

[5] stackoverflow, About REST, http://stackoverflow.com/tags/rest/info

Leave a Reply

Be the First to Comment!

Leave a Reply

wpDiscuz
%d bloggers like this: