云游天下 发表于 2015-12-30 01:02:36

Arduino* IDE 故障排除与常见问题解答

Arduino* IDE 故障排除与常见问题解答
Hai Shen (Intel), 2015 年 9 月 13 日

本指南包含故障排除信息,并解答使用 Arduino* IDE 为英特尔® Galileo 或英特尔® Edison 开发板编程时所遇到的常见问题。如欲了解详细的 Arduino IDE 安装步骤,请参阅安装 Arduino* IDE。如欲获取有关 Arduino IDE 的常见故障排除帮助,请参阅Arduino 故障排除。解决英特尔® Galileo 和英特尔® Edison 开发板的常见问题
[*]为何无法将程序上传至英特尔® Edison 开发板?
[*]为何无法将程序上传至英特尔® Galileo 开发板?
[*]开发板无法打开(绿色电源 LED 指示灯不亮)时应该怎么办?
[*]为何 sketch 已成功上传至开发板,但无法运行?
[*]无法使用 Windows* 系统中的 Arduino* IDE 部署代码
[*]无法选择端口,或串行端口呈灰色
[*]为何调用英特尔® Edison 开发板的针脚 6、9、10 或 11 上的 analogWrite() 时,无法获取 PWM(模拟输出)?
纠正错误消息
[*]使用 Arduino IDE 尝试连接时收到 "Retry 0: Got TIMEOUT" 消息
[*]"Failed to initialize Arduino board TriState" 消息
[*]"Failed to update the firmware" 消息
[*]"Retry 0:Timeout on pathname""Transfer Incomplete" 消息
[*]尝试将 sketch 上传至英特尔® Edison 开发板时收到 "Permission Denied" 消息
[*]尝试将 sketch 上传至英特尔® Galileo 开发板时收到 "Permission Denied" 消息
"Retry 0:尝试连接时收到 "Retry 0: Got TIMEOUT" 消息通过简单 Arduino 示例引入,或通过 IDE 运行 AnalogReadSerial 或 DigitalReadSerial 示例时,这是最常见问题,主要是由于英特尔® 物联网平台与 Serial Monitor 共享 USB 连接(与标准 Arduino 平台不同)。使用 SSH 或串行会话登录开发板,然后删除或重命名“/sketch/sketch.elf”文件。重启开发板或(至少)终止“sketch.elf”进程。
另外一种解决方法:该方法仅针对 Mac* OS X*。如果使用错误的 COM 端口,基于 Windows* 的系统也会遇到类似的问题。如果使用 Arduino IDE 和英特尔® Galileo 或英特尔® Edison 开发板的时收到 "Retry 0:Got TIMEOUT" 错误,可能是因为 IDE 默认自动选择了错误的串行端口。在 Arduino 中选择 Tools > Serial Port > /dev/cu.usbmodemXXXX。会出现多个带有相同命名规则的条目;用 Blink sketch 尝试其中的条目以找到合适的端口。请勿使用带有命名规则 /dev/cu.usbmodel-XXXXXXX(8 个字符加 1 个破折号)的串行端口。"Retry 0:Timeout on pathname" 或 "Transfer Incomplete" 消息可能您在 Arduino 中选择了错误的串行端口。选择 Tools > Serial Port > /dev/cu.usbmodemXXXX。会出现多个带有相同命名规则的条目;用 Blink sketch 尝试其中的条目以找到合适的端口。
请勿使用带有命名规则 /dev/cu.usbmodel-XXXXXXX(8 个字符和 1 个破折号)的串行端口。将两根 micro USB 线缆插入 Arduino breakout 开发板时可能会出现这些错误。第一根线缆(插入中间的 micro USB 端口)显示专门用于 Arduino 的端口。如果插入第二根线缆,会显示两个其他端口,用于终端访问您的开发板,但会造成 Arduino IDE 出现问题。试试拔出第二根 USD 线缆。无法使用 Windows* 系统上的 Arduino* IDE 部署代码*请务必在端口下拉列表中选择“Virtual COM Port”,而非标准 COM Port。如果您使用 12-V 适配器为开发板通电,请确保 micro USB 线缆连接距开发板中心较近的 USB 端口。如欲了解完整的设置说明,请观看分布式教程视频。
"Failed to initialize Arduino board TriState" 消息如果您收到“Intel Edison Failed to initialize Arduino board TriState, check i2c devices!FATAL" 消息,说明您的 libmraa 副本已过期或未安装。请在与开发板的串行通信会话中运行以下命令:
echo "src mraa-upm http://iotdk.intel.com/repos/1.1/intelgalactic" > /etc/opkg/mraa-upm.conf;opkg updateopkg install libmraa0opkg upgrade无法选择端口,或串行端口呈灰色如果无法选择串行端口,请确保您运行 Arduino 时采用的是“sudo”命令。
"Failed to update the firmware" 消息请确保目录路径少于 140 个字符。更新固件时,请务必遵循以下针对开发板和操作系统的相应说明:
有关英特尔® Edison 开发板的说明,请查阅使用 Flash Tool Lite。有关英特尔® Galileo 开发板的说明,请访问下列相应链接:
[*]制作基于 Windows* 的可启动 micro SD 卡
[*]制作基于 Mac* OS X* 的可启动 micro SD 卡
[*]制作基于 Linux* 的可启动 micro SD 卡
为何无法将程序上传至英特尔® Edison 开发板?在开发板上运行程序涉及到多个组件和步骤,包括:面向开发板的驱动程序、在 Arduino 软件中选择开发板和串行端口、访问串行端口、物理连接开发板,开发板的固件等等。第一步是完全重启开发板和计算机。重启英特尔® Edison 开发板时,请拔出电源,不要使用开发板上的 "reboot" 按钮。如果完全重启无法解决问题,请尝试下列故障排除建议:Arduino 软件

