鳥なき里のマイコン屋(77) VS CodeでMicro:bit、デバッガも使えます

JosephHalfmoon
JosephHalfmoon

このところ連続している「VS Codeで~」シリーズ(実際に、汗水たらして働いている?のはPlatformIOなのですが)、前回はNucleoボードをターゲットにMbedしてみました。まあ、マイコン開発ボードだし、できて当然だし。。。しかし今回は、かのお子様コンピュータ BBC Micro:bitがターゲットです。C++で書けるし、デバッガだって使えるし。

以前にMicro:bit触ってから、だいぶうっちゃらかしておりました。そのときは、Micro:bit側は、ファンシーなBlockエディタ(JavaScriptベース)で「絵を描いて」動かしていました。しかし、エディタであるVS Code+PlatformIOには、まったく違う顔を見せてくれます。例によって PlatformIOのProject Wizardから、ターゲットボードを BBC micro:bitに設定し、フレームワークをMbedに指定してプロジェクトを構成してみます。BBC Micro:bit Platform IO

なんやかやの設定を一手に引き受けてくれる、PlatformIOのお陰で、ただこれだけで、即アプリを書ける状態に達するのは、慣れたとは言え感動ものです。さて、今回もクイックな動作確認だあ、と逃げを打ちつつ、ありもののサンプルプログラムを使わせていただいて動かしてしまうことにいたします。参考にさせていただいたのは、Mbedの以下のサンプルです。

microbit_blinky

ぶっちゃけLチカなのですが、コメントから1行引用させていただくと

All the LEDs on the micro:bit are part of the LED Matrix,

Micro:bitは大量のLEDを積んでいるので、普通のボードのように適当なポート1本じゃ制御できない、ということです。Mbedのサンプルページを見ているので、どのポートにするかは分かってはいるのです。しかし、VS Code+PlatformIOの素晴らしいところは、P0_とか打てば、ちゃんと候補がインテリセンスされてくるところです。こんなに楽で良いの?BBC Micro:bit Mbed Blinky

さて、そのままビルドして、OKだったです。

動いているところは、アイキャッチ画像

を御覧くださいませ。せっかく大量にあるLEDの、端っこの1個だけが点滅しておりますよ。

が、やはり、折角なのでデバッガを使ってみましょう。デバッグ用のビルドについても簡単です。デバッグ開始を指定するのみ。ここでもPlatformIOのパッケージマネージャー様は偉大です。必要なモジュールを適当に手にいれてきてくれて、使命を遂行してくれるのです。こんな感じ。BBC Micro:bit build

ここまでくれば、Nucleoだろうが、BBC micro:bitだろうがやることは変わりませぬ。同じArmコアのマイコンです。例によってデバッガのツールバーが出現するし、左側には変数表示が出現します。こんな感じ。BBC Micro:bit debug

LEDを制御しているmyledというDigitalOut型のオブジェクトですが、変数ウインドウで吟味してみれば、上の通り、P0_13のハードウエアレジスタに割り付けられていることが分かります。当然、ブレークポイントでは止まっているし。

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

鳥なき里のマイコン屋(78) VS Code+PlatformIO、弱点もある へ進む