😎

WSL2上にArduino開発環境を作る〜vscode編〜

2022/02/05に公開

これは何?

WSL2からArduinoが触れることがわかったので、vscodeでの開発環境を整備した話

ArduinoIDEインストール

X環境を入れておく

WSLg or X環境構築→私の場合はこちら

ここからArduinoの
https://www.arduino.cc/en/software
Linux64bit版をダウンロード。

arduino-1.8.19-linux64.tar.xz

を適当な場所に配置して、展開。

私の場合、/opt/ に配置、展開。

❯ sudo tar Jvfz arduino-1.8.19-linux64.tar.xz
❯ cd /opt/arduino-1.8.19
❯ sudo sh install.sh
[sudo] password for axt:
Adding desktop shortcut and menu item for Arduino IDE...

 done!

vscodeの拡張をインストール

microsoftのArduino拡張を導入

Microsoft C/C++ ExtensionのInclude pathを追加する

さきほどインストールしたディレクトリ配下の下記を追加

/opt/arduino-1.8.19/libraries/**
/opt/arduino-1.8.19/hardware/**
/opt/arduino-1.8.19/hardware/arduino/avr/cores/arduino

※↑あまりこれでいいかよくわからない

追加すると、.vscodeに下記が作成された

c_cpp_properties.json

{
    "configurations": [
        {
            "name": "Linux",
            "includePath": [
                "${workspaceFolder}/**",
                "/opt/arduino-1.8.19/libraries/**",
                "/opt/arduino-1.8.19/hardware/**",
		"/opt/arduino-1.8.19/hardware/arduino/avr/cores/arduino"
            ],
            "defines": [],
            "compilerPath": "/usr/bin/gcc",
            "cStandard": "gnu17",
            "cppStandard": "gnu++14",
            "intelliSenseMode": "linux-gcc-x64"
        }
    ],
    "version": 4
}

効いてそう

Serialにインテリセンス効かなかった↓下記で解決

            "defines": [
                "USBCON"
            ]

https://github.com/microsoft/vscode-arduino/issues/808

sketchを書き込んでみる

usbipd-winでWSL2にCOMポートをアタッチしておく必要があります。

#include <Arduino.h>
#include <Wire.h>
#include <SoftwareSerial.h>

void setup()
{
    pinMode(13, OUTPUT);
}

void loop()
{
    digitalWrite(13, HIGH);
    delay(1000);
    digitalWrite(13, LOW);
    delay(1000);
}

vscodeの下にあるバーをBoard Type=Arduino Uno、Serial Port=/dev/ttyACM0を指定する

vscode上部のこちらで、書き込み

下記エラーが発生

avrdude: ser_open(): can't open device "/dev/ttyACM0": Permission denied

以下の状態の模様

❯ ls -al /dev/ttyACM0
crw------- 1 root root 166, 0 Feb  5 01:32 /dev/ttyACM0
❯ sudo chmod a+rw /dev/ttyACM0

権限を付与するとうまくいった!

[Starting] Uploading sketch 'l.ino'
[Warning] Output path is not specified. Unable to reuse previously compiled files. Build will be slower. See README.
Loading configuration...
Initializing packages...
Preparing boards...
Verifying...
Sketch uses 2812 bytes (8%) of program storage space. Maximum is 32256 bytes.
Global variables use 299 bytes (14%) of dynamic memory, leaving 1749 bytes for local variables. Maximum is 2048 bytes.
Uploading...
IntelliSense configuration already up to date. To manually rebuild your IntelliSense configuration run "Ctrl+Alt+I"
[Done] Uploading sketch 'l.ino'

Discussion