Red Bear Lab の BLE Nano v2 は公式リポジトリに開発環境構築などが一通り説明されていますが、 Arduino IDE で使える API の説明などが見当たりません。そこで Arduino IDE 向けボードサポートパッケージを一通り読んでみました。
結論
- Arduino言語はすべてサポート
- 標準ライブラリは「Wire (TWI/I2C)」「SPIのマスター」「Servo」をサポート
- mbed-os がベースになっているため mbed-os の API も利用可能
- BLE を使う場合は mbed-os の API を利用する
- サンプルプロジェクトはそれなりに用意されているので、開発時はこれを基点にするのが良さそう
Arduino 言語と標準ライブラリについて
Arduino日本語リファレンス というサイトに、 Arduino 言語と標準ライブラリのリファレンスの2つが日本語でまとめられています。
Arduino 言語については BLE Nano v2 ですべてサポートされているようです。標準ライブラリについては Wire, SPIのマスター, Servo の3つしかとりあえず見つかりませんでした。それぞれ
#include <Wire.h>
#include <SPI_Master.h>
#include <Servo.h>
とすることで使えそうです。
mbed-os の API
Arduino IDE で BLE Nano v2 のアプリケーションを開発する場合、ベースになるのは mbed-os です。そのため、上記の Arduino言語・標準ライブラリ以外にも mbed-os のAPIを使うことができます。
Arduino IDE は明示的に書かなくてもビルド時に Arduino.h をインクルードする仕様になっていますが、この Arduino.h の中で mbed.h もインクルードされているため、そのまま API が使えます。
余談
mbed-os からも Wire (TWI/I2C) と SPI の API が提供されています。 Arduino の標準ライブラリにある Wire と SPI_Master はこの mbed-os の API のラッパーとして実装されています。
BLE
BLE については #include <nRF5x_BLE_API.h>
を明示的に書くことで使うことができます。APIについてまとめようかと思いましたが、書き始めると長くなりそうなので割愛します。mbed-os の GitHub リポジトリにある mbed Bluetooth Low Energy Stack がこれに対応していると思うので、より細かい内容について調べる際にはこちらを確認するのが良いかと思います。
サンプルプロジェクトの活用
割愛してしまった BLE の API ですが、 Red Bear Lab の提供しているサンプルプロジェクトを使えば基本的なアプリケーション開発はできそうです。
Arduino IDE で「ファイル」->「スケッチ例」->「BLE_Nano2用のスケッチ」のところを見れば BLE だけでなく標準ライブラリなどについてもサンプルがある ので、実際に開発するときはこれを基点にして開発を進めるのが良さそうです。