[*]请确保您从 Tools > Board 菜单中选择正使用的相应开发板(英特尔® Edison、第一代英特尔® Galileo,或第二代英特尔® Galileo 开发板)。
[*]检查在 Tools > Serial Port 菜单中选择的端口是否合适(如果不显示端口,请尝试在开发板连接计算机的情况下重新打开 IDE)。在基于 Mac OS X 的系统上,串行端口应类似于 /dev/tty.usbmodem1a123。在基于 Linux 的系统上,串行端口应为 /dev/ttyACM0 或类似端口。在基于 Windows 的系统上,您的端口应列为 COM 端口,但您需要查看“Device Manager”(端口下方)中显示的具体端口。如果无法为开发板选择端口,请参阅下列“Drivers”部分。
[*]如果无法在基于 Linux 的系统上正常运行 Arduino IDE,请确保是否安装了 Java。检查时,打开与开发板的串行通信会话,输入“java”,然后按下“Enter”。如果收到 "The program 'java' can not found..." 消息,请输入以下命令:sudo apt-get install default.jre。按照屏幕上的说明输入您的密码,并安装 Java。
驱动程序(仅针对 Windows*)

[*]驱动程序提供方法支持计算机的软件(本示例中为 Arduino IDE 软件)与您的硬件进行交互。只有在使用基于 Windows 的系统为英特尔® Edison 开发板编程时需要安装驱动程序。如需检查是否安装了驱动程序,请打开“Device Manager”(打开“Windows Start”菜单,在搜索栏中输入“Device Manager”),查看是否有针对未知设备的条目。如果有,请前往英特尔® Edison 开发板软件下载页面的驱动程序软件部分,下载面向 Windows 的最新单机版驱动程序。
[*]在基于 Linux 的系统上,英特尔® Edison 开发板可能显示为 /dev/ttyACM0 形式的设备。标准版 RXTX 库(支持 Arduino 软件进行串行通信)不支持该设备。面向 Linux 的 Arduino 软件下载包括安装了补丁的 RXTX 库,以搜索这些 /dev/ttyACM* 设备。还包括可支持这些设备的 Ubuntu* 包(面向 11.04)。不过,如果您使用分发版中的 RXTX 包,您需要创建(例如) /dev/ttyACM0 与 /dev/ttyUSB0 之间的符号链接,以便 Arduino 软件显示串行端口。
访问串行端口

