【スキルアップ】BLE通信&iOSアプリを使ったシステムに挑戦(その1)

BLE通信&ソフトウェア方面の知識を深めたい

仕事ではファームウェアやアプリ開発などは行っていないのですが、IoTや組み込み関係の回路設計などでは色々ソフト周りの知識も必要となってきます。
なので、スキルアップのためにBLE通信とiOSアプリを使った簡単なシステム(システムというほど立派なものではないですが)を作ってみようと挑戦してみました。

概要

機能としては『BLE通信モジュールからデータを送り、iPad上のアプリに受信したデータを表示する』といったごく単純なものにします。

使用するもの

  • BLE通信モジュール

手元に「BLE nano」というマイコン内蔵のモジュールを持っていましたのでこれを使用することにしました。
blenano1

 

  • DSP評価ボード

BLE nano上で生成したデータをBLE通信で送ってもあまり面白くないので、外部に可変抵抗器を接続して可変抵抗のつまみを動かすと、それに応じた値が送信されるようなものにしてみようと思います。
今回は可変抵抗が実装されているDSP評価ボードで、これを流用することにしました。
dspboard1

  • iPad

iOSアプリはシミュレータではBLE通信は使用できないので、実機を使って行うことにします。
ipad

構成は以下のような形にしようと思います。
BLE図1

やるべきこと・開発要素

BLE通信モジュール側

  • Bluetoothにおけるペリフェラルとしての機能の実装
  • UARTで可変抵抗のデータを受信する
  • 受信したデータをBLE通信でiPadへ送信

DSP評価ボード側

  • 可変抵抗の出力電圧をADCで取り込む
  • 取り込んだデータをUARTで送信する

iPad側

  • Bluetoothにおけるセントラルとしての機能の実装
  • BLE通信モジュールとBluetoothで接続する
  • BLE通信モジュールからデータを受信する
  • 画面上に受信したデータを表示

開発環境など

今回は全て一から作るのはさすがに大変ですので、サンプルコードを利用して必要な箇所を改造していく方法で行うことにしました。

BLE nanoの開発環境・サンプルコード

  • BLE nanoはいくつかの開発環境が用意されていますが、今回は使い慣れているArduino IDEを使用します。
  • Arduino IDEで使用するには、下記手順が必要になりますが、詳細については今回は割愛します。

・BLE nanoにArduino用のファームウェア書き込み
・Arduino IDEにBLE nano用のプラグインのインストール

  • Arduinoにプラグインをインストールすると、いくつかのサンプルスケッチが付いていますのでこの中から「BLE_SimplePeripheral」というスケッチを利用します。

iOS開発環境

  • iOSアプリの開発に関してはMacのXcode(version8.2.1)を使用します。
  • 言語はswiftで、BLE通信にはCoreBluetoothというフレームワークを使用します。
  • iOSアプリに関しては、書籍やウェブの情報がたくさんありますのでこれらを参考に作ることにしました。

DSP評価ボード開発環境

  • アナログデバイセズの「blackfin」というDSPの評価ボードで、GNUツールチェインを利用しました。
  • たまたま手元にあり、ちょうど良い感じに可変抵抗などが実装されているもので、評価用のサンプルコードもありましたのでこれを利用しました。

次回に続きます。
次 >  その2