叶鋼は午前1時に計算をする

電子工作と計算の記録

【BLEを使う】mbed HRM1017 動作環境を整える

【BLEを使う】記事の一覧はこちら。

刺身の上にタンポポを乗せる簡単なお仕事です。

ネット・ミームより引用

いままでの記事はこちらをご覧ください。

 

mbed HRM1017を使うのはとても簡単です。以下にmbed HRM1017が届いてから使うまでに私が行った作業を順に列挙してみます。それにより、これを使うのがどんなに簡単なのかが皆様にもご理解いただけるはずです。  

参考にしたのは以下のサイトです。本記事でやっていることは以下のサイトと全く同じなので、以下のサイトを見た方が詳細で分かりやすいと思います。

https://media.dmm-make.com/item/1451/  

詳細を知りたい人は上の参考サイトを見ていただくとして、以下は私が行った作業の簡単な記録になります。  

①パソコンとmbed HRM1017を接続する

まずmbed HRM1017をtypeB miniのUSBケーブルに接続します。 typeB miniのUSBケーブルがなかなか見つからなくて苦労しました。USBケーブルを部屋から探し出すことが、今回紹介する一連の作業の中で、最難関作業でした。

今回の作業は他の部品は何も接続せずに、USBと接続しただけの状態で行います。

f:id:yegang:20140712200450j:plain

 

接続して、ドライバを自動インストールすると、コンピュータにMBEDドライブがマウントされます。その中にはmbed.htmというファイルが確認できます。

f:id:yegang:20140712195828j:plain

 

②mbedにmbed HRM1017(現在は暫定的にnRF51822)を登録する。

https://mbed.org/に行き(もしくはmbed.htmをクリックして)mbed HRM1017を自分のmbed platformに登録します。 mbedに登録していない人は先にmbedへのsignupを済ませます。  

(mbedに登録していない場合)signupをクリック

f:id:yegang:20140712170033j:plain

 

(mbedに登録していない場合)アカウントがない方を選択

f:id:yegang:20140712170026j:plain

 

(mbedに登録していない場合)メールアドレスなどを入力し、Signupをクリックして登録完了

f:id:yegang:20140712170021j:plain

 

mbedに登録済みの人はここから。 platformをクリック。

f:id:yegang:20140712170001j:plain

 

本来はデバイスにmbed HRM1017を選ぶのだが、今はまだないので現在は暫定的にnRF51822を選択。

f:id:yegang:20140712165950j:plain

 

NRF51822の画面で「add to your mbed compiler」をクリックして、デバイスをmbedコンパイラに追加。

f:id:yegang:20140712165945j:plain

 

以降はOpen mbed Compilerが表示され、これをクリックすることでプログラムの開発環境へ入ることができるようになります。

 

③プログラムをmbed HRM1017に書き込む

登録が完了した次は、サンプルプログラムを書き込んで、動作を確認します。

まずはmbed HRM1017がBLEとしてipadなどに検出されるかを確認しようと思います。

ここから先は以下のサイトを参考にしました。例のごとく、詳細はサイトの方を見ていただくとして、ここでは作業記録を簡単に残すに留めます。

mbed HRM1017とiPadをBLEで接続してみた! – スイッチサイエンス マガジン  

 

mbed HRM1017をはじめよう - | Mbedから温度計測用のBLEプログラムをImportします。

f:id:yegang:20140712184301j:plain

f:id:yegang:20140712183752j:plain

  

画面上段にあるCompileをクリックするとhexというファイルが生成され、ダウンロードされます。

f:id:yegang:20140712185749j:plain

  

ちなみに、BLE_Health_Thermometer_IRC -> BLE_API_Native_IRC -> hw -> nRF51822 -> btle -> btle.cpp を見ると以下の修正が入っているのが分かると思います。 

67行目 

//SOFTDEVICE_HANDLER_INIT(NRF_CLOCK_LFCLKSRC_XTAL_20_PPM, false);

68行目 

SOFTDEVICE_HANDLER_INIT(NRF_CLOCK_LFCLKSRC_RC_250_PPM_4000MS_CALIBRATION, false);   

元になったプログラムはnRF51822 mKitボード用に作られており、HRM1017にはない32.768kHzの外部水晶発振子を使用する設定になっていました。 そこで外部クロックを使用する67行目をコメントアウトして、内部クロックを使用する68行目が追加されています。 nRF51822 mKitボード用のプログラムを流用するときは、この設定を変えるようにしないといけません。  

ダウンロードされたBLE_Health_Thermometer_IRC_NRF51822_.hexファイルを最初に確認したコンピュータのMBEDドライブの中に置きます。

f:id:yegang:20140712174314j:plain

 

ダウンロード中は赤いLEDが点灯し、ダウンロードが完了するとhexファイルは消えて、再マウントします。 これでmbed HRM1017は電波を発信して、advertise(自分の存在を周囲に知らせている)状態になっているわけです。     

iPadでmbed HRM1017を検出する

次にこのmbed HRM1017のを検出する親機側の環境設定として、iPadAndroidにNordic社のnRF Toolboxをダウンロードします。

nRF Toolbox

nRF Toolbox

  • Nordic Semiconductor ASA
  • ユーティリティ
  • 無料

nRF Toolbox for Bluetooth LE - Apps on Google Play    

インストールしたnRF toolを起動してから、まずは温度計HTMを選択します。

f:id:yegang:20140712193250j:plain

 

CONNECTをクリックして、nRF5xが検出されていることを確認します。

私の場合は、最初うまく検出できず、mbedへのHEXファイルの再インストールとアプリの再起動をしたところ無事に検出するようになりました。(どちらの再起動が有効だったのかは分かりません。)

f:id:yegang:20140712194201j:plain

f:id:yegang:20140712192805j:plain

 

アプリが温度やバッテリーを表示するようになっています。今はmbed HRM1017をUSBでつなげているだけで温度計も電池もついていないため、有効な数字は表示されていません。

f:id:yegang:20140712192808j:plain

 

以上で試用は終わりです。このようにmbed HRM1017は簡単に使えます。

通常の電子工作ならここまで来るのに、英語の分厚い仕様書やマニュアルをいくつも読み込み、プログラムを設計から実装までこなし、検証を行いながら ひたすらバグ取りと機器の不具合修理をしないといけません。

mbedは既にあるプログラムを利用するだけではなく、新しいプログラムを作るのも簡単です。次回からは既存のプログラムをどのように修正して自作の電子機器用にカスタマイズしていくかをやってみたいと思います。