[*]在基于 Windows 的系统中,如果系统打开速度慢,在启动过程中崩溃,或“Tools”菜单的打开速度慢,您需要禁用“Device Manager”中的蓝牙* 串行端口或其他已连接的 COM 端口。运行 Arduino 或打开 Tools 菜单时,Arduino 软件自动扫描计算机的所有串行 (COM) 端口。这些已连接的端口有时会造成延迟或系统崩溃。
[*]请确认您未运行扫描所有串行端口的程序,比如 USB Cellular Wi-Fi* Dongle 软件(例如 Sprint 或 Verizon 的软件)、PDA 同步应用、Bluetooth-USB 驱动程序(例如 BlueSoleil),虚拟后台程序工具等等。
[*]确保没有阻止访问串行端口的防火墙软件(例如 ZoneAlarm*)。
[*]如果您正使用 Processing、PD、vvvv 或类似程序通过 USB 或与 Arduino 开发板的串行连接读取数据,需要停止这些程序。
[*]在基于 Linux 的系统上,您可以尝试以根身份运行 Arduino 软件。如需以根身份运行,请打开终端窗口,导航至“Arduino IDE”安装文件夹,并输入“sudo ./arduino”以运行 Arduino。您需要输入密码。
物理连接

[*]首先,确保开发板已通电(绿色 LED 指示灯亮)且连接至计算机。如果无法正确连接开发板,请参阅组装和连接开发板。
[*]在开发板仅连接 USB 线缆的情况下尝试上传代码。包括护罩、传感器和发动机。
[*]确保开发板远离任何金属或导电物质。
[*]尝试使用其他 USB 线缆以确保所使用的线缆无任何故障。
固件
确保开发板使用的是最新固件。如欲闪存最新固件,请参阅使用 Flash Tool Lite。如果还有其他问题,请访问英特尔® Edison 开发板论坛寻求帮助。请提供以下信息:
[*]您的操作系统
[*]所使用的开发板类型
[*]之前是否能够上传至开发板。如果能够,您进行了哪些操作步骤/何时停止运行,以及您最近添加或删除了哪些软件?
[*]尝试上传时所显示的带有冗长输出的消息。为此,请长按“Shift”键并点击工具栏中的“Upload”图标。
为何无法将程序上传至英特尔® Galileo 开发板?在开发板上运行程序涉及到多个组件和步骤,包括:面向开发板的驱动程序、在 Arduino 软件中选择开发板和串行端口、访问串行端口、物理连接开发板,开发板的固件等等。第一步是完全重启开发板和计算机。重启英特尔® Galileo 开发板时,请拔出电源,不要使用开发板上的 "reboot" 按钮。如果完全重启无法解决问题,请尝试下列故障排除建议:Arduino 软件

[*]请确保您从“Tools > Board”菜单中选择正使用的相应开发板(英特尔® Edison、第一代英特尔® Galileo,或第二代英特尔® Galileo 开发板)。
[*]检查在“ Tools > Serial Port”菜单中选择的端口是否合适(如果不显示端口,请尝试在开发板连接计算机的情况下重新打开 IDE)。在基于 Mac OS X 的系统上,串行端口应类似于 /dev/tty.usbmodem1a123。在基于 Linux 的系统上,串行端口应为 /dev/ttyACM0 或类似端口。在基于 Windows 系统上,您的端口应列为 COM 端口,但您需要查看 Device Manager(端口下方)所显示的具体端口。如果无法为开发板选择端口,请参阅下列“Drivers”部分。
[*]如果无法正常使用基于 Linux 的系统上的 Arduino IDE,请确保是否安装了 Java。检查时,打开与开发板的串行通信会话,输入“java”,然后按下“Enter”。如果收到 "The program 'java' can not found..." 消息,请输入以下命令:sudo apt-get install default.jre。按照屏幕上的说明输入您的密码,并安装 Java。
驱动程序(仅针对 Windows*)

