BMD-300 BLEモジュール の開発環境を構築して、"blinky"のチェック, 「Arduino IDE」の機能も連携させて "temperature", "pwm_driver" をチェック
BMD-300 技適認定BLEモジュール の開発環境を準備する手順は以下のとおり。ちなみに、RIGADO社 BMD-300 は、NORDIC社 評価ボード nRF52832-DK (10040) と機能互換性があり、NORDIC社で公開しているサンプルプログラム nRF5_SDK_12.2.0_f012efa は、問題なくそのまま動作することを確認できました。
【ご注意】※この記事は、2017-03-21 に大幅変更しました。ご了承ください。
[BMD-300-EVAL の外観: USBケーブル、NFCアンテナ、小冊子が付属]
[ BMD-300 パッケージの外観、(今回は2個購入) ]
環境構築と動作手順のアジェンダは以下のとおり。
[アジェンダ]
1. Keil MDK をダウンロード、インストール
2. NordicSemiconductor.nRF_DeviceFamilyPack.8.11.1 をダウンロード、インストール
3. NORDIC サンプルプログラムセット nRF5_SDK_12.2.0_f012efa.zip をダウンロード
4. SEGGER JLink_Windows_V614a をダウンロード、インストール
5. NORDIC nrfgostudio_win-64_1.21.2_installer をダウンロード、インストール
6. 手順 3.でダウンロードした NORDIC サンプルプログラムセットを作業用フォルダに展開して、コンパイル・ビルド、フラッシュ書き込みの準備
7. BMD-300-EVAL を USB接続し、 5.でインストールした NORDIC "nRFgo Studio" を起動して、 BMD-300 モジュール固有の「SEGGER シリアル番号」が正常に読み出せること、を確認
8. NORDIC "nRFgo Studio" にて、サンプルプログラムセット中に同梱されている ロードモジュール "blinky_pca10040_s132.HEX" を仮書き込みして、とりあえず Blinky が正常に動くことをチェック
9. Keil MDK で "blinky_pca10040_s132" をコンパイル・ビルドして、ロードモジュールをターゲット BMD-300-EVAL の nRF52832 フラッシュへ書き込み、正常動作することをチェック
10. 「Arduino IDE」ツールの機能も連携させて、サンプルプログラムの代表例 "temperature" (nRF52832ボディ温度計の計測値のシリアル通信)と、 "pwm_driver"(押しボタンスイッチで5通りのPWMモードを変化させてLEDをソフトデューティ点滅)、 同時に仮想USBシリアル通信の動作チェックも行う
詳細手順は以下の通り。
[手順詳細]
手順 1. ~ 6.は、各種データの入手、インストール作業のため詳細は省略します。
7. BMD-300-EVAL を USB接続し、 5.でインストールした NORDIC "nRFgo Studio" を起動して、BMD-300 モジュール固有の「SEGGER シリアル番号」が正常に読み出せること、を確認
( 下図、私が動作させている BMD-300-EVAL 固有の「SEGGER シリアル番号」は、塗りつぶしてあります)
[ BMD-300-EVALをUSB接続して、NORDIC "nRFgo Studio" を起動した状態 ]
参考URL :
8. 上図で示した NORDIC "nRFgo Studio" で "Programming of Application on nRF5x device" の "File to program" -- "Browse " にて、NORDIC サンプルプログラムセットを展開した作業用フォルダから、"examples" -- "peripheral" -- "blinky" -- "hex" --"blinky_pca10040_s132.HEX" を選んでセット。
次に、"Erace all" → "Program" でフラッシュ書き込みが正常に終了すれば、Blinky がブート起動する。
9. NORDIC サンプルプログラムセットを展開した作業用フォルダから、"examples" -- "peripheral" -- "blinky" -- "pca10040" -- "blank" -- "arm5_no_packs" とフォルダを進み、 "blinky_pca10040_s132.uvprojx " のプロジェクトを選んで keil uvision5 を起動する。
[コンパイル・ビルドを実行]
[フラッシュ書き込みを実行]
10. サンプルプログラム2種類の動作チェック
(10.1) "temperature" (nRF52832ボディ温度計の計測値のシリアル通信) のフラッシュ書き込みと実行
前述 9. と同様にサンプルプログラムの作業フォルダを開いて、
"examples" -- "peripheral" -- "temperature" -- "pca10040" -- "blank" -- "arm5_no_packs" とフォルダを進み、 "temperature_pca10040.uvprojx " のプロジェクトを選んで keil uvision5 を起動する。コンパイル・ビルド実行して、フラッシュ書き込みを実行する。
・Arduino を起動して、ツール -- シリアルポート(仮想USBポート選択)
・ツール -- シリアルモニタ -- 下部のシリアル通信速度を "115200 bps" 選択
すると、"APP:INFO:Actual temperature: 15" (ボディ温度は 15℃) の温度表示がループする。
なお、Arduino のインストールや詳細設定方法などについては、解説記事が別ページにたくさんありますので、ここでは省略します。ポイントは仮想USBシリアル通信を利用することと、ボーレートを 115200bps にすることです。
[フラッシュ書き込みを実行]
[Arduino で "temperature" サンプルのシリアル通信をチェック]
(10.2) "pwm_driver"(押しボタンスイッチで5通りのPWMモードを変化させてLEDをソフトデューティ点滅)のフラッシュ書き込みと実行
同様にサンプルプログラムの作業フォルダを開いて、
"examples" -- "peripheral" -- "pwm_driver" -- "pca10040" -- "blank" -- "arm5_no_packs" とフォルダを進み、 "pwm_driver_pca10040.uvprojx " のプロジェクトを選んで keil uvision5 を起動する。コンパイル・ビルド実行して、フラッシュ書き込みを実行する。
[実験中の RIGADO BMD-300-EVALの様子, BMD-300x2個 ]