鳥なき里のマイコン屋(161) 新PCにPlatformIOインストール、STM32でLチカ

Joseph Halfmoon

パソコン更新をきっかけにツール類を厳選の上、最新版をインストールしつつあります。前回は最近正式リリースの Arduino IDE 2.0 をインストールして動作確認。今回は PlatformIO を新パソコンに導入し、動作確認をしたいと思います。ターゲットはSTM32マイコン搭載、Nucleo F072RBボードです。

※「鳥なき里のマイコン屋」投稿順Indexはこちら

PlatformIOは、多種類のマイコン、開発ボード、フレームワーク(OSやライブラリ等を含む)を活用できるマイコン開発用のIDEです。VScodeの「イクステンション」としてインストールするのは非常に簡単です。冒頭のアイキャッチ画像にありますように、VScodeの「拡張機能(Marketplace)」でPlatformIO IDEを探して「インストール」ボタンを押すだけです。

この「インストール」の時点では、PlatformIOの「コア」な部分はインストールされますが、各種マイコンのツールチェーンなどはまだインストールされていません。

VScodeの拡張機能なので、「お知らせ」が届くたびにアップデートしていれば常に最新版を使っていることになります。今回新パソコンに改めてインストールしたバージョンを旧パソコンと比べてみましたが同一バージョンでした。

ターゲットボードとプラットフォームを指定すれば環境ができあがる

なんといってもPlatformIOのすごいところは、ターゲットボードとFrameworkを指定すれば、ビルドに使うツールチェーンや、ライブラリなど一切合切を自動でダウンロードしてセットアップしてくれるところです(使用の初回は結構な分量をダウンロードするので、多少時間がかかります。調子にのっていろいろなマイコンやフレームワークを試していると大量のファイルがストレージに溜まります。旧パソコンではかなりな分量っす。)

これにはProject Wizardというものを使います。こんな感じ。WizardNucleoArduino

過去にも以下記事で同じようなことをしています。

鳥なき里のマイコン屋(76) VS CodeでNucleo、PlatformIO超便利!

上記ではターゲットボードがST社のNucleo F401RE、フレームワークはArm Mbed OSでした。今回は、以下でやってみたいと思います。

    • ターゲットボード、Nucleo F072RB
    • フレームワーク、Arduino

前回 ArduinoIDE 2.0を使ってみたとおり、Arduinoには専用の開発環境があるわけですが、PlatformIOにはまたそれなりのメリットがあります。

とりあえずWizardを実行後のVScodeの様子が以下に。ArduinoIDEの場合、.inoという拡張子のソース(CPPのソースに一枚レイヤをかぶせてメンドイところを隠蔽してある感じのもの)を使うのですが、PlatformIOでArduinoフレームワークを指定した場合、ソースファイルの拡張子は .cpp です。といっても本物のmain()関数は裏に隠してあって、setup()関数と loop()関数を書くスタイルはArduinoIDEと同じです。以下の見掛けの違いは、本家 ArduinoIDEでは Arduino.hヘッダを呼び出さなくてもOKなのに対して、PlatformIOでは#include必要というところでしょうか。F072RBArduino

前回、ArduinoIDE 2.0で使ったソースをコピペしたものが以下に。ターゲットボードもマイコンも、そして開発ツールも違うのですが、#include文以外はまったく同じソースでLチカ可能です。さすがArduino。F072RBblink

ビルドしてFlash書き込み、そして実行

VScode上にPlatformIOをインストールしてある場合、PlatformIO HOMEというものが自動起動すると、VScodeの最下行にビルド等のためのアイコンが配置されます(赤線の部分。)

PIOcmds

お家アイコンをクリックすると管理ツールやWizardなどを開けるPlatformIO HOMEが開きます。チェック・アイコンでビルド、右矢印アイコンでFlash書き込み(アップロード)です。F072RBblinkBuild

ビルドするとコンパイル、リンクが実施され、エラーがあれば表示されます。

今回は成功しているので、右矢印アイコンでアップロードします。Nucleo F072RBボードの場合、USBケーブルで接続するだけで自動認識されます。初回などボードと環境に適したアップロード用のツールが不在であればこれまた自動ダウンロードしてインストールされます。以下みるとボードとの通信には、Nucleo内蔵のST-Linkを使い、自動ダウンロードしたOpenOCDを使っているのがわかります。

Nucleo F072RBへの書き込みの最後のところが以下に。書き込み成功しております。F072RBblinkUpload

以下は現物です。吉例Lチカ、しております。NucleoF072RB_Arduino_blink

こうしているとNucleoボードは、ほぼほぼArduinoのつもりで使えますな。あたりまえか。

鳥なき里のマイコン屋(160) Arduino IDE 2.0インストール、吉例Lチカ へ戻る

鳥なき里のマイコン屋(162) ラズパイPico, SDK、開発環境復活、でも全部じゃない へ進む