[*]驱动程序提供方法支持计算机的软件(本示例中为 Arduino IDE 软件)与您的硬件进行交互。只有在使用基于 Windows 的系统为开发板编程时需要安装驱动程序。如需检查是否安装了驱动程序,请打开“Device Manager”(打开“Windows Start”菜单,在搜索栏中输入“Device Manager”),查看是否有针对未知设备的条目。如果您的是未知设备,比如 "Gadget Serial v2.4",您需要手动更新驱动程序软件。为此,请按照以下步骤操作:

[*]右击未知设备,选择“Update Driver Software...”。
[*]选择“Browse my computer for driver software”。
[*]在搜索栏中输入“C:\arduino-1.5.3\hardware\arduino\x86\tools”并点击“Next”以安装该驱动程序

注:如果未将 Arduino IDE 解包至 C:\,需要导航至未解包位置。
[*]在基于 Linux 的系统上,英特尔® Galileo 开发板可能显示为 /dev/ttyACM0 形式的设备。标准版 RXTX 库(支持 Arduino 软件进行串行通信)不支持该设备。面向 Linux 的 Arduino 软件下载包括安装了补丁的 RXTX 库,以搜索这些 /dev/ttyACM* 设备。还包括可支持这些设备的 Ubuntu 包(面向 11.04)。不过,如果您使用分发版中的 RXTX 包,您需要创建(例如) /dev/ttyACM0 与 /dev/ttyUSB0 之间的符号链接,以便 Arduino 软件显示串行端口。
访问串行端口

[*]在基于 Windows 的系统中,如果系统打开速度慢,在启动过程中崩溃,或“Tools”菜单的打开速度慢,您需要禁用“Device Manager”中的蓝牙* 串行端口或其他连接的 COM 端口。运行 Arduino 或打开“Tools”菜单时,Arduino 软件自动扫描计算机的所有串行 (COM) 端口。这些已连接的端口有时会造成延迟或系统崩溃。
[*]请确认您未运行扫描所有串行端口的程序,比如 USB Cellular Wi-Fi Dongle 软件(例如 Sprint 或 Verizon 的软件)、PDA 同步应用、Bluetooth-USB 驱动程序(例如 BlueSoleil),虚拟后台程序工具等等。
[*]确保没有阻止访问串行端口的防火墙软件(例如 ZoneAlarm)。
[*]如果您正使用 Processing、PD、vvvv 或类似程序通过 USB 或与 Arduino 开发板的串行连接读取数据,需要停止这些程序。
[*]在基于 Linux 的系统上,您可以尝试以根身份运行 Arduino 软件。如需以根身份运行,请打开终端窗口,导航至 Arduino IDE 安装文件夹,并输入“sudo ./arduino”以运行 Arduino。您需要输入密码。
物理连接

