Arduino公式文書の翻訳

 

この文書のオリジナルはVisual Studio Code extension for ArduinoにあるREADME.mdです。

Arduino 用の Visual Studio Code 拡張機能

Arduino 用の Visual Studio Code 拡張機能 プレビュー へようこそ。Arduino 拡張機能を使用すると、豊富な機能セットを備えた Visual Studio Code での Arduino スケッチの開発、構築、展開が簡単になります。これらには次のものが含まれます。

  • ArduinoスケッチのIntelliSenseと構文ハイライト
  • Visual Studio Codeでスケッチを検証してアップロードする
  • 組み込みのボードおよびライブラリマネージャー
  • 組み込みのサンプルリスト
  • 内蔵シリアルモニター
  • スケッチのスニペット
  • 自動なArduinoプロジェクトscaffoldの作成
  • コマンドパレット (F1) に頻繁に使用されるコマンド(検証、アップロードなど)の統合

前提条件

従来のArduino IDEまたはArduino CLIが必要です。 推奨されるアプローチは、拡張機能にバンドルされている、そのまま使用できるバージョンのArduino CLIを使用することです。 従来の Arduino IDE のサポートは、拡張機能の将来のバージョンでは削除される予定です。

Arduino CLI

Arduino CLI のバンドル バージョンを使用するには、arduino.useArduinoClitrueにし、arduino.patharduino.commandPathを空にするか未設定にする必要があります。 Arduino IDEのサポートが廃止されるまでは、arduino.useArduinoCliのデフォルトはfalseですが、拡張機能が最初にアクティブ化されると、Arduino CLIに切り替えるように求めるプロンプトが表示されます。

Arduino CLI のカスタムバージョンを使用したい場合は、リポジトリのリリースページからダウンロードできます。カスタムバージョンの場合、arduino.pathは Arduino CLI 実行可能ファイルを含むディレクトリに設定する必要があります。

レガシーArduino IDE

従来の Arduino IDE の使用は推奨されません。 また、従来のArduino IDEのサポートは、拡張機能の将来のバージョンでは削除される予定です。 従来の Arduino IDE は、Arduinoのダウンロードページからインストールできます。

  • サポートされている従来のArduino IDEバージョンは 1.6.x以降ですが、2.0.0は含まれません。
  • WindowsストアのArduino IDEのバージョンは、アプリケーションが実行されるのがサンドボックス環境のためにサポートされません。
  • 注意: Arduino IDE 1.8.7には重大な変更がいくつかあり、ボードパッケージとライブラリのインストールが失敗する原因となっていました。 これらの障害は1.8.8以降で修正されました。
  • 注意: Arduino IDE 2.X.Yはサポートされておらず、今後もサポートされる予定はありません(issue 1477)。

インストール

VS Code を開き、F1 またはCtrl + Shift + PまたはCmd + Shift + Pを押してコマンドパレットを開き、拡張機能のインストールを選択してvscode-arduinoと入力します。

または、VS Code Quick Open(Ctrl + PまたはCmd + P)を起動し、次のコマンドを貼り付けて Enter キーを押します。

ext install vscode-arduino

Arduinoを検索して、Visual Studio Code内のマーケットプレイスから直接インストールすることもできます。

始めましょう

サポートされているデバイスを接続するたびに、コードサンプルとチュートリアルを見つけることができます。 あるいは、IoT開発者ブログスペースまたは入門チュートリアルにアクセスすることもできます。

コマンド

