VSCodeを使ったArduinoのソフト開発環境作りの手順

組み込みエンジニア

こんにちは、ENGかぴです。

Arduinoのソフト開発はArduino IDEを使用しますがVSCodeの拡張機能でArduinoを追加するとVSCodeでArduinoのソフト開発ができます。VSCodeにArduino機能を追加する手順をまとめています。対象OSはWindows10とします。

VSCodeの準備

VSCodeのダウンロードやインストールの方法やにC/C++のコンパイラーであるMinGWのインストール方法ついては下記記事を参考にしてください

VSCodeをインストールしてC/C++の開発環境を作る

以下はこれらの2つがインストールされていることを前提とします。

拡張機能でArduinoを追加する

Arduinoの開発環境に対応した拡張機能をインストールします。

拡張機能でArduinoを追加インストールする
拡張機能でArduinoを追加インストールする

VSCodeを起動して横の機能拡張欄をクリックすると拡張するための検索パネルが表示されます。選択肢を絞るために検索欄に「Arduino」を入力します。「Arduino for Visual Studio Code(Microsoft)」を追加インストールします。

参考例はインストール済なのでインストールの表示はされていません。インストールするとVSCodeでArduinoのソフト開発ができるようになります。

アップデートによってシリアルポートが選択できなくなったりと不安定な部分があるのでソースコードのエディットはVSCodeで行いコンパイルや書き込みはArduino IDEで行うことをお勧めします。

Ver1.60ではシリアルポートが選択でき書き込みも可能です。

新規ファイルを追加

新規ファイルを作成する前に作業用のフォルダー(今回の例ではtestフォルダーを作成)を準備します。VSCodeをファイルの編集用に使用するのみであればファイルを開いて作業してもよいのですが、コンパイルやAPIのリンクを使用する場合はフォルダーで開く必要があります。

VSCodeを起動しファイル欄から新規ファイルを選択してファイルを作成します。ファイルを作成しただけではArudinoファイルとして認識しないため名前を付けて保存を選択し拡張子を「.txt」から「.ino」に変更して保存します。

保存先はあらかじめ準備していた「test」フォルダの直下にしています。

Arduinoファイルとして保存
Arduinoファイルとして保存

Arduinoファイルとして保存しますが保存先はC(C++)のコンパイラーとしてインストールしているMinGWで指定している場所にしておく必要があります。

Arduinoファイルとして保存した後はVSCodeでフォルダを開くを選択してファイルを編集していきます。フォルダーを開いていない場合はエクスプローラー上で開いているフォルダーがありませんと通知がされます。

test.inoファイルはtestフォルダ内にあるのでVSCodeのファイル欄からフォルダーを開くを選択して「test」フォルダをクリックして選択して開きます。

testフォルダを開く
testフォルダを開く

フォルダーで開いた後は、VSCodeのエディタの下のステータスバー欄の設定を行います。

<Select Programmer>にはAVRISP mkllを設定し、<Select Board Type>にはArduino Unoを選択し、<Select Serial Port>にはArduino Unoのポート番号として指定してされているCOM番号を選択します。

設定はArduino IDEに合わせるとよいので上記以外に設定している場合はArduino IDEの設定を確認ながらVSCodeの設定に反映するとよいでしょう。

Arduinoの環境設定
Arduinoの環境設定

選択すると自動でVSCodeの設定ファイルとしてtestフォルダー内に.vscodeフォルダーが生成されarduino.jsonが作成されます。次にArduinoライブラリやコンパイルのための設定ファイルを追加します。

バージョンによってはc_cpp_properties.jsonファイルの作成はVerifyを行うと作成されます。ファイルが空であってもでエラーがあってもVerifyを行うことで作成されるためボード設定やprogrammerの設定が完了したらVerifyをするとよいでしょう。

test.ino内にコーディングしていきますが、新規でファイルを作成した場合はArduino IDEのようにsetup()やloop()が準備されていないのでコーディングして関数内に処理を追加していきます。

void setup(){
    //初期化に関する処理を入れる
}

void loop(){
    //メインとして動作させる処理を入れる
}

エディター上にARDUINO EXAMPLESがあり、スケッチ例が参照できるためコピーしながら流用するとよいでしょう。

既存のArduinoファイルを置き換える場合

Arduino IDEで作成したファイルをVSCodeで編集したい場合も対象のArduinoファイルが保管されているフォルダーを開くことでVSCodeでの編集が可能となります。

フォルダーで開いた後の設定は新規ファイルを作成したときの手順と同じです。VSCodeのエディタの下のステータスバー欄の設定を行うことで対象のフォルダー内に.vscodeフォルダにarduino.jsonが作成されます。

ファイルを作成後Verifyを行うとc_cpp_properties.jsonが作成されます。