[*]首先,确保开发板已通电(绿色 LED 指示灯亮)且连接至计算机。如果无法正确连接开发板,请参阅采用 Arduino* 组装英特尔® Galileo 开发板。
[*]在开发板仅连接 USB 线缆的情况下尝试上传代码。包括护罩、传感器和发动机。
[*]确保开发板远离任何金属或导电物质。
[*]尝试使用其他 USB 线缆以确保所使用的线缆无任何故障。
固件
确保开发板使用的是最新固件。如欲闪存最新固件,请遵循以下针对各操作系统的步骤:
[*]制作基于 Windows* 的可启动 micro SD 卡
[*]制作基于 Mac* OS X* 的可启动 micro SD 卡
[*]制作基于 Linux* 的可启动 micro SD 卡
如果还有其他问题,请访问英特尔® Galileo 开发板论坛寻求帮助。请提供以下信息:
[*]您的操作系统
[*]所使用的开发板类型
[*]之前是否能够上传至开发板。如果能够,您进行了哪些操作步骤/何时停止运行,以及您最近添加或删除了哪些软件?
[*]尝试上传时所显示的带有冗长输出的消息。为此,请长按“Shift”键并点击工具栏中的“Upload”图标。
开发板无法打开(绿色电源 LED 指示灯不亮)该怎么办?确保您的开发板已正常通电。具体步骤请访问以下相应链接:
[*]英特尔® Edison 开发板:组装和连接开发板
[*]采用 Arduino* 组装英特尔® Galileo 开发板
英特尔® Edison 开发板,请确认以下情形:
[*]确保 USB 端口附近的开关拨至 micro USB 端口方向。
[*]您的计算机可能无法通过 USB 端口提供充足电源。尝试使用电源为开发板通电(第一代英特尔® Galileo 开发板电源为 7 伏,第二代英特尔® Galileo 和英特尔® Edison 开发板电源为 12 伏。)
为何 sketch 似乎已成功上传至开发板,但无法运行?
[*]检查电源是否不稳定。这样可能会导致开发板丢失 sketch。
[*]如果开发板的电源 LED 指示灯不断闪烁,说明系统正在重置,无法运行 sketch。
[*]如果使用电池为第二代英特尔® Galileo 或英特尔® Edison 开发板通电,请确保该电池的电压高于 7 伏。
[*]如果电池耗尽,但开发板连接了多个传感器/伺服器,开发板可能电力不足。尝试使用电源为开发板通电(第一代英特尔® Galileo 开发板电源为 7 伏,第二代英特尔® Galileo 和英特尔® Edison 开发板电源为 12 伏。)
[*]拔出传感器或伺服器,或通过筒形插座将开发板插入壁式插座,然后重新上传 sketch。
为何调用面向英特尔® Edison 开发板的针脚 6、9、10 或 11 的 analogWrite() 时,无法获取 PWM(模拟输出)?英特尔® Edison 开发板一次只能输出 4 个针脚的 PWM。默认状态下,swizzler 跳线(J11 和 J12)经过设置以便针脚 3、5、6 和 9 支持 PWM 输出。您可以移动 swizzler,将支持 PWM 输出的针脚换成 3、5、10 和 11。不过,您每次输出的 PWM 不会超过 4 个。如欲了解有关针脚和调节 swizzler 的更多信息,请访问 http://www.emutexlabs.com/project/215-intel-edison-gpio-pin-multiplexing-guide。尝试将 sketch 上传至英特尔® Edison 开发板时收到 "Permission Denied" 消息
[*]在基于 Windows 的系统上,请务必在端口下拉菜单中选择“Virtual COM Port”,而非标准 COM Port。
[*]如果您使用 12V 适配器为开发板通电,确保 micro USB 连接距开发板中心较近的 USB 端口。
[*]您可以参考分布式教程以进行准确设置。
尝试将 sketch 上传至英特尔® Galileo 开发板时收到 "Permission Denied" 消息该错误经常在运行于第二代英特尔® Galileo 开发板的 sketch 干扰上传新 sketch 时出现。请尝试进行下列操作:
[*]拔出连接计算机的 USB 线缆。
[*]拔出壁式插座上的 12-V 电源。
[*]如果您的开发板安装了 SD 卡,请将其拆卸。
[*]请遵循创建面向英特尔® Galileo 开发板的可启动 micro SD 卡中介绍的步骤,为 SD 卡安装新映像。
[*]重新将 SD 卡插入开发板。
[*]重新插入 12-V 电源和 USB 线缆。现在您应该能够将新 sketch 上传至开发板。





页: [1]
查看完整版本: Arduino* IDE 故障排除与常见问题解答