Introduction
IoT熱が高まってついに電子工作を始めました。
スイッチサイエンス、お世話になります。
で、何がしたいかというと、BLEビーコンを作ってみたいんですよ。
いやネット上でBLE Nanoキットを使ってサンプルは転がっているんですが、電子工作スキルなるものを習得できれば、と思います。
子供の頃はプラモデル作るのは好きでした。大丈夫でしょう。
Instructions
基本的には、JellyWare様の下記のページをなぞるだけです。
違うのは、ボリュームがない点です。
つまり、電池、コイン電池ホルダ、ジャンパワイヤ、BLE Nano v2、ブレッドボードだけを使います。
ひたすらパケットを送信するだけのビーコンです。
で、軽く記事を読むと、
- mbed
- ARM社のプロトタイピング用ワンボードマイコン用のプログラミング環境
が必要とのこと。Visual Studioで出来ないの?と温いことを思いますが、郷に入っては郷に従うの精神で行きます。
mbedのアカウント取得
無料出来る模様。どうやってマネタイズしているのか。
アカウント作成はここから。
メールアドレス、ユーザ名、パスワード、名前、名字、国名を入力
以上で完了です。
完了後、メールが届いて最終確認後、Sing Inできます。
BLE Nanoを動かす下準備
mbedはブラウザ上で作業が完結する模様。
なので、ブラウザ上でソース編集、デバイスに書き込みという往復作業になります。
まず、先の画面でCompilerをクリックすると、下記のような画面に遷移します。
ここで、右上のデバイス未選択をクリック。
表示されるダイアログの左下のAdd Platformをクリック
別ウィンドウで開発ボードの一覧がリストアップされます。
続いて、BLE Nanoの詳細に移動しますので、画面右側中央のAdd to your Mbed Compilerをクリック
サンプルのインポート
次にサンプルソースをインポートします。
BLE_iBeaconというサンプルがありますので、これを自分の環境にインポートします。
画面左上のインポートをクリックします。
Source URLに先ほどのBLE_iBeaconのurlを入力し、Importを実行
おもむろに、main.cppを見てみます。
1 | /* mbed Microcontroller Library |
すごくシンプルです。
main関数内で、おまじないした後は、全ての処理がbleInitComplete関数内に書いてあります。
サンプルは1秒毎にアドバタイジングパケットを送信する模様。
とりあえず、これをコンパイルします。
が、エラーと警告。
- Warning: #warning directive: toolchain.h has been replaced by mbed_toolchain.h, please update to mbed_toolchain.h [since mbed-os-5.3] in “extras/mbed_e7ca05fa8600/platform/toolchain.h”, Line: 23, Col: 3
- Error: Cannot open source input file “core_cmInstr.h”: No such file or directory in “BLE_API/ble/services/iBeacon.h”, Line: 19, Col: 27
とりあえず警告は無視して、エラーを直します。エラー行右の**Fix it!**をクリック。
なんとライブラリを探してきて、候補を提示してくれます。
ただ、どれを選べば良いのか見当もつきません。
ということで調べてみると、
という記事が。
記事によれば、
ですがこのビルドを指定すると下記のようなエラーになってしまったので、 4eea097334d6 で実行しています。
とのこと。どうもインポート時に最新ビルドを持ってくるようにしたのが不味かった模様。
なので、プロジェクトを削除してもう一度インポートします。
Update all libraries to the latest revisionのチェックを外します。
警告は出ますが、コンパイルに成功し、バイナリをダウンロードできるようになりました。
まずはコンパイルとバイナリ生成が完了。