BLE Nano V2 を mbed で Lチカ

 以前 BLE Nano の V1 で Lチカしてみた記事を書いたことがありますが、 BLE Nano は後継機の V2 が出てスイッチサイエンス等でも購入できるのは V2 のみになっています。

www.switch-science.com

 そこで今回は改めて BLE Nano の V2 でとりあえず Lチカまでをやってみました。 V1 と同様に初めて BLE Nano を使う場合は書き込み用のボードが必要なので、セットになったものを買うと良いのですが、 V1 の時に買ったものがあるので、そちらを使ってみました。

www.switch-science.com

 下記の画像のように V1 と V2 ではピン配置なども違うので、実装にあたっては注意が必要ですが、プログラムの書き込みだけであれば V1 の時のものも使えそうです。

f:id:akanuma-hiroaki:20180630233943j:plain

オンラインのコンパイラで環境設定

 まずはオンラインのコンパイラで環境設定から。チュートリアルは下記サイトに公開されていますので、こちらに従ってやってみます。

github.com

 mbed で開発をするにはまずは対象のボードを選択する必要があります。 BLE Nano の V1 の時は対象のボードとしても BLE Nano が選択できたのですが、 V2 はまだ対象のボードの選択肢には含まれていません。 V2 では SoC が V1 の Nordic nRF51822 から nRF52832 に変更になっていたりしますので、 V1 を選択して使うわけにもいきません。現状ではチュートリアルでも紹介れているように、 nRF52832 を搭載した開発ボードである nRF52-DK を対象として選択して開発するようです。

Nordic nRF52-DK | Mbed

 上記開発ボードのページの右側に Add to your Mbed Compiler というボタンがありますので、これをクリックするとオンラインのコンパイラにボードが追加されます。

f:id:akanuma-hiroaki:20180630224131p:plain

 次にコンパイラの画面に移って、右上のボード選択用のボタンをクリックします。

f:id:akanuma-hiroaki:20180630224356p:plain

 ボードの選択画面が開きますので、 nRF52-DK を選択してから右上の Select Platform ボタンをクリックします。

f:id:akanuma-hiroaki:20180630224431p:plain

Lチカ実行

 ここまででひとまず設定は終わりなのでプログラムを用意します。コンパイラの左上の 新規 > 新しいプログラム から新規のプログラムを作成します。

f:id:akanuma-hiroaki:20180630224819p:plain

 新しいプログラムの作成ダイアログが開いたら、プラットフォーム、テンプレート、プログラム名を下記のように設定して OK をクリックします。

f:id:akanuma-hiroaki:20180630225037p:plain

 すると下記のように Lチカのコードが含まれたプログラムが作成されます。

f:id:akanuma-hiroaki:20180630225235p:plain

 デフォルトでは LED のピンの指定が LED となっていますので、これを BLE Nano V2 の LED のピン番号である P0_11 に変更して、下記のようなコードにします。

#include "mbed.h"

DigitalOut led1(P0_11);

// main() runs in its own thread in the OS
int main() {
    while (true) {
        led1 = !led1;
        wait(0.5);
    }
}

 今回のコードはこれだけなので、画面上部の コンパイル をクリックしてコンパイルを実行します。

f:id:akanuma-hiroaki:20180630225533p:plain

 正常にコンパイルされると mbed-os-example-blinky_NRF52_DK.bin というファイルが生成されますので、これを DAPLINK として認識されている BLE Nano V2 に保存(アップロード)します。試した限りではアップロードが終わったら一度 BLE Nano V2 を抜いて挿し直さないとプログラムが実行されませんでした。

まとめ

 BLE Nano V2 そのものについての mbed でのサポートはまだ不十分なようですが、とりあえず Lチカだけであれば nRF52-DK をターゲットとすることで実行することができました。今回は CLI でのコンパイルと実行まではできませんでしたが、今後試してみたいと思います。また、 BLE を使った実装については、 nRF52832 を使ったサンプルはあまり多くなさそうなので、ちょっと苦戦しそうかなと思っています。