Arduinoボード とArduino IDEは、最小限のトレーニングを受けた愛好家やビルダーが自宅で電子機器を作成する方法に革命をもたらしました。ただし、特によりフル機能の環境でプログラミングすることに慣れている場合は、最終的にはこのIDEの制限に気付くかもしれません。幸いなことに、PlatformIO拡張機能と組み合わせたVisual Studio Codeエディターなど、他のオプションもあります。
Arduino IDEと同様に、Visual Studio Code (VSC) はWindows、Mac、Linuxで実行でき、無料で使用できます。技術的にはオープンソース ソフトウェアではありませんが、 Code – OSS に基づいて「オープンソース上に構築」されていると主張しています。VSC FAQ でこれがどのように機能するかを調べることができますが、個人的または商業的な目的の両方で使用できることに注意してください。
VSCをArduino (および他の多数の開発ボード) で動作させるには、PlatformIO (PIO) プラグインも必要になります。PIOは「組み込み開発のための新世代エコシステム」を表し、それ自体がオープンソースです。
Arduino IDEのインストール方法
Arduino IDEは使用しませんが、インストールしておく必要があります。まだお持ちでない場合は、Arduinoのソフトウェア ページに移動し、システムに適したパッケージをダウンロードしてください。Windowsユーザーは、Windowsアプリではなく、WindowsインストーラーまたはZipファイルを使用する必要があります。
そこから、次の手順に従います。
- VSCページに移動し、適切なインストーラーをダウンロードしてプログラムを実行します。
- 拡張機能の「ボックス」アイコンをクリックし、「PlatformIO」と入力してそのパッケージを見つけます。
- インストールしてリセットすると、「PlatformIOへようこそ」というメッセージが表示され、ここで「+ 新しいプロジェクト」または「Arduinoプロジェクトのインポート」を開始できます。 拡張機能の下にVSC用のArduinoもインストールしましたが、必要がない場合もあります。困った場合は、ビデオを見て、インストールと使用のプロセスについて詳しく学ぶことができます 。
Arduino IDE: 最初のテスト
LEDを点滅させることは、ハードウェア ハッキングの伝統的な「Hello World」なので、次のプロセスを使用して、Arduino IDEからサンプル コードを直接コピーすることにしました。
- PIOホームページに移動し、「+ 新しいプロジェクト」アイコンをクリックします。
- プロジェクトの名前を決め、ボードやその他の情報を選択します。
- 「完了」をクリックし、すべてがセットアップされるまで数秒待ちます。名前は、エクスプローラー セクションに、複数のサブディレクトリとファイルを含むドロップダウン メニューとして表示されます。
- 「main.cpp」ファイルが含まれている「src」ディレクトリを選択します。この .cpp拡張子は「C++」を表し、Arduinoプログラムで一般的な .ino拡張子の代わりに使用されます。
- その拡張機能をクリックすると、標準の空の「setup()」および「loop()」ルーチンが表示されますが、上部に「#include <Arduino.h>」というステートメントもあります。PIOで作成するすべてのプログラムでこの行が必要になります。
- #include <Arduino.h> ステートメントを保持したまま、サンプル コードをコピーして貼り付けます。
- Uno をUSB経由で接続し、下部の青いストリップの右矢印キーを押してすべてをコンパイルしてロードします。
プログラムした速度でライトが楽しく点滅しているのがわかるはずです。
VSCodeの利点
Arduino Uno IDEとは異なり、システムはUnoが使用しているCOMポートを検出できます。プロジェクトの開始時にボードの種類を設定するので、Nano、Uno、または別のボードのどれを使用するかについて迷う必要はありません。私(および他の人)がここで何度も間違いを犯したことを考えると、この機能はほとんど魔法のようです。
プロジェクトの途中で、Unoの代わりにMega、Nano、またはその他のボードを使用することに決めた場合は、プロジェクトの「platformio.ini」ファイルで変更する必要があります。このファイルには、プラットフォーム、ボード、フレームワークがリストされ、ファイルをアップロードするときに必要なデータが提供されます。
少し標準的でないものをテストするために、 Arduino Nano EveryとArduino Nano 33 IoT で試してみることにしました。どちらも比較的新しいボードであり、最近、どちらか一方または両方に接続する際に問題が発生したため、自動接続が可能かどうか疑問に思っていました。嬉しいことに、各ボードに正しい構成を接続すると、両方のボードが起動し、素直に点滅し始めました。さまざまな デバイスの構成情報は、こちらで入手できます。名前は予想とは少し異なる場合があるので、惑わされないでください。たとえば、「Arduino Nano 33 IoT」ではなく「NANO 33 IOT」と表示されます。
シリアル モニターを使用する必要がある場合は、下部の青いストリップのプラグ アイコンから利用できます。このボタンを押すと、利用可能なポートのリストが表示されます。ターミナル領域をクリックしてシリアル モニターを選択し、対応するデバイス番号を入力します。
VSCode IntelliSense: オートコンプリート
正しい大文字と小文字のルールと構文でコマンドを記憶している場合でも、多くのユーザーは、例を確認したり、自分が書いたものをWeb検索したりする必要があります。 これがコンピュータプログラミングの世界であり、コマンドを正確に入力しないと動作しません。幸いなことに、コンピューターは実際に私たちの心を読むことができます。少なくとも、 IntelliSenseコード補完 を使用して、入力した最初の数文字から何を考えているのかを推測することができます。
「Serial.pr...」などのコマンドを入力し始めると、「println」などの候補がダイアログ ボックスに表示されます。TabキーまたはEnterキーを押すと、候補を受け入れることができます。これは小さなことですが、これが数百、あるいは数千のインスタンスで発生すると、時間の節約は計り知れません。
Visual Studio Code: タブとナビゲーションの切り替え
お気に入りのWebブラウザと同様に、VSC/PIOでは複数のコード タブを同時に開いたままにして、自由に切り替えて比較したり編集したりできます。このタブ付きデザインに加えて、IDEの右上隅に小さな「レーダー ビュー」画面があり、コードの圧縮された画像が表示されます。
Visual Studioエラー コード: 即時修正
Arduino IDEでは、コードを記述し、コンパイルまたはアップロードを押して、記述した内容が機能しない理由が正確に示されるまで待機します。VSC/PIOは、ワードプロセッサと同様に、エラーを即座に強調表示します。エラーをクリアしたら、ビルドのチェックマークまたはアップロード矢印を押します。
VSC/PIOの欠点
テスト中にプログラムは数回クラッシュしました。付属のシリアル モニターは強力であるように見えますが、理解するのは難しい場合があります。VSC/PIOには、公式のArduino IDEのように、すぐに利用できるサンプル セットもありません。一方、PIOを設定する場合は、おそらくその分野での経験があるため、例を検索したり、行き詰まったときにArduino IDEを参照したりすることができます。
既存のコードを新しいシステムに移行する必要もあります。PIOには、プロセスを支援する「Arduinoプロジェクトのインポート」機能が組み込まれています。
VSC/PIOの代替
もちろん、VSC/PIOに代わる方法はいくつかあります 。Atomテキスト エディターの環境を好む場合は、PIOプラグインが利用可能です。ArduinoボードではEclipseまたはNetbeansを使用することもできます。また、ターミナルの使用に慣れている場合は、コマンド ライン インターフェイスも利用できます。
ハイブリッド オプションの場合は、Arduino IDEの [ファイル] - [設定] に移動し、[外部エディターを使用する] をオンにします。有効にすると、Arduino IDEでコードがグレー表示されます。Notepad++ などのエディタを使用する場合は、変更を加えて通常どおりアップロードできます。
標準のArduinoシリアル モニターの代わりに、PuTTYなどを使用してボードからのフィードバックを探してみてください。これを行うには、「すべてのLFに暗黙のCRを挿入する」をチェックし (少なくともWindowsの場合)、シリアルと適切なCOMポートを選択する必要があります。これは、2つのCOMポートを同時に監視する必要がある場合 (Arduino IDEでは少し難しい) に優れた代替手段となります。
最後に
1つか2つのLEDを点滅させるなどの単純なタスクをArduinoボードで実行する場合は、Arduino IDEで十分です。複数のファイルで作業し、大規模なプロジェクトを管理するようになると、この処理環境は扱いにくくなります。新しい環境には必ず学習曲線が伴いますが、そのメリットは計り知れないほど大きい可能性があります。