0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Arduino IDE による BLE Nano v2 のアプリケーション開発

Last updated at Posted at 2018-09-12

Red Bear Lab の BLE Nano v2 は公式リポジトリに開発環境構築などが一通り説明されていますが、 Arduino IDE で使える API の説明などが見当たりません。そこで Arduino IDE 向けボードサポートパッケージを一通り読んでみました。

Nano2_Pinout.png

結論

  • 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 だけでなく標準ライブラリなどについてもサンプルがある ので、実際に開発するときはこれを基点にして開発を進めるのが良さそうです。

キャプチャ1.png
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?