この拡張機能は、*.ino ファイルを操作する時にコマンドパレットにいくつかのコマンドを提供します(F1 または Ctrl + Shift + P または <kbd) >Cmd + Shift + P):

  • Arduino: Board Manager: ボードのパッケージを管理します。 ボードマネージャーで「追加のボードマネージャー URL」を設定することで、サードパーティのArduinoボードの追加もできます。
  • Arduino: Change Board Type: ボードの種類またはプラットフォームを変更します。
  • Arduino: Change Timestamp Format: シリアルモニター出力の各行の前に出力されるタイムスタンプの形式を変更します。
  • Arduino: Close Serial Monitor: シリアルモニタを停止し、シリアルポートを解放します。
  • Arduino: Examples: 例の一覧を表示します。
  • Arduino: Initialize: Arduino スケッチのVS Code プロジェクトの足場(scaffold)を作ります。
  • Arduino: Library Manager: ライブラリの探索および管理をします。
  • Arduino: Open Serial Monitor: 統合出力ウィンドウでシリアルモニターを開きます。
  • Arduino: Select Serial Port: 現用のシリアルポートを変更します。
  • Arduino: Upload: スケッチをbuildし、Arduinoボードにアップロードします。
  • Arduino: CLI Upload: スケッチをビルドせずにコンパイル済みコードをアップロードします(CLI のみ)。
  • Arduino: Upload Using Programmer: 外部プログラマを使用してアップロードします。
  • Arduino: CLI Upload Using Programmer: スケッチをbuildせずに外部プログラマを使用してアップロードします (CLI のみ)。
  • Arduino: Verify: スケッチをbuildします。
  • Arduino: Rebuild IntelliSense Configuration: IntelliSense 構成の強制/手動再構築。 この拡張機能は Arduino のビルド出力を分析し、それに応じて IntelliSense インクルード パス、定義、コンパイラ引数を設定します。

キーバインド

  • Arduino: Upload Alt + Cmd + U or Alt + Ctrl + U
  • Arduino: Verify Alt + Cmd + R or Alt + Ctrl + R
  • Arduino: Rebuild IntelliSense Configuration Alt + Cmd + I or Alt + Ctrl + I

オプション

オプション 説明
arduino.useArduinoCli Arduino CLI(true)を使用するか、従来の Arduino IDE(false)を使用するか – デフォルトはfalseです。trueを使用する場合は、arduino.patharduino.commandPathの値を未設定のままにしてバンドルされたバージョンのArduino CLIを使用するか、それらの値を Arduino CLIのカスタムバージョンに指定します。拡張機能の将来のバージョンでは、このデフォルトがtrueに変更され、従来の Arduino IDEのサポートが削除されることに注意してください。
arduino.path Arduino インストールへのパス。 この設定を変更してフルパスを含めることで、Arduinoのカスタムバージョンを使用できます。 例: Windows の場合はC:\\Program Files\\Arduino、Mac の場合は/Applications、Linux の場合は/home/<username>/Downloads/arduino-1.8.1です。(変更後は再起動が必要です)。 デフォルト値は、従来の Arduino IDEインストールパスから自動的に検出されます。 Arduino CLIを使用するには、arduino-cli 実行可能ファイルを含むパス(例: /usr/local/bin)を使用するか、バンドルされたバージョンのArduino CLIを使用するために未設定のままにしておきます。
arduino.commandPath arduino.pathを基準とした実行可能ファイル(またはスクリプト)へのパス。 デフォルト値は、Windows の場合は arduino_debug.exe、Mac の場合は Contents/MacOS/Arduino、Linux の場合は arduino です。この設定を変更することで、カスタム起動スクリプトを使用して Arduinoを実行することもできます(変更後は再起動が必要)。 例: Windows の場合は run-arduino.bat、Mac の場合は Contents/MacOS/run-arduino.sh、Linux の場合は bin/run-arduino.sh。 Arduino CLI のバンドル バージョンを使用するには、このオプションを未設定のままにしておきます。 Arduino CLI のカスタムバージョンを使用するには、arduino-cliを使用します。
arduino.AdditionalUrls 文字列配列としてのサードパーティパッケージの追加のボードマネージャーURL。デフォルト値は空です。
arduino.logLevel CLI 出力ログレベル。infoまたはverboseである可能があります。デフォルト値は"info"です。
arduino.clearOutputOnBuild アップロードまたは検証する前に、出力ログをクリアします。デフォルト値はfalseです。
arduino.allowPDEFiletype VSCode Arduino拡張機能でArduinoの1.0.0より前のバージョンの .pdeファイルを開くことができるようにします。これにより、処理コードが壊れることに注意してください。 デフォルト値はfalseです。
arduino.enableUSBDetection VSCode Arduino拡張機能からのUSB検出を有効/無効にします。デフォルト値はtrueです。デバイスがコンピュータに接続されると、 "Detected board ****, Would you like to switch to this board type"というメッセージがポップアップ表示されます。 Yesボタンをクリックすると、USBデバイスがどのシリアルポート(COM)に接続されているかが自動的に検出されます。お使いのデバイスがこの機能をサポートしていない場合は、デバイスの PID/VID を提供してください。コード形式は misc/usbmapping.json で定義されています。vid/pid を一覧表示する方法の詳細については、次のツールを使用してください:
https://github.com/EmergingTechnologyAdvisors/node-serialport
npm install -gserialport
serialport-list -f jsonline
arduino.disableTestingOpen オープンステータスをチェックするためのシリアルポートへのテストメッセージの自動送信を有効/無効にします。 デフォルト値はfalseです(テストメッセージが送信されます)。
arduino.skipHeaderProvider ヘッダーの補完項目を提供する拡張機能を有効または無効にします。 この機能は、C++ 拡張機能の新しいバージョンに含まれています。デフォルト値はfalseです。
arduino.disableIntelliSenseAutoGen trueの場合、vscode-arduinoはArduinoのコンパイラー出力を分析して IntelliSense構成(つまり、 .vscode/c_cpp_properties.json)を自動生成しません。
arduino.analyzeOnOpen trueの場合、プロジェクトを開いたときに自動的に分析が実行されます。 arduino.analyzeOnSettingChangetrueの場合にのみ機能します。
arduino.analyzeOnSettingChange trueの場合、ボード、構成、またはスケッチ設定が変更されたときに自動的に解析が実行されます。

