Visual Studio Code、お使いの方も多いのではないかと思います。そのホームページの冒頭にあります。
Code Editing. Redefined.
しびれるカッコよさです。しかし、いままで見くびってました。というより、見誤っていた、というべきでしょう。「Visual StudioならC#書くとき使っているもんね」「Visual Studioのエディタ部分?」。Web開発などで使われている記事などが散見されました。マイコンには関係ないかな。。。などと思っておったのです。本日根本的に考えを改めました。
※「鳥なき里のマイコン屋」投稿順Indexはこちら
その名前、聞いたことがあったのです。それもとても御馴染みな感じ。
“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-CLI、Mbed 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をインストールすると、下のような「アリさん?」のロゴが現れます。よくみると、Arduino, ARM mbed, Espressif、RISC-Vなど最近お世話になっているものがずらずらと。
下の方をよく見ていくと、こんな感じです。御馴染みさんが並んでいます。AVR、Kinetis, 8051, Kendryte, Nordic, NXP LPC、MSP430…
フレームワークとしてもArduino、Mbed、FreeRTOSなど、このごろ使わせていただいている「モダン」な奴らはみなカバーされている。
これらが、本当に簡単に使えるのであれば、このVS Code「エディタ」1本で、この机のまわりに散らかっているほとんどのマイコン開発ボードのソフト開発はできる、ということになります。ものは試し。もともとはトラ技の記事に触発?されて ST Nucleoボードでテストしてみるつもりが、急遽、ESP32コアのM5Stackでやってみることにいたしました。当然の定番、Hello Worldを。ぶっちゃけ、NucleoボードにLCDを取り付ける手間を考えると、最初からLCDのあるM5Stackの方が「楽」というその1点。プロジェクトの新規開発を選択してあらわれるWizardにはこんな感じで指定。
なお、このままだと、Arduino.h配下のArduino環境は使えるのですが、肝心のM5Stack.h配下のM5Stackの環境が入らないようなので、Librariesというところから、以下のようにM5Stack固有のライブラリも選択。
あとは、ArduinoIDEとまったく同様にコードを書きました。スケッチではなく、main.cppというファイルネームですが、setup()とloop()で書けることなどArudino式そのまま。(雰囲気はちょっとカッコイイかもしれない。)
ビルドや、ターゲットへのダウンロードなどは下の方にまとめられていて、ここもArudinoIDEに慣れていると違和感なし。ボタンを押せば、コンパイルされ、接続したM5Stack機にオブジェクトが流し込まれました。
実行した様子を、アイキャッチ画像に掲げたので御覧ください。
M5Stack用の「Arduino環境開発」をさしたる手間なく始めることができました。所用時間、数十分というところでしょうか。まだ、Mbedとか、FreeRTOSとかやってみたわけではないですが、
1つの環境でこれだけ多数のマイコン、多数のプラットフォームに対応できる(それも簡単に)
のは超便利。今まで、マイコンベンダ毎、あるいはOS屋さんやコンパイラ屋さんのクローズドなIDEで開発していたのが一気に
「クラシック」
に思えてきます。なにせ、クローズドな世界にハマり込むと他に移行するのは辛くなりますが、こちらの行き方なら、
プロジェクトごとに最適なマイコンやプラットフォームを選ぶ
という考え方がしやすいでしょう。それどころか、IoTやらエッジやらの先っぽ側のマイコン開発(主としてCやC++)と、クラウド側、多く、JavaScript、PHP、そしてPythonといったものどもが活躍する開発、の双方を一つの環境でやれる、でしょう。Redefinedというキャッチフレーズ、はったりではないように思われてきました。
勿論、今のところ、いろいろ限界もあるでしょう。折につけ、VS Code、いろいろ触ってみて、どこまで何ができそうなのか探っていってみたいと思います。
鳥なき里のマイコン屋(73) 突然のNuvoton Technology へ戻る