Home Made Garbage

Home Made Garbage

ホーム
電子工作
Raspberry Pi
WordPress
IOT

RedBearLab BLE Nano の設定方法とOTA

Category : 電子工作 2016.5.10 お父ちゃん お父ちゃん

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