旧バージョンのバグなど(参考資料)

バージョン1.53.2以前のバグによる対策方法について参考資料として以下に残しています。下記による対策はバージョンアップによって不要となっています。

VSCodeの旧バージョンアップではシリアルポートが選択できないバグが発生していました。ダウングレードするのも手間となるため選択できなくても使用する方法を記しています。

//arduino.jsonにportを追加すると使用することができます。
//例では"port":COM6になっていますが、お使いのポートに合わせて追加してください。
//ポートが不明な場合はArduino IDEで確認してください。
{
    "board": "Seeeduino:samd:seeed_XIAO_m0",
    "configuration": "usbstack=arduino,debug=off",
    "programmer": "AVRISP mkII",
    "port": "COM6", //←この行を追加する。{  }内であればどこでもよい
    "sketch": "Maruti-seeeduino.ino"
}

この方法でポートを追加するとソフトをアップロードできるようになります。

ボードやprogrammer選択すると自動でVSCodeの設定ファイルとしてtestフォルダー内に.vscodeフォルダーが生成されarduino.jsonとc_cpp_properties.jsonが作成されます。自動生成したファイルにおいて初期条件ではワーニングが出ることがあります。

自動で生成されるファイル(ワーニングが出た場合の対策)
自動で生成されるファイル(ワーニングが出た場合の対策)

c_ccp_properties.jsonファイルにおいて一部でワーニングが出ることがあります。初期値はmsvc-x64になっていますが対応しておらずワーニングとなっています。

この指定分はコメントアウトしても動作しますが、compilerPathでMinGw内のgcc.exeを参照しているためgcc-x64を指定するとワーニング表示がでなくなります。

VSCodeでの動作確認

Arduinoの動作確認用のソフトを開発します。VSCodeでソフト開発するメリットはライブラリを実装する際にコマンドのアシスト機能が実装されることです。

ライブラリの実装アシスト機能
ライブラリの実装アシスト機能

例えばSerial.と入力するとSerialライブラリの候補がリストとして表示されるため効率よくソフト開発ができます。pinと入力するとpinMode()などが候補として表示されるためコマンドを忘れてしまってもアシストしてくれるのは良い点です。

検証とマイコンボードに書き込む

Arduino IDEの検証とマイコンボードに書き込むの動作はVSCodeではArduino:VerityとArduino:Uploadと表現されています。

マイコンへの書き込みと検証の説明
マイコンへの書き込みと検証の説明

VSCodeの画面右上にUploadとVerifyができます。Verify横の三角マークは使用しません。VerifyとUploadはソースコード上にエラーがある場合はエラーの通知をします。

UploadとVerifyの動作の最初の方で文字が出ますが、文字化けしてしまうのが残念な点です。今後のアップデートで改善されるかもしれません。

シリアルモニタでの確認

VsCodeでアップロードした場合の動作確認の回路図
VsCodeでアップロードした場合の動作確認の回路図

シリアルモニタで動作確認するためにSWを押すとモニタ上に「di1–ok」を表示します。VSCodeのシリアルモニターを使用する場合は下側のボード選択ツール横の電源プラグのようなマークを選択してボーレートを選択する必要があります。

COMポートを間違えていると表示されないので注意してください。

シリアルモニタでの確認
シリアルモニタでの確認

SWを押したときVSCode上でのシリアルモニタの表示に「di1–ok」が表示されているのでシリアルモニタを使った動作確認環境が再現できています。

ソースコード全体

以下のソースコードはコンパイルして動作確認をしております。チェックはしておりますがコメントなど細かな部分で間違っている可能性があります。参考としてお使いいただければと思います。

#define PIN_DI 7

bool btnflg1;
uint8_t btn1;

void    setup(){

    pinMode(PIN_DI,INPUT_PULLUP);
    Serial.begin(115200);

}

void    loop(){

    btn1 = digitalRead(PIN_DI);

    if(btn1 == 0){
        if(btnflg1){
            btnflg1 = false;
            Serial.println("di1--ok");
        }
    }else{
        btnflg1 = true;
    }
}

関連リンク

VSCodeのダウンロードからインストールまでの手順とC/C++のコンパイラーのダウンロードからインストールまでの手順についてまとめています。

VSCodeをインストールしてC/C++の開発環境を作る

Arduinoのライブラリを使って動作確認を行ったことを下記リンクにまとめています。

Arduinoで学べるマイコンのソフト開発と標準ライブラリの使い方

Seeeduino XIAOで学べるソフト開発と標準ライブラリの使い方

ESP32-WROOM-32Eで学べるソフト開発と標準ライブラリの使い方

TECH::CAMPプログラミング教養【無料体験会】

最後まで、読んでいただきありがとうございました。

タイトルとURLをコピーしました