Home Made Garbage

RedBearLab BLE Nano の設定方法とOTA

お父ちゃん お父ちゃん  2016.5.10 
ホーム
電子工作
Raspberry Pi
WordPress
IOT
BLE Nanoの設定方法とBLEを介して直接プログラムを書き込むOTAの方法を記載します。
 

BLE Nanoとは

RedBear社のBluetooth Low Energy(BLE)搭載の小型マイコンです。
IMAG0662
上に載ってる ちっこいのがBLE Nanoで下の基板がUSB書き込み用ボードのMK20
 
購入先

すでにMK20を持ってる場合は
 
以下ブログのプラレール遠隔コントロール改造でもBLE Nanoを使用してます 😀

ダイソー版 プラレール を改造したよ♪

MK20 USB boardの設定

USBを介してBLE Nanoにプログラムを書き込む際に必要なボードです。
Windowsの場合MK20をシリアルポートとして認識させるのにドライバが必要です。

  • https://developer.mbed.org/handbook/Windows-serial-configuration
    でmbed Windows serial port driverのexeファイルをダウンロードし実行
    無事インストールされるとMK20がシリアルポートとして認識されコード書き込みの準備が完了です♪
    “MBED”ドライブと表示されます。

以下はBLE Nanoとのセットで買った場合は必要ないと思いますが
RedBearLab WiFi MicroとかでMK20を使用してた場合にBLE Nano用のファームウェアを再度書き込む必要があります。

  • https://github.com/RedBearLab/nRF51822-Arduino/tree/S130/mk20
    のBLENano_MK20.binをダウンロードします。
  • MK20のリセット(RST)ボタンを押しながらPCに接続しLEDがゆっくり点滅すると”BOOTLOADER”ドライブとして認識されます。
  • ボタンを開放し”BOOTLOADER”ドライブにBLENano_MK20.binをドラッグ
  • 読み込まれるとLEDが高速で点滅しPCに再接続で”MBED”ドライブが表示されれば完了です。

Arduino IDE環境設定方法

オフィシャルではArduino IDEバージョン1.6.7が推奨のようだけど1.6.8でもいけました。
  • メニュー [ファイル]->[環境設定]内のAdditional Boards Manager URLsに

を追加(すでに他のjsonを入力してる場合はカンマで仕切る)し[OK]をクリック
1

  • メニュー [ツール]->[ボード]内の[Board Manager]を選択
  • [Board Manager] 内の”RedBearLab nRF51822 Boards”(version 1.0.5)を選択し[Install]をクリック
  • インストール後メニュー [ツール]->[ボード]内に”BLE Nano(V1.5 32KB)”が追加されるので選択
    2
    任意のシリアルポートを指定して書込みが可能になります(Arduinoに比べると書込みに時間がかかります)。

新品のBLE NanoではデフォルトでArduino IDE用のブートローダーが書き込まれているのですが、MBED等で一度書き込んで再度Arduinoで使用する際などにはArduino用ブートローダーの書込みが必要です。
これメチャメチャ ハマりました!!!
公式説明ではhttps://github.com/RedBearLab/nRF51822-Arduino/tree/S130/bootloader
のbootloader.hexをダウンロードし”MBED”ドライブにドラッグすれば良いとあるのですが、
全然正常に動作しません(基板の製造次期にもよるのか?)。。。。
以下、解決策です。

  • 上記でversion 1.0.5でインストールした”RedBearLab nRF51822 Boards”をversion 1.0.0でインストールし直します
  • C:\ユーザー\AppData\Local\Arduino15\packages\RedBearLab\hardware\nRF51822\1.0.0\bootloaders
    内にbootloader.hexが生成されてますので、これを”MBED”ドライブにドラッグするとBLE NanoのLEDが点滅しブートローダ状態になり正常に動作します。
  • このbootloader.hexはどこかに保存しといて”RedBearLab nRF51822 Boards”はversion 1.0.5で更新しなおします。

    これでやっとArduinoで書き込めるようになりました♪

OTAの実施方法 

OTA(Over-The-Air)はMK20を使用せずスマホからBLE通信で直接プログラムを書き込む方法です。
  •  まずはArduino IDEで書込みたいプログラムのhexファイルを生成
    メニュー [スケッチ]->[コンパイルしたバイナリを出力]
    コンパイル後にhexファイルが生成される。出力先はプログラムと同じ場所
  • nRF ToolboxアプリをAndroid or iPhoneにインストール 

    Screenshot_2016-05-09-22-25-29   Screenshot_2016-05-09-22-25-40   Screenshot_2016-05-09-22-25-49

  • DFU(Device Firmware Update) -> SELECT FILE ->Application選択してOK
    先ほど作成したhexファイルを指定(お父ちゃんはhexファイルをGoogleドライブにアップしてスマホとデータ共有してます)
  • Init packetの有無を聞かれるが”NO”を選択
  • SELECT DEVICEでBLE Nanoデバイスをスキャンして選択
  • 一度BLE Nanoの電源をOFF -> ONしてBLE NanoのLEDが高速点滅したらUPLOADで書き込み開始

BLE Nanoをハンダ付けでゴテゴテに組み込むとMK20接続できないのでOTAは非常に役立ちます

参考

 http://redbearlab.com/getting-started-nrf51822
 https://www.youtube.com/watch?v=d75strWav5k

追記(16/10/13) 

BLE Nanoを使って作成しました!

ワウペダルと加速度センサでBLE制御ラジコン!

コメントを残す

メールアドレスが公開されることはありません。コメントのみでもOKです。

TOP