この間、更新したスマホアプリ「Bluetooth 4ch control」アプリの通信テストを行ってみました。
ほんとは何かラジコン系の工作をして通信テストしようと思っていたのですが、工作する題材も見つからなかったためとりあえず通信テストだけ行ってみました。
コントローラーの概要は▼
左右のスティックを上下左右に動かすと、その座標を一般的なプロポ同様に1ch~4chとしてBluetoothパケット送信するものです。それぞれのチャンネルの座標値に接尾語として「e」を付加してます。
デバック目的ですが、リアルタイムで送信パケットを「SendPacket」のところで表示してます。
送信されたパケットをこちらで受信/制御してます▼
左側にあるのが自作のBluetoothモジュールです。Bluetoothドングルでパケット送受信を行っています。送受信したパケットをSPP通信でArduinoへ渡してます。
Arduinoでは受信したパケットをシリアルモニタでパソコンに表示させているだけです。
パケット処理部のスケッチはこんな感じです▼
void readPacket() { for (int i = 0; i < 4;) { BTPacket[j] = Bluetooth.read(); if (BTPacket[j] == 'e') { BTPacket[j] = '\0'; ch[i] = atoi(BTPacket); j = 0; i++; } else { j++; } } Serial.print(ch[0]); Serial.print(", "); Serial.print(ch[1]); Serial.print(", "); Serial.print(ch[2]); Serial.print(", "); Serial.println(ch[3]); }
PICからのSPP通信では、記事最初のアプリ画面内の「SendPacket」にある文字列がそのままArduinoへ渡されます。接尾語「e」で区切ってch[]配列に各々数値に変換して格納してからシリアルモニタに表示させてます。
実際に通信してみました。こんな感じでチャンネル毎の通信はうまくいってます▼
レスポンスよくコントローラーの動きに追従してます。とりあえず4ch分だけですがいろいろなもののコントロールに使用できるかと思います。
また時間があるときに、Arduino(PIC)側の電源電圧をBluetooth通信してアプリ側に表示させる通信部分をやってみたいと思います。
コメント