BLEモジュール、Adafruit_nRF52_Arduino　最初の１歩

# 記事の概要
Nordic社製BLEチップ nRF52832を使用したBLEモジュールAdafruit_nRF52_Arduinoの基本的な使用方法を紹介します。

- 開発環境準備
- サンプルプログラムの修正と書き込み

本記事は以下のガイドラインを参照して作成しています。
https://learn.adafruit.com/bluefruit-nrf52-feather-learning-guide

# 購入方法
Adafruit_nRF52_Arduinoはスイッチサイエンスの通販サイトなどで簡単に購入できます。
https://www.switch-science.com/catalog/3277/

# 開発環境準備
[Recommended: Adafruit nRF52 BSP via the Arduino Board Manager](https://github.com/adafruit/Adafruit_nRF52_Arduino#recommended-adafruit-nrf52-bsp-via-the-arduino-board-manager)の手順に沿って準備します。

## Arduino IDEのインストール
v1.6.12以上のArduino IDEをインストールします。

https://www.arduino.cc/en/Main/Software にアクセスして、自分の環境に対応した項目を選択します。
例えばWindowsならば以下の図の矢印部分をクリックします。
<img width="50%" alt="1.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/150620/a4d2dd8c-2e61-725b-796a-c637bd6ea445.png">

ダウンロード画面には寄付募集のメッセージが表示されます。
寄付せずにダウンロードだけしたい場合は、以下の図の矢印部分をクリックします。
<img width="50%" alt="2.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/150620/24bdf564-d1e4-7763-6ac2-5bbe5a332607.png">

ダウンロードしたexeファイルを実行すればArduino IDEがインストールされます。

## ボードのインストール
Adafruit Feather nRF52832のボード設定をインストールします。

「ファイル」→「環境設定」を選択します。
<img width="50%" alt="3.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/150620/031f1ed1-e6a0-be0c-6ea3-40dad2518994.png">

「追加のボードマネージャのURL」に
https://www.adafruit.com/package_adafruit_index.json
を入力します。

<img width="50%" alt="4.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/150620/5c4c1e74-dc48-5698-f622-8d72252896f4.png">

OKしてから、Arduino IDEを再起動してください。
再起動後、「ツール」→「ボード」→「ボードマネージャ」を選択します。
Adafruit Bluefruitを検索してインストールしてください。

<img width="50%" alt="6.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/150620/bb377e80-6765-c2f5-8937-105e0eae0c56.png">


インストール後、「ツール」→「ボード」→「Adafruit Feather nRF52832」が選択できるようになります。
また、「ファイル」→「スケッチ例」→「Adafruit Bluefruit nRF52 Libraries」からサンプルが選択できるようになります。
<img width="50%" alt="7.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/150620/6d269ba1-61ff-0a69-0ef4-bb732fd23d54.png">


## ブートローダーの更新
nRF52832を使用する場合は、ブートローダー（ソフトデバイス S132）の更新が必要です。

「ツール」→「書込装置」→「Bootloader DFU for Bluefruit nRF52」を選択します。
<img width="50%" alt="7.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/150620/28a65246-c6c3-74f1-4a18-6b538fdc0679.png">

ボードをPCとUSB接続してから、「ツール」→「ブートローダーを書き込む」を選択して書き込みます。
成功すると以下のようなメッセージが表示されます。
<img width="50%" alt="8.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/150620/f9b77562-c76f-ae9d-24d2-3f516bc6719d.png">

## サンプルプログラムの修正と書き込み
サンプルプログラムを修正して書き込んでみます。

まず「ファイル」→「スケッチ例」→「Adafruit Bluefruit nRF52 Libraries」→「Peripheral」→「blinky_ota」を開いて、「ファイル」→「名前を付けて保存」で適当な場所に保存します。

試しにアドバタイジングパケットに含まれるデバイス名を変更してみます。

```c++
Bluefruit.setName("MyTest");
```

「スケッチ」→「マイコンボードに書込む」を選択すると、コンパイルを行った上でボードに書き込みが行われます。
成功すると以下のようなメッセージが表示されます。

<img width="50%" alt="9.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/150620/9d57a513-4d7c-de38-1395-d60227031de2.png">

スニッファーで確認すると、ボードの発信するアドバタイジングパケットのデバイス名が「MyTest」になっていることが分かります。
（スニッファーの使用方法については「[Nordic社製BLEの開発環境構築と動作確認](https://qiita.com/Kosuke_Matsui/items/5d61ce77e928b9f117cc#%E3%82%B9%E3%83%8B%E3%83%83%E3%83%95%E3%82%A1%E3%83%BC%E3%81%AB%E3%82%88%E3%82%8B%E5%8B%95%E4%BD%9C%E7%A2%BA%E8%AA%8D)」を参照してください。）

<img width="50%" alt="10.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/150620/34235d8a-3ae6-860a-0a7b-20e56e21b4e7.png">

# 次にすること
以上でAdafruit_nRF52_Arduinoについて、スケッチの修正と書き込みができるようになりました。

次は実際にオリジナルのBLEサービスを作成したいと思います。

# 関連記事
[BLEモジュール、Adafruit_nRF52_Arduino　BLEサービスの作成](https://qiita.com/Kosuke_Matsui/items/1cb4b60cbc89562c0d7e)