Seeed K.K. の中井です。
私はWio 3G + Arduinoという組み合わせで動作確認することが多いのですが、 Arduino IDE上でのデバッグはいわゆるprintfデバッグ(シリアルコンソールに動作ログを出力)がメインになっていて、 デバッグ効率が悪いなぁと感じていました。
そこでこの記事では、PlatformIO上でリッチデバッグできる環境を構築してみたのでご紹介したいと思います。
尚、本記事の内容については公式にサポートするものではありませんので、お問い合わせいただいてもご対応できませんのでご注意ください。
構築する前に試したこと
手軽にデバッグできないか、いくつか確認してみましたがどれも思うようにはいかず。。
Visual Studio CodeのExtensionである「Arduino for Visual Studio Code」も試してみましたが、 まだ色々なボードでデバッグできる状態になってはいませんでした。これからに期待。
PlatformIOでは、Wio 3GはST STM32プラットフォームパッケージに収録されているのですが、 対応するフレームワークが、「Mbed」と「STM32Cube」となっており、Arduinoを選択することはできません。※執筆時点のVer 6.0.0の場合
今回構築した環境
ないなら作ってみるかというノリでやってみたのが、今回の環境構築です。 結果的にはPlatformIO上でリッチなデバッグができるようになったので非常に満足しています。
PlatformIOの大まかな構成としては、下記のようになっています。
platform
- 各ボードが利用するフレームワークやツールチェーン、ツール類などが定義されたファイルが収録
framework
- arduinoなどのフレームワークのソースコードや、ツール類などが収録
既存のPlatformIOの環境を壊さないようにしたかったので、 プラットフォームパッケージとフレームワークパッケージの2つを開発しています。 もちろん利用できるものは利用してです。
プラットフォームパッケージ / platform-wio
フレームワークパッケージ / framework-arduino-wio
- SeeedJPでメンテナンスしているArduino_Code_STM32をベースに作成
- https://github.com/SeeedJP/Arduino_Core_STM32
尚、Wio 3Gのみに対応させているのは、手元にそれ以外のボードがないからです。。
プラットフォームパッケージをインストール
さて本題です。今回構築した環境をインストールします。 プラットフォームパッケージのインストールは、PlatformIO Terminalからインストールします。
- PlatformIO Terminalを開く
- 次のコマンドを実行
platformio platform install https://github.com/mnakai3/platform-wio.git
インストール後には、一度 PlatformIO (Visual Studio Code)を再起動します。
正常にインストールが完了していれば、Seeed Wioプラットフォームが追加され、Arduinoフレームワークに対応しているWio 3Gがインストールされています。
Wio 3Gを選択したプロジェクトを作成してデバッグ
早速インストールしたWio 3Gを選択してプロジェクトを作成します。 プロジェクトに必要なフレームワークパッケージやツール類などが自動的にインストールされます。
動作確認は、「Wio cell lib for Arduino」に収録されている「basic/LedSetRGB」を使ってみます。 同ライブラリを利用するには、PlatformIOにライブラリをインストールする必要があります。
LedSetRGB.inoのコードをコピーして、作成したプロジェクトのsrc/main.cppにペースト。
platformio.iniにライブラリを登録します。
[env:seeed_wio_3g] platform = seeedwio board = seeed_wio_3g framework = arduino lib_deps = # Using a library name Wio cell lib for Arduino
コードの準備が整ったので、作業用PCとWio 3GをUSBケーブルで接続。一応、setup()にブレークポイントを貼っておき、F5でデバッグ開始。 ビルドとアップロードが実行され、特に設定が変更されていなければarduinoのmain()でbreakされます。
続行(F5)すると、先ほどブレークポイントを貼ったsetup()でbreakされます。
終わりに
今回の環境構築ではWio 3Gにしか対応することができていませんが、 機会があれば他のWioにも対応させていきたいと思っています。
作成したコードはgithubにアップしてありますので、ご興味があれば閲覧することもできます。
プラットフォームパッケージ
フレームワークパッケージ
パッケージリポジトリ
変更履歴
日付 | 変更者 | 変更内容 |
---|---|---|
2020/4/9 | mnakai | 作成 |