Arduino拡張機能では、次のVisual Studio Code設定を使用できます。 これらは、グローバル ユーザー設定 Ctrl + または Cmd + またはワークスペース設定(.vscode/settings.json)。後者は前者を上書きします。

{
    "arduino.useArduinoCli": true,
    "arduino.logLevel": "info",
    "arduino.allowPDEFiletype": false,
    "arduino.enableUSBDetection": true,
    "arduino.disableTestingOpen": false,
    "arduino.skipHeaderProvider": false,
    "arduino.additionalUrls": [
        "https://raw.githubusercontent.com/VSChina/azureiotdevkit_tools/master/package_azureboard_index.json",
        "http://arduino.esp8266.com/stable/package_esp8266com_index.json"
    ],
}

スケッチの設定

以下の設定は、Arduino拡張機能のスケッチ設定によるものです。 ワークスペースの下の.vscode/arduino.jsonにあります。

{
    "sketch": "example.ino",
    "port": "COM5",
    "board": "adafruit:samd:adafruit_feather_m0",
    "output": "../build",
    "prebuild": "./prebuild.sh",
    "postbuild": "./postbuild.sh",
    "intelliSenseGen": "global"
}
  • sketch - Arduino のメインスケッチファイル名。
  • port - デバイスに接続されているシリアルポートの名前。Arduino: Select Serial Portコマンドで設定できます。Mac ユーザーの場合は、"/dev/cu.wchusbserial1420"になります。
  • board - 現在選択されている Arduinoボードのエイリアス。 Arduino: Change Board Typeコマンドで設定できます。 また、ボードリストもそこにあります。
  • output - Arduinoビルドの出力パス。設定しない場合、Arduinoは毎回新しい一時出力フォルダーを作成します。これは、以前のビルドの中間結果を再利用できないことを意味し、検証/アップロードに時間がかかることになるため、このフィールドを設定することをお勧めします。Arduinoでは、出力パスをワークスペース自体またはワークスペースのサブフォルダーにしないことが必要です。そうしないと、正しく動作しない可能性があります。 デフォルトでは、このオプションは設定されていません。 このファイルの内容はビルドプロセス中に削除される可能性があることに注意してください。そのため、保持したいファイルを保存しないディレクトリを選択(または作成)してください。
  • prebuild - スケッチのビルド (検証、アップロードなど) の前に呼び出される外部コマンド。 詳細については、ビルド前およびビルド後のコマンド セクションを参照してください。
  • postbuild - スケッチが正常に構築された後に実行される外部コマンド。詳細については、前述のセクションを参照してください。
  • intelliSenseGen - IntelliSense構成の自動生成のグローバル設定(つまり、.vscode/c_cpp_properties.json) をオーバーライドします。次の3つのオプションが利用可能です。
    • "global": グローバル設定を使用します (デフォルト)
    • "disable": グローバルに有効になっている場合でも自動生成を無効にします
    • "enable": グローバルに無効になっている場合でも自動生成を有効にします
  • buildPreferences - ビルド(検証、アップロードなど)中に使用される Arduinoの環境設定を設定します。これにより、追加の定義、コンパイラ オプション、またはインクルードが可能になります。優先キーと値のペアは次のように設定する必要があります。
    "buildPreferences": [
        ["build.extra_flags", "-DMY_DEFINE=666 -DANOTHER_DEFINE=3.14 -Wall"],
        ["compiler.cpp.extra_flags", "-DYET_ANOTER=\"hello\""]
    ]

