IoTづくり ’s blog

IoTの正しい応用と健全な発展に資する, nRF52, BLE, BMD-300, MOS-FETアンプ, 家庭菜園, そぞろ日記

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 に大幅変更しました。ご了承ください。

 

f:id:iotzukuri:20170321160105j:plain

[BMD-300-EVAL の外観: USBケーブル、NFCアンテナ、小冊子が付属]

 

f:id:iotzukuri:20170321155813j:plain

[ 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 シリアル番号」は、塗りつぶしてあります)

 

f:id:iotzukuri:20170319214540j:plain

 [ BMD-300-EVALをUSB接続して、NORDIC  "nRFgo Studio" を起動した状態 ]

参考URL :

www.rigado.com

 

 

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 を起動する。

 

f:id:iotzukuri:20170321152013j:plain

[コンパイル・ビルドを実行]

 

f:id:iotzukuri:20170321151956j:plain

[フラッシュ書き込みを実行]

 

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 にすることです。

 

f:id:iotzukuri:20170321153154j:plain

[フラッシュ書き込みを実行]

 

f:id:iotzukuri:20170321153921j:plain

[Arduino で "temperature"  サンプルのシリアル通信をチェック]

 

 

   (10.2)  "pwm_driver"(押しボタンスイッチで5通りのPWMモードを変化させてLEDをソフトデューティ点滅)のフラッシュ書き込みと実行

 

同様にサンプルプログラムの作業フォルダを開いて、

"examples" -- "peripheral" -- "pwm_driver" -- "pca10040" -- "blank" --  "arm5_no_packs" とフォルダを進み、  "pwm_driver_pca10040.uvprojx " のプロジェクトを選んで keil uvision5 を起動する。コンパイル・ビルド実行して、フラッシュ書き込みを実行する。

 

f:id:iotzukuri:20170321155447j:plain

[実験中の RIGADO BMD-300-EVALの様子,   BMD-300x2個 ]