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

組み込みエンジニア

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

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

VSCodeの準備

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

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

以下はVSCodeがインストールされていることを前提とします。MinGWのインストールはVSCode上でArduino環境以外でコンパイルする場合に必要になることがありますが、拡張機能でArduino環境を追加する場合は特に必要ありません。

拡張機能でArduinoを追加する

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

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

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

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

新規ファイルを追加

後述の既存のArduinoファイルを置き換える方法をお勧めしますが、以下方法でArduino IDEを使用せずに開発環境を作ることができます。

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

VSCodeを起動しファイル欄から新規ファイルを選択してファイルを作成します。ファイルを作成しただけではArudinoファイルとして認識しないため名前を付けて保存を選択し拡張子を「.txt」から「. ino」に変更して保存します。保存先はあらかじめ準備していた「test」フォルダの直下にしています。例ではWorkSpace/Arduino/test内にtest.inoを保存しています。

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

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

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

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

<Select Board Type>にはArduino Unoを選択し、<Select Serial Port>にはArduino Unoのポート番号として認識しているCOM番号を選択します。<Select Programmer>は特に指定しなくても問題ありません。

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

ボードタイプ(Select Board Type)やCOMポート(Select Serial Port)を選択するとtestフォルダー内に「.vscodeフォルダ」が作成され「arduino.jsonファイル」が作成されます。次にArduinoライブラリやコンパイルのための設定ファイルを追加します。

Arduino: Verify(VSCodeの右上のリストのマーク)をクリックするとVerifyを行い「c_cpp_properties.jsonファイル」が作成されます。「c_cpp_properties.jsonファイル」はArduinoファイルをインクルードパスの設定やコンパイルに関する情報を設定しているファイルです。

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

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

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

エクスプローラー欄にARDUINO EXAMPLESがあるので、スケッチ例が参考にしながらコーディングすることができます。

既存のArduinoファイルを置き換える場合(お勧めの方法)

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

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

Arduino IDEで任意のファイル名プロジェクトファイルを作成するとファイル名と同じフォルダが生成されるためVsCodeでフォルダで開いてSelect Board Typeを選択することで開発環境が構築できます。

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

バージョン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はソースコード上にエラーがある場合はエラーの通知をします。

シリアルモニタでの確認

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

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

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

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

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

VSCodeのシリアルモニタは反応が遅く表示が遅れることがあります。シリアルモニタで動作確認する場合はArduino IDEを使用することをお勧めします。私はコーディングはVSCodeで行い動作確認をArduino IDEで行うなど使い分けることが多いです。

スポンサーリンク

ソースコード全体

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

#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で学べるソフト開発と標準ライブラリの使い方

テックキャンプ エンジニア転職 無料カウンセリング

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

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