ArduinoチームがつくってるCLIのArduino
$ cd
$ mkdir bin
$ echo 'export PATH="$HOME/bin:$PATH"' >> .bashrc
$ exec $SHELL
$ curl -fsSL https://raw.githubusercontent.com/arduino/arduino-cli/master/install.sh | sh
$HOME/bin/arduino-cli が導入される
$ arduino-cli core update-index
$ arduino-cli board list
Port Type Board Name FQBN Core
/dev/ttyACM0 Serial Port (USB) Arduino/Genuino Uno arduino:avr:uno arduino:avr
登録のあるハードウェアがあればリストにでてくる。FTDIなどのUSB-Serial変換チップをつかったものはUnknownとなる
このリストから、接続されているのはArduino Unoで、Coreはarduino:avrであることがわかる。
$ arduino-cli core install arduino:avr
$ arduino-cli sketch new MyFirstSketch
$ cat MyFirstSketch/MyFirstSketch.ino
$ cat > MyFirstSketch/MyFirstSketch.ino << 'EOS'
void setup() {
pinMode(13, OUTPUT);
}
void loop() {
digitalWrite(13, HIGH);
delay(1000);
digitalWrite(13, LOW);
delay(1000);
}
EOS
$ arduino-cli compile --fqbn arduino:avr:uno MyFirstSketch
$ arduino-cli upload -p /dev/ttyACM0 --fqbn arduino:avr:uno MyFirstSketch
- makeとjqが必要。スケッチディレクトリにコピーして使用する。
- FQBNをボードに合わせて変更する
- 1つのホストに1つのArduinoデバイス限定(FQBNをキーにして探すため)
Makefile
FQBN := arduino:avr:uno
PORT := $(shell arduino-cli board list --format json | jq -r '.[] | select(.boards[]?.FQBN=="$(FQBN)") | .address')
SKETCH := $(notdir $(basename $(CURDIR)))
upload: compile
cd .. && arduino-cli upload -p $(PORT) --fqbn $(FQBN) $(SKETCH)
compile:
cd .. && arduino-cli compile --fqbn $(FQBN) $(SKETCH)