Windows Phone Advent Calendar 2014の5日目です。 Windows Phoneと外部のセンサー・デバイス Windows Phone 8.1端末にはGPS、加速度計、電子コンパス、ジャイロスコープなどのセンサーが搭載されています。また、カメラやNFCなどのデバイスも搭載されています。しかし、スマートフォンの小さな筐体に詰め込めるセンサーやデバイスは限度があるので、他のセンサー・デバイスを使いたいときは外部と連携する必要があります。 昨年のWindows Phone Advent Calendarで、「BluetoothによるWindows Phoneとデバイスの連携」と題してWindows Phone 8とワンボードマイコンのmbedをBluetooth(RFCOMM)で連携させる例を紹介しました。 このときはmbedにUSBドングルを挿していましたが、mbed側のプログラムが書きにくいため、RN-42XVPなどのSPPによるBluetooth通信モジュールをmbedにつなげる方法を先日に紹介しています。 RN-42XVPを使ったmbedでのBluetooth連携(その1) RN-42XVPを使ったmbedでのBluetooth連携(その2)Read More →

RN-42XVPを使ったBluetooth通信プログラミング BluetoothモジュールRN-42XVPを接続したmbed側のプログラムを作成します。mbedからはRN-42XVPはシリアル通信を行うデバイスに見えるので、プログラムはとても単純です。 :::c #include “mbed.h” BusOut leds(LED1, LED2, LED3, LED4); Serial xbee(p9, p10); // RN-42XVP int main() { uint8_t rawData;Read More →

BluetoothモジュールRN-42XVPと接続するWindows Phone 8.1アプリのサンプルでトラブルが起きています。 プロジェクトのターゲットをWindows Phone 8.0にすると正常に動作して、8.1に変更すると動かなくなるので、ここに問題がありそうです。 ひとまずWindows Phone 8.0 Silverlightのプログラムで公開して、その後8.1やWinRTへの対応を進めたいと思います。 2014年11月1日追記 Windows Phone 8.1 SilverlightアプリでのRFCOMM通信で原因と対策を報告しました。

BluetoothモジュールRN-42XVPと接続するWindows Phone 8.1アプリのサンプルを書いています。とある動作するサンプルを改造すればいいかと書き始めたのですが、元のサンプルでは接続できるのに、改造版ではなぜか接続できない… そんな訳で今はまっています。 その5としてサンプルプログラムを紹介する予定ですが、少々お待ちください。

[========] RN-42XVPの設定 BluetoothモジュールのRN-42XVPを実際使ってみます。 RN-42XVPはそれ自身でBluetoothのペアリングを行い、RFCOMMで通信します。 このBluetooth通信の設定は、PCからRN-42XVPにUSB-シリアル変換アダプタで接続して行います。 RN-42XVPとUSB-シリアル変換モジュールは次のように結線します。 USB-シリアル変換モジュールのドライバが必要ならインストールしておきます。 :::text RN-42XVP ⇔ USB-シリアル変換 VDD (1pin) ⇔ VDD TX (2pin) ⇔ RX RXRead More →

RN-42XVPとは mbedからBluetoothのRFCOMMで通信を行うモジュールの1つであるmicrochip社のRN-42XVPを紹介します。 RN-42XVPはUARTのTX/RX/RTS/CTSのピンを持っていて、mbedからはシリアル通信でデータを送受信するのと同じように見えることが特徴です。Bluetoothの処理はRN-42XVPが行うため、mbedのプログラムではbluetoothであることを意識する必要がありません。シリアル通信で外部と連携する機器のシリアル通信の回路をRN-42XVPに置き換えることで、簡単に無線で連携する機器へ変えることができます。 (RN41XV-RN42XV Datasheetから引用) RN-42XVPは10個のピンが2列に並んで、プリントパターンによるアンテナが付いた形状をしています。 ピンの間隔は2mm、ピン列の間隔は22m㎜で、いわゆるZigbeeのモジュールと同じピン配列です。 ブレッドボードに乗せる場合は2.54mmのピッチに変換するアダプタを使います。 今回はマルツエレックのXBeeピッチ変換基板ソケットセットを使います。 なお、コネクタとピンを自分ではんだ付けする必要があります。 次回は実際にRN-42XVPを使ってBluetooth通信してみます。

USBドングルによるmbedからのBluetooth連携 以前の記事「BluetoothによるWindows Phoneとデバイスの連携」で Windows PhoneとmbedをBluetoothで連携させるために、mbedのUSBピンに Bluetoothドングルを接続する方法を紹介しました。 このときはUSBスタックとしてmyBlueUSBを使い、RFCOMMでWindows Phone側と連携しました。 myBlueUSBはmain関数を持つプログラムで、そこにデータを受信したときのカスタム処理を記述します。 データ受信のイベントで処理を駆動する形でプログラムを書くのであればこれでもいいのですが、 自分でmainを定義するプログラムにmyBlueUSBは使えません。また、USBスタックのコードで 全体の見通しが悪いのも使い勝手が悪いです。 そこでRN-42XVPを使って、USBやBluetoothのプロトコルを意識することなく、mbedからBluetoothを使えるようにします。

Windows Phoneとデバイスの連携 – mbed編 Windows Phone Advent Calendar 2013の10日目の記事です。 BluetoothによるWindows Phone 8とmbedと呼ばれるワンボードマイコンの連携について、備忘録を兼ねてまとめます。 mbed: 手軽なワンボードマイコンのプラットフォーム 最近、mbedと呼ばれるワンボードマイコンのプラットフォームに関心があって、ときどきいじっています。mbedはマイコンのチップと、その入出力につながったピン、プログラムのバイナリデータをUSBメモリのようにドラッグ&ドロップで書き込むための補助チップなどから構成されます。 mbedの特徴は以下が挙げられるかと思います。 オンラインIDEによるプログラムの開発(コード作成、コンパイル、バージョン管理など)。 C/C++によるプログラム作成。 多くの公開ライブラリを利用可能。 マイコンボードへのプラグラムの転送が簡単。 USBにPCに接続するとメモリとして見えるので、モジュールをドラッグ&ドロップで書き込める。Read More →