既知の制限事項/制約事項

  • .ino スケッチに含めるヘッダーファイルはサブディレクトリに存在する必要があります(たとえば、ヘッダーをfoo/foo.hに配置してから#include foo/foo.h を使用します)。このサブディレクトリがないと(例: #include "foo.h" を使用して.inoファイル同じディレクトリにあるfoo.hをインクルードする等)、コンパイル ステップは失敗します。 (issue 1389)

ビルド前およびビルド後のコマンド

Windows ではコマンドはcmd内で実行され、LinuxおよびOSXではbashインスタンス内で実行されます。 したがって、コマンドは、これらのシェル内で実行できるものであれば何でも構いません。 コマンドを実行する代わりに、スクリプトを呼び出すことができます。 これにより、より複雑なビルド前/ビルド後のメカニズムの作成がはるかに簡単になり、Python やその他のスクリプト言語を実行できる可能性が広がります。 コマンドはワークスペースのルート ディレクトリ内で実行され、vscode-arduino は次の環境変数を設定します。

VSCA_BUILD_MODE 現在のビルド モード。VerifyingUploadingUploading (programmer)、または Analyzing のいずれか。これにより、特定のビルドモードでのみスクリプトを実行できるようになります。 VSCA_SKETCH ワークスペースのルートディレクトリを起点とした相対的なスケッチファイル。 VSCA_BOARD ボードと構成(例: arduino:avr:nano:cpu=atmega328)。 VSCA_WORKSPACE_DIR ワークスペースのルートディレクトリの絶対パス。 VSCA_LOG_LEVEL 現在のログレベル。これにより、スクリプトの冗長性を制御できます。 VSCA_SERIAL アップロードに使用されるシリアルポート。arduino.json で設定していない場合は設定されません。 VSCA_BUILD_DIR ビルドディレクトリ。arduino.json で設定していない場合は設定されません。

たとえば、Windowsでは次の arduino.json の設定であれば、

{
    "board": "arduino:avr:nano",
    "sketch": "test.ino",
    "configuration": "cpu=atmega328",
    "prebuild": "IF \"%VSCA_BUILD_MODE%\"==\"Verifying\" (echo VSCA_BUILD_MODE=%VSCA_BUILD_MODE% && echo VSCA_BOARD=%VSCA_BOARD%)"
}

verifyのとき以下のように処理されます。

[Starting] Verifying sketch 'test.ino'
Running pre-build command: "IF "%VSCA_BUILD_MODE%"=="Verifying" (echo VSCA_BUILD_MODE=%VSCA_BUILD_MODE% && echo VSCA_BOARD=%VSCA_BOARD%)"
VSCA_BUILD_MODE=Verifying
VSCA_BOARD=arduino:avr:nano:cpu=atmega328
Loading configuration...
<...>

インテリセンス

vscode-arduino は、デフォルトで IntelliSenseを自動構成します。vscode-arduino は、別のビルドを実行して Arduinoのコンパイラー出力を分析し、対応する構成ファイル.vscode/c_cpp_properties.jsonを生成します。vscode-arduinoは、可能な限り最新の状態に保とうとします。 たとえば、ボードまたはスケッチを切り替えるときに解析を実行します。

ただし、分析を繰り返し実行することは意味がありません。したがって、ワークスペースで問題(波線)が報告された場合(たとえば、新しいライブラリから新しいインクルードを追加した後)、分析を手動で実行します。

手動再構築: Arduino: Rebuild IntelliSense Configuration、 キーバインド: Alt + Cmd + I または Alt + Ctrl + I

分析を手動で呼び出す場合、グローバルおよびプロジェクト固有の無効化は無視されます。

IntelliSense 構成

vscode-arduino の分析は、結果をArduinoという名前の専用のIntelliSense構成として保存します。次に示すように、ソースファイルのいずれかにいるときに、ステータスバーの右端からそれを選択する必要があります。

このシステムを使用すると、vscode-arduinoを通じて提供される自動生成された構成と並行して、独自のIntelliSense構成をセットアップして使用することができます。設定をc_cpp_properties.jsonに追加し、デフォルトの設定 (Arduino) とは異なる名前(たとえば、Myweweweweconfiguration) を付けて、ステータスバーまたはコマンドパレットコマンドにある C/C++: Select a Configuration… を選択して下さい。

Change Log

各バージョンの変更点の詳細については、Change Logを参照してください。

サポートされているオペレーティング システム

現在、この拡張機能は次のオペレーティング システムをサポートしています。

  • Windows 7以降(32ビットおよび64ビット)
  • macOS 10.10以降
  • Ubuntu 16.04
    • 他のユーザーによって報告されているように、この拡張機能は他のLinux ディストリビューションでも動作する可能性がありますが、保証はありません。

サポート

問題の完全なリストは、Issue Tracker で見つけることができます。バグまたは機能の提案を送信したり、コミュニティ主導の ディスカッション に参加したりできます。

開発

インストールの前提条件:

実行して開発するには、次の手順を実行します。

  • git clone https://github.com/microsoft/vscode-arduino
  • cd vscode-arduino
  • npm iを実行します。
  • npm i -g gulpを実行します。
  • Visual Studio Codeで(code .)として開きます。
  • F5 を押してデバッグします。

テストするには、"Launch Tests"デバッグ構成を使用して VS Code で F5 を押します。

行動規範

このプロジェクトは Microsoft オープンソース行動規範 を採用しています。詳細については、行動規範 FAQ を参照するか、追加の質問やコメントがあれば opencode@microsoft.com までお問い合わせください。

プライバシーに関する声明

Microsoft エンタープライズおよび開発者のプライバシーに関する声明には、このソフトウェアのプライバシーに関する声明が記載されています。

ライセンス

この拡張機能は、MIT ライセンス に基づいてライセンスされています。追加の著作権表示および条件については、[サードパーティ通知](https://github.com/Microsoft/vscode-arduino/blob/main/ThirdParty Notices.txt) ファイルを参照してください。

お問い合わせ

VS Code を使用した最高のArduinoエクスペリエンスの構築を支援したい場合は、gitterチャットルームまで直接ご連絡ください。