Arduino命令行工具是Arduino IDE之外的一种强大补充,它允许开发者通过终端直接与Arduino板进行交互,无需打开图形界面即可完成代码编译、上传、板卡管理等多种操作,对于习惯使用命令行的开发者、需要自动化构建流程的项目,或是在资源受限的环境中工作,命令行工具提供了更高的灵活性和效率,Arduino命令行工具的核心是arduino-cli,这是一个跨平台的命令行接口,支持Windows、macOS和Linux系统。

要使用arduino-cli,首先需要完成安装,在Windows上,可以通过Chocolatey包管理器安装,命令为choco install arduino-cli;在macOS上,可以使用Homebrew,命令为brew install arduino-cli;对于Linux用户,可以通过Snap安装(snap install arduino-cli)或从GitHub releases页面下载二进制文件,安装完成后,建议通过arduino-cli version命令验证安装是否成功,并使用arduino-cli config init初始化配置文件,默认会生成在用户目录下的.arduino15文件夹中,配置文件中可以设置默认的板卡型号、端口、额外管理URL等参数,例如通过arduino-cli config set board_manager.additional_urls "https://example.com/package_index.json"添加第三方板卡支持。
arduino-cli的核心功能之一是板卡和库的管理,使用arduino-cli core update-index可以更新核心包索引,类似于apt update或brew update,安装特定板卡的核心包时,使用arduino-cli core install packagename:architecture,例如arduino-cli core install arduino:avr安装Arduino AVR核心包,查看已安装的核心包则通过arduino-cli core list命令,库的管理同样便捷,arduino-cli lib install libraryname用于安装库,arduino-cli lib update-index更新库索引,arduino-cli lib list列出已安装的库,如果需要卸载库或核心包,可以使用arduino-cli lib uninstall libraryname或arduino-cli core uninstall packagename:architecture命令。
编译和上传代码是arduino-cli最常用的功能,假设有一个名为sketch.ino的Arduino程序,编译命令为arduino-cli compile --fqbn arduino:avr:uno sketch,其中--fqbn(fully qualified board name)参数指定了板卡型号,如arduino:avr:uno表示Arduino Uno,编译过程中,arduino-cli会在当前目录生成一个build文件夹,包含编译后的.elf、.hex等文件,上传代码时,需要先通过arduino-cli board list命令查看连接的板卡及其串口端口,然后使用arduino-cli upload -p /dev/ttyUSB0 --fqbn arduino:avr:uno sketch命令,其中-p参数指定串口路径,如果板卡需要按复位键才能进入上传模式,可以添加--verify参数在上传后自动验证代码是否成功烧录。
除了基本功能,arduino-cli还支持高级特性,如串口监视器、库搜索和问题排查,通过arduino-cli monitor -p /dev/ttyUSB0命令可以打开串口监视器,实时查看串口输出数据,相当于IDE中的串口监视器功能,搜索库时,使用arduino-cli lib search "keyword"可以根据关键词查找库,例如arduino-cli lib search "display"会显示所有与显示相关的库,当遇到编译或上传错误时,arduino-cli会提供详细的错误信息,结合arduino-cli debug命令可以进一步分析问题,例如查看板卡信息或配置详情。

以下是一些常用命令的总结表格:
| 功能分类 | 命令示例 | 说明 |
|---|---|---|
| 初始化与配置 | arduino-cli config init |
初始化配置文件 |
arduino-cli config set board_manager.additional_urls "URL" |
设置额外管理URL | |
| 核心包管理 | arduino-cli core update-index |
更新核心包索引 |
arduino-cli core install arduino:avr |
安装Arduino AVR核心包 | |
arduino-cli core list |
列出已安装的核心包 | |
| 库管理 | arduino-cli lib install DHT_sensor_library |
安装DHT传感器库 |
arduino-cli lib update-index |
更新库索引 | |
arduino-cli lib list |
列出已安装的库 | |
| 编译与上传 | arduino-cli compile --fqbn arduino:avr:uno sketch |
编译sketch.ino |
arduino-cli upload -p /dev/ttyUSB0 --fqbn arduino:avr:uno sketch |
上传代码到指定端口 | |
| 串口监视 | arduino-cli monitor -p /dev/ttyUSB0 |
打开串口监视器 |
| 搜索与调试 | arduino-cli lib search "temperature" |
搜索温度相关库 |
arduino-cli board list |
列出连接的板卡 |
通过arduino-cli,开发者可以实现脚本化的Arduino开发流程,例如在CI/CD系统中自动编译和上传代码,或者批量管理多个Arduino板卡,虽然命令行工具需要一定的学习成本,但一旦熟练掌握,它将显著提升开发效率,尤其适合专业开发者和复杂项目需求。
相关问答FAQs
Q1: 如何解决arduino-cli upload时提示“permission denied”错误?
A1: 该错误通常是因为当前用户对串口设备没有读写权限,在Linux/macOS上,可以通过将用户加入dialout组解决(sudo usermod -a -G dialout $USER,然后重启系统);或使用sudo chmod a+rw /dev/ttyUSB0临时修改权限,在Windows上,可能需要安装USB驱动程序或以管理员身份运行终端。
Q2: arduino-cli compile时提示“missing dependencies”,如何处理?
A2: 此错误表示代码依赖的库或核心包未安装,可通过arduino-cli lib install libraryname安装缺失的库,或使用arduino-cli core install packagename:architecture安装对应核心包,若不确定依赖项,可先在Arduino IDE中打开项目,IDE会自动提示并安装依赖,再通过命令行编译。

