arduino-cli是一款一体化解决方案,可提供构建器,电路板/库管理器,上传器,发现以及使用任何Arduino兼容板和平台所需的许多其他工具。
arduino-cli
此软件目前处于alpha状态:将添加新功能,某些功能可能会更改。
它将很快用作Arduino IDE和Arduino Create中的构建块。
这是尚未提供的,直到第一个稳定版本发布。
请注意这些是预览版,可能有错误,某些功能可能无法正常更新,如有更改,恕不另行通知,最新预览版本为0.3.6-alpha.preview:
0.3.6-alpha.preview
下载后,将可执行文件放入PATH环境变量中的目录中。要使用下面的入门指南(arduino-cli)中介绍的工具,您应该将可执行文件从 arduino-cli-X.Y.Z-alpha.preview-XYZ 重命名为 arduino-cli 。
PATH
go get -u github.com/arduino/arduino-cli
$GOPATH/bin/arduino-cli
您可能希望将可执行文件复制到PATH环境变量(例如/usr/local/bin/)中的目录中。
/usr/local/bin/
Arduino CLI的目标是将其包含在Makefile中或用于命令行的任何类型的脚本中。 Arduino CLI旨在取代Arduino IDE的大多数功能,而无需图形用户界面。
该命令将在$ HOME / Arduino /
$ arduino-cli sketch new MyFirstSketch Sketch created in: /home/luca/Arduino/MyFirstSketch $ cat /home/luca/Arduino/MyFirstSketch/MyFirstSketch.ino void setup() { } void loop() { }
使用您喜欢的文件编辑器或IDE修改.ino文件:$HOME/Arduino/MyFirstSketch/MyFirstSketch.ino并将文件更改为如下所示:
$HOME/Arduino/MyFirstSketch/MyFirstSketch.ino
void setup() { pinMode(LED_BUILTIN, OUTPUT); } void loop() { digitalWrite(LED_BUILTIN, HIGH); delay(1000); digitalWrite(LED_BUILTIN, LOW); delay(1000); }
如果您正在运行arduino-cli的全新安装,则可能需要运行以下命令来更新平台索引:
$ arduino-cli core update-index Updating index: package_index.json downloaded
现在,只需使用USB电缆将电路板连接到PC即可。在这个例子中,我们将使用MKR1000板。
$ arduino-cli board list FQBN Port ID Board Name /dev/ttyACM0 2341:804E unknown
已经发现了该板但我们还没有正确的核心来编程它。我们安装吧!
我们必须查看core search命令提供的核心。它将提供与名称arduino
core search
$ arduino-cli core search arduino Searching for platforms matching _arduino_ ID Version Installed Name Intel:arc32 2.0.2 No Intel Curie Boards arduino:avr 1.6.21 No Arduino AVR Boards arduino:nrf52 1.0.2 No Arduino nRF52 Boards arduino:sam 1.6.11 No Arduino SAM Boards (32-bits ARM Cortex-M3) arduino:samd 1.6.18 No Arduino SAMD Boards (32-bits ARM Cortex-M0+) arduino:stm32f4 1.0.1 No Arduino STM32F4 Boards littleBits:avr 1.0.0 No littleBits Arduino AVR Modules
如果您不确定,可以尝试使用电路板名称
$ arduino-cli core search mkr1000 Searching for platforms matching _mkr1000_ ID Version Installed Name arduino:samd 1.6.19 No Arduino SAMD Boards (32-bits ARM Cortex-M0+)
所以,Arduino MKR1000的合适平台是arduino:samd,现在我们可以安装它
$ arduino-cli core install arduino:samd Downloading tools... arduino:arm-none-eabi-gcc@4.8.3-2014q1 downloaded arduino:bossac@1.7.0 downloaded arduino:openocd@0.9.0-arduino6-static downloaded arduino:CMSIS@4.5.0 downloaded arduino:CMSIS-Atmel@1.1.0 downloaded arduino:arduinoOTA@1.2.0 downloaded Downloading cores... arduino:samd@1.6.19 downloaded Installing tools... Installing platforms... Results: arduino:samd@1.6.19 - Installed arduino:arm-none-eabi-gcc@4.8.3-2014q1 - Installed arduino:bossac@1.7.0 - Installed arduino:openocd@0.9.0-arduino6-static - Installed arduino:CMSIS@4.5.0 - Installed arduino:CMSIS-Atmel@1.1.0 - Installed arduino:arduinoOTA@1.2.0 - Installed
现在验证我们是否已通过运行
$ arduino-cli core list ID Installed Latest Name arduino:samd 1.6.19 1.6.19 Arduino SAMD Boards (32-bits ARM Cortex-M0+)
我们终于可以检查电路板现在是否被识别为MKR1000
$ arduino-cli board list FQBN Port ID Board Name arduino:samd:mkr1000 /dev/ttyACM0 2341:804E Arduino/Genuino MKR1000
如果由于任何原因未检测到该板,您可以列出所有支持的板arduino-cli board listall并搜索特定板:
arduino-cli board listall
$ arduino-cli board listall mkr Board Name FQBN Arduino MKR FOX 1200 arduino:samd:mkrfox1200 Arduino MKR GSM 1400 arduino:samd:mkrgsm1400 Arduino MKR WAN 1300 arduino:samd:mkrwan1300 Arduino MKR WiFi 1010 arduino:samd:mkrwifi1010 Arduino MKRZERO arduino:samd:mkrzero Arduino/Genuino MKR1000 arduino:samd:mkr1000
太棒了!现在我们有董事会FQBN(完全合格的董事会名称)arduino:samd:mkr1000和董事会名称看起来不错,我们准备编译并上传草图
arduino:samd:mkr1000
要添加第三方核心软件包,请将附加软件包的链接添加到文件arduino-cli.yaml
arduino-cli.yaml
如果要添加ESP8266内核,例如:
board_manager: additional_urls: - http://arduino.esp8266.com/stable/package_esp8266com_index.json
然后运行:
arduino-cli core update-index arduino-cli core install esp8266:esp8266
要编译草图,我们必须使用我们在上一个命令中获得的正确FQBN运行compile命令。
compile
$ arduino-cli compile --fqbn arduino:samd:mkr1000 Arduino/MyFirstSketch Sketch uses 9600 bytes (3%) of program storage space. Maximum is 262144 bytes.
我们最终可以上传草图并看到我们的电路板闪烁,我们现在必须指定除了FQBN之外我们的电路板使用的串口:
$ arduino-cli upload -p /dev/ttyACM0 --fqbn arduino:samd:mkr1000 Arduino/MyFirstSketch No new serial port detected. Atmel SMART device 0x10010005 found Device : ATSAMD21G18A Chip ID : 10010005 Version : v2.0 [Arduino:XYZ] Dec 20 2016 15:36:43 Address : 8192 Pages : 3968 Page Size : 64 bytes Total Size : 248KB Planes : 1 Lock Regions : 16 Locked : none Security : false Boot Flash : true BOD : true BOR : true Arduino : FAST_CHIP_ERASE Arduino : FAST_MULTI_PAGE_WRITE Arduino : CAN_CHECKSUM_MEMORY_BUFFER Erase flash done in 0.784 seconds Write 9856 bytes to flash (154 pages) [==============================] 100% (154/154 pages) done in 0.069 seconds Verify 9856 bytes of flash with checksum. Verify successful done in 0.009 seconds CPU reset.
现在我们可以尝试在草图中添加一个有用的库。我们可以先看一下图书馆的名字,我们最喜欢的是wifi101,这里有获取更多信息的命令
$ arduino-cli lib search wifi101 Name: "WiFi101OTA" Author: Arduino Maintainer: Arduino <info@arduino.cc> Sentence: Update sketches to your board over WiFi Paragraph: Requires an SD card and SAMD board Website: http://www.arduino.cc/en/Reference/WiFi101OTA Category: Other Architecture: samd Types: Arduino Versions: [1.0.2, 1.0.0, 1.0.1] Name: "WiFi101" Author: Arduino Maintainer: Arduino <info@arduino.cc> Sentence: Network driver for ATMEL WINC1500 module (used on Arduino/Genuino Wifi Shield 101 and MKR1000 boards) Paragraph: This library implements a network driver for devices based on the ATMEL WINC1500 wifi module Website: http://www.arduino.cc/en/Reference/WiFi101 Category: Communication Architecture: * Types: Arduino Versions: [0.5.0, 0.6.0, 0.10.0, 0.11.0, 0.11.1, 0.11.2, 0.12.0, 0.15.2, 0.8.0, 0.9.0, 0.12.1, 0.14.1, 0.14.4, 0.14.5, 0.15.1, 0.7.0, 0.14.0, 0.14.2, 0.14.3, 0.9.1, 0.13.0, 0.15.0, 0.5.1]
我们现在准备安装它!请务必使用“名称:”中指定的lib的全名。之前见过的部分
$ arduino-cli lib install "WiFi101" Downloading libraries... WiFi101@0.15.2 downloaded Installed WiFi101@0.15.2
arduino-cli是一个命令容器,只需运行完整列表即可:
$ arduino-cli Arduino Command Line Interface (arduino-cli). Usage: arduino-cli [command] Examples: arduino <command> [flags...] Available Commands: board Arduino board commands. compile Compiles Arduino sketches. config Arduino Configuration Commands. core Arduino Core operations. help Help about any command lib Arduino commands about libraries. sketch Arduino CLI Sketch Commands. upload Upload Arduino sketches. version Shows version number of Arduino CLI. ....
每个命令都有自己的特定帮助,可以使用help命令获取,例如:
help
$ arduino-cli help core Arduino Core operations. Usage: arduino-cli core [command] Examples: arduino-cli core update-index # to update the package index file. Available Commands: download Downloads one or more cores and corresponding tool dependencies. install Installs one or more cores and corresponding tool dependencies. list Shows the list of installed cores. update-index Updates the index of cores. Flags: -h, --help help for core Global Flags: --config-file string The custom config file (if not specified the default one will be used). (example "/home/user/.config/arduino/arduino-cli/arduino-cli.yaml") --debug Enables debug output (super verbose, used to debug the CLI). --format string The output format, can be [text|json]. (default "text") Use "arduino-cli core [command] --help" for more information about a command.
arduino-cli board list
因为:
arduino:avr
arduino:avr:uno
arduino:avr:mega
arduino:avr:nano
arduino:avr:nano:cpu=atmega328old
请参阅:https://github.com/arduino/arduino-cli#step-4-find-and-install-the-right-core