鳥なき里のマイコン屋(74) VS Codeでマイコン・ソフト開発

JosephHalfmoon

Visual Studio Code、お使いの方も多いのではないかと思います。そのホームページの冒頭にあります。

Code Editing. Redefined.

しびれるカッコよさです。しかし、いままで見くびってました。というより、見誤っていた、というべきでしょう。「Visual StudioならC#書くとき使っているもんね」「Visual Studioのエディタ部分?」。Web開発などで使われている記事などが散見されました。マイコンには関係ないかな。。。などと思っておったのです。本日根本的に考えを改めました。

その名前、聞いたことがあったのです。それもとても御馴染みな感じ。

“Visual Studio”なんでしょ

という名前に「騙されていました」。Visual Studioと言えば、マイクロソフト社の代表的な開発ツールであり、Windows上のソフト開発の定番です。私の場合も、主にC#ですが、結構長いこと使わせていただいております。最近のVisual Studioは、Windows上の開発だけでなく、Androidの開発もできたり、Pythonにも使えたりと幅が広がっている。てっきり、Visual Studio Codeというエディタは、御馴染みツールのエディタ部分をとりだしたサブセットか何かなのかな?などという理解でおったのです。

しかし、その考えはおお間違い

だということを痛感いたしました。切っ掛けは、STM32Fマイコンのトラ技の特集でしたね。Visual Studio Codeをつかって、ST社のマイコン開発を行う記事が掲載されていました。4ページほどの記事です。当方でも、ST社のNucleoボードを使う開発には、Arm社の純正Web開発環境であるMbed Compiler、ローカルにインストールできるMbed-CLIMbed Studio、ST社の開発環境であるST32CubeIDEなどいろいろ使用してみています。流石、人気のマイコンだね、また別な(Yet Another)開発環境?くらいに思って、Visual Studio Codeをインストールをし、Visual Studio CodeのEXTENSIONSから

PlatformIO IDE

をインストールしてみました。Visual Studio Code(以下VS Codeと略します)のインストールも簡単なら、PlatformIO IDEのインストールも簡単です。VS Code platformIO

呆気なく、VS Code上でPlatformIOが使えるようになりました。VS Codeをインストールすると、下のような「アリさん?」のロゴが現れます。よくみると、Arduino, ARM mbed, Espressif、RISC-Vなど最近お世話になっているものがずらずらと。VSCode Platform IO

下の方をよく見ていくと、こんな感じです。御馴染みさんが並んでいます。AVR、Kinetis, 8051, Kendryte, Nordic, NXP LPC、MSP430…VS Code Plotform IO

フレームワークとしてもArduino、Mbed、FreeRTOSなど、このごろ使わせていただいている「モダン」な奴らはみなカバーされている。

これらが、本当に簡単に使えるのであれば、このVS Code「エディタ」1本で、この机のまわりに散らかっているほとんどのマイコン開発ボードのソフト開発はできる、ということになります。ものは試し。もともとはトラ技の記事に触発?されて ST Nucleoボードでテストしてみるつもりが、急遽、ESP32コアのM5Stackでやってみることにいたしました。当然の定番、Hello Worldを。ぶっちゃけ、NucleoボードにLCDを取り付ける手間を考えると、最初からLCDのあるM5Stackの方が「楽」というその1点。プロジェクトの新規開発を選択してあらわれるWizardにはこんな感じで指定。Platform IO M5Stack Project

なお、このままだと、Arduino.h配下のArduino環境は使えるのですが、肝心のM5Stack.h配下のM5Stackの環境が入らないようなので、Librariesというところから、以下のようにM5Stack固有のライブラリも選択。Platform IO M5Stack lib

あとは、ArduinoIDEとまったく同様にコードを書きました。スケッチではなく、main.cppというファイルネームですが、setup()とloop()で書けることなどArudino式そのまま。(雰囲気はちょっとカッコイイかもしれない。)VS Code M5Stack Hello

ビルドや、ターゲットへのダウンロードなどは下の方にまとめられていて、ここもArudinoIDEに慣れていると違和感なし。ボタンを押せば、コンパイルされ、接続したM5Stack機にオブジェクトが流し込まれました。VS Code M5Stack build

実行した様子を、アイキャッチ画像に掲げたので御覧ください。

M5Stack用の「Arduino環境開発」をさしたる手間なく始めることができました。所用時間、数十分というところでしょうか。まだ、Mbedとか、FreeRTOSとかやってみたわけではないですが、

1つの環境でこれだけ多数のマイコン、多数のプラットフォームに対応できる(それも簡単に)

のは超便利。今まで、マイコンベンダ毎、あるいはOS屋さんやコンパイラ屋さんのクローズドなIDEで開発していたのが一気に

「クラシック」

に思えてきます。なにせ、クローズドな世界にハマり込むと他に移行するのは辛くなりますが、こちらの行き方なら、

プロジェクトごとに最適なマイコンやプラットフォームを選ぶ

という考え方がしやすいでしょう。それどころか、IoTやらエッジやらの先っぽ側のマイコン開発(主としてCやC++)と、クラウド側、多く、JavaScript、PHP、そしてPythonといったものどもが活躍する開発、の双方を一つの環境でやれる、でしょう。Redefinedというキャッチフレーズ、はったりではないように思われてきました。

勿論、今のところ、いろいろ限界もあるでしょう。折につけ、VS Code、いろいろ触ってみて、どこまで何ができそうなのか探っていってみたいと思います。

鳥なき里のマイコン屋(73) 突然のNuvoton Technology へ戻る

鳥なき里のマイコン屋(75) VS CodeでM5Stack、ちょっと設定 へ進む

鳥なき里のマイコン屋 投稿順Index