- PlatformIOとは何ですか?
- ArduinoUno用のPlatformIOのセットアップ
- PlatformIOIDEを使用したArduinoUNOのプログラミング
- PlatformIOIDEを使用したSTM32ボードのプログラミング
ArduinoとArduinoIDEでの開発は、シンプルなユーザーインターフェイスで常に簡単で楽しいものでした。Arduino IDEはオープンソースであり、コードの書き込み、コンパイル、Arduinoボードへのアップロードなどのすべての機能を備えた開発環境を無料で使用できます。これはJavaに基づいており、Windows、OS X、Linuxなどの主要なOSで実行されます。しかし、そのすべてのシンプルさと大規模なコミュニティにより、経験豊富な開発者が開発期間を短縮できる迅速な開発に必要ないくつかの機能がありません。Arduinoで利用できる開発環境はたくさんありますが、すべてにいくつかの長所と短所があります。本日は、Arduino環境に比べて使いやすく、機能が追加されたPlatformIO開発環境から始めます。
PlatformIOとは何ですか?
PlatformIOは、IoT開発用のPythonベースのオープンソースエコシステムであり、Windows、Mac、およびLinuxで実行される統合デバッガーを備えたクロスプラットフォームIDEです。PlatformIOには、ユニットテストとファームウェアアップデートに加えて、ArduinoやMBEDサポートなどのプラットフォーム用のライブラリマネージャーが付属しています。PlatformIOは、Arduino、ESP32、ESP8266などの多くのプラットフォーム、フレームワーク、ボードをサポートし、多数の例とライブラリが付属しています。それはそれが実行されているプラットフォームから独立しており、コンピューターにインストールされているPythonのみを必要とします。
PlatformIOの利点
PlatformIOは、C / C ++コード補完やSmartCode Linterなどの機能を備えた迅速な開発を特徴としており、ArduinoIDEにはない迅速な専門能力開発を実現します。これに加えて、PlatformIOは、いつでも開発できるように、暗い色と明るい色のテーマサポートを提供します。また、スマートコードナビゲーションとコードフォーマットが付属しています。コア機能には、マルチプラットフォームビルドシステム、ライブラリマネージャー、シリアルポートモニターなどが含まれます。
統合デバッガ複数のアーキテクチャと開発プラットフォームをサポートするには、ゼロコンフィギュレーションで複数の組み込みボードをデバッグすることができます。PlatformIOユニファイドデバッガーには、条件付きブレークポイント、式とウォッチポイント、メモリビューアー、アクティブなデバッグセッションのホットリスタートなどの機能があります。PlatformIOCoreはPython2.7で記述されており、Windows、macOS、Linux、FreeBSD、さらにはRaspberry Pi、BeagleBone、CubieBoard、Samsung ARTIKなどのARMベースのクレジットカードサイズのコンピューターで動作します。これとは別に、PlatformIOにはファイルエクスプローラーがあります。プロジェクトが特定のレベルに成長し、整理が必要になったときにファイルを整理します。
ArduinoUno用のPlatformIOのセットアップ
PlatformIOの使用は非常に簡単で、開始するのにいくつかの手順が必要です。上記で説明したように、PlatformIOコアはPython 2.7で記述されているため、PlatformIOではコンピューターにPythonがインストールされている必要があります。PlatformIOはPython3をサポートしていないため、Python 2バージョンをインストールしてから、PlatformIOIDEのセットアップに進むことをお勧めします。 PlatformIOはIDEであり、最も人気のあるIDEおよびテキストエディター用の公式パッケージ(プラグイン、拡張機能)を提供します。
今日は、AtomやVisual StudioCodeなどのテキストエディターにPlatformIOをインストールします。Platform IDEの公式ドキュメントには、PlatformIO IDE for VS Code(Visual Studio Code)の方がシステムパフォーマンスが優れていると記載されており、ユーザーは使い始めるのが簡単だと感じています。そこで、Visual StudioCodeでPlatformIOをセットアップします。VS Codeは、さまざまなプログラミング言語での開発を可能にする多数の拡張機能を備えた有名なテキストエディターです。
プラットフォームIOのセットアップを開始して、ArduinoUNOでコードの開発を開始しましょう。以下に説明する手順があります。
- まず、公式WebサイトからVisual StudioCodeをインストールします。Visual Studio Codeのインストール手順についてはここでは説明しませんが、VSCodeのWebサイトで見つけることができます。Windows OSに他のソフトウェアをインストールするのと同じように、一般的な手順があります。
- Visual Studio Codeは、正常にインストールされると次のようになります。
- 次のステップには、VS CodeExtensionsを使用したPlatformIOのインストールが含まれます。このためには、VSCodeの左上隅にある拡張機能アイコンに移動する必要があります。左上隅に5番目のアイコンである四角いボックスアイコンがあります。それをクリックするだけで、そのすぐ横に1つの検索ボックスが表示され、C / C ++、C#、Python、PHP、Go、JavaScript、TypeScript、Node.jsなどのさまざまなプログラミング言語の多くの拡張機能を見つけることができます。
- 拡張機能の検索ボックスで「PlatformIO」を検索すると、名前と説明が記載されたPlatformIOアイコンが表示されます。それをクリックしてインストールするだけです。ツールチェーンやその他の依存関係のインストールには時間がかかる場合があります。Arduinoの開発は主にC / C ++で行われるため、依存関係にはC / C ++環境が含まれます。
- インストールが完了すると、次のインターフェイスが表示されます。インターフェイスには、新しいプロジェクトの作成、Arduinoプロジェクトのインポート、プロジェクトを開く、プロジェクトの例など、必要なすべてのナビゲーションが含まれています。PlatformIOのインストール後にVS CodeEditorを再起動することをお勧めします。
これで、PlatformIOのインストール手順は終了です。これで、PlatformIOがインストールされ、使用できるようになりました。Arduino IDEと同様に、Blinkプログラムから始めて、ArduinoUNOにBlinkプログラムをアップロードしてみます。
PlatformIOIDEを使用したArduinoUNOのプログラミング
PlatformIOインターフェースは、ArduinoUNOのプログラミング中に同時に説明されます。ここでは、PlatformIOを使用してLEDを点滅させるようにArduinoをプログラミングしています。ArduinoIDEを使用して同じことができます。以下の手順に従って、LEDを点滅させるための新しいプロジェクトを作成します。
- クイックアクセスメニューから「新規プロジェクト」タブを選択します。
- プロジェクトに名前を付けます(ここでは「点滅」です)。ArduinoUNOであるボードを検索して選択します。Arduinoフレームワークで作業しているため、選択されるフレームワークはArduinoになります。すべての詳細を入力したら、[完了]をクリックします。
- プロジェクトは、リソースやその他の依存関係を収集することで作成を開始します。
- プロジェクトが正常に作成されると、「プロジェクトは正常に初期化されました」というプロンプトメッセージが表示され、詳細がすべて入力されます。
- 作成したプロジェクトを開くには、PlatformIOのホームメニューを下にスクロールするだけで、最初から作成されたプロジェクトのすべてのリストが表示されます。作成したプロジェクトの右隅にある[開く]をクリックしてプロジェクトを開き、編集を開始します。
- プロジェクトを開くと、最初は非表示のように見えますが、心配しないでください。PlatformIOには、現在のプロジェクトのすべてのファイルが見つかるファイルエクスプローラー機能があります。左上隅に移動して、「無題(職場)」を開きます。それをクリックすると、すべてのファイルがドロップダウンメニューとして表示されます。「コード」を編集するテキストエディタを見つけるには、「src」を選択し、「main.cpp」を開きます。新しいタブを開くと、テキストエディタモードがホーム画面に表示されます。ここでは、現在進行中のプロジェクトのすべてのコードを書くことができます。
- ArduinoUNOの点滅コードを書くだけです。PlatformIOにはArduinoライブラリへのデフォルトのアクセス権がないため、Arduinoのコードを作成するたびに、プログラムの先頭に常にArduinoライブラリ(「#include」)を含めてください。
- 次のステップは、コードのコンパイルとアップロードです。そのために、PlatformIOが提供する機能を見てみましょう。また、PlatformIOはデフォルトでCOMポートを選択します。ただし、目的のCOMポートでない場合は、ポートを変更することもできます。 COMポートの変更については、このチュートリアルの後半で説明します。PlatformIOには、ビルド、アップロード、リモートデバイスへのアップロード、クリーンアップ、テスト、タスクの実行、シリアルモニター、新しいターミナルなどの機能があります。すべての機能は、エディターの左下隅にあります。アイコンにカーソルを合わせると、機能が表示されます。
- スケッチを作成するには、[作成]をクリックし、スケッチをアップロードするには、[アップロード]アイコンをクリックします。アップロードが完了すると、アップロードにかかった時間が他のすべての詳細と「成功」というメッセージとともに表示されます。コードが正常にアップロードされ、ArduinoボードでLEDの点滅を確認できるようになります。
COMポートを選択または変更するには、PlatformIOホーム画面に移動してから[デバイス]に移動します。ここでは、接続されている使用可能なすべてのデバイスを確認できます。適切なCOMポートを選択し、同じ手順に従ってスケッチをアップロードします。
PlatformIOIDEを使用したSTM32ボードのプログラミング
STM32ボードのプログラミングには、上記で説明したArduinoUNOのプログラミングとまったく同じ手順があります。違いは、STM32の新しいプロジェクトを開くときに、STM32のボードを選択することです。 PlatformIOの良いところは、ボードを個別にダウンロードするための外部パッケージを必要としないことです。すべてのパッケージが自動的にダウンロードされ、ボードを選択してエディターに移動するのが簡単になります。外部のJLink / JTAG / STLink /シリアルプログラマーを使用して、スケッチをSTM32にアップロードします。 STM32はArduinoIDEでプログラムすることもできます。 PlatformIOでプログラムするには、次の手順に進みます。
- プロジェクトに名前を付けるだけです(ここでは「BlinkSTM32」です)。次に、STM32のボード、つまり「BluePill F103C8(Generic)」を選択します。次に、フレームワークをArduinoとして選択します。ボードSTM32のパッケージと依存関係をダウンロードするには最初は時間がかかるため、[完了]をクリックしてしばらく待ちます。
- セットアップが完了すると、次のプロジェクト作成時間は最初のプロジェクトに比べて短くなります。次に、左側のファイルエクスプローラーでUntitled(Workspace)-> src-> main.cppに移動します。
- STM32ボードのプログラミングにどのプログラマーを使用するかを決定する必要があるため、次の手順が重要になります。JTAG、STLink、JLink、Serialなど、多くのプログラマーが利用できます。すべてが機能しますが、「platformio.ini」構成ページまたはファイルを構成する必要があります。
- このプロジェクトでは、シリアルプログラマCP210xUSBからUARTへのブリッジを使用しています。USBポートを使用したSTM32F103C8ボードのプログラミングはすでに行っています。ほとんどの手順はそこからのみ実行されます。リンクにアクセスして、これについて詳しく知ることができます。
- まず、以下のピンマッピングでシリアルプログラマをSTM32ボードに接続し、PCに接続します。
USBからシリアルプログラマー |
STM32ボード |
5V |
5V |
Gnd |
Gnd |
処方箋 |
A9 |
Tx |
A10 |
- 次に、プロジェクトエクスプローラーに移動し、「platformio.ini」ページを開いて、図に示すようにステートメントを変更します。 upload_protocolは、 プログラマが(STLink、JLINK、シリアルなど)を使用すべきことを教えてくれます。 upload_portは、 COMポートを選択します。ホームページの「デバイス」に移動すると見つけることができます。COMポートに応じてCOMポートを変更してください。
- 'main.cpp'に 移動し、プログラムを Blinkprogramに 変更します。プログラムをアップロードするだけで、成功メッセージとアップロードにかかった時間が表示されます。これで、STM32ボードのPC13ピンに接続されたLEDが点滅し始めます。
これで、PlatformIOを使用したArduinoUNOとSTM32ボードのプログラミングに関する完全なチュートリアルは終了です。手順の実行中に問題が発生した場合は、フォーラムに書き込むか、以下にコメントしてください。