5

次のコンポーネントを使用して単純な Bluetooth デバイスを作成しました

  • HC05 モジュール
  • Arduino Uno ボード (再プログラム可能なマイクロコントローラー付き)

これらのコマンドが Bluetooth ヘッドセットから送信されたかのように、BT デバイスからコマンドを送信できるかどうか疑問に思っています。

つまり、次のとおりです。

  • 0x00000055 キーコードを送信 - 音楽が一時停止します (KEYCODE_MEDIA_PLAY_PAUSE)
  • 0x00000058 を送信 - 前の曲が再生を開始します (KEYCODE_MEDIA_PREVIOUS)
  • ...

Android が使用するキーコードの完全なリストは次のとおりです: http://developer.android.com/reference/android/view/KeyEvent.html

おそらく、着信コマンドを読み取り、ヘッドセット ボタンの押下をシミュレートする別のアプリを作成できますが、それは私が望むものではありません。私に関する限り、一部のヘッドセットはプラグアンドプレイです。つまり、Android デバイスに追加のアプリをインストールする必要はありません。Androidフォンにコマンドを送信するために現在使用しているコードは次のとおりです。

#include <SoftwareSerial.h>

SoftwareSerial BTSerial(10, 11); // RX | TX

enum { LED_PIN = 6 };
enum LedState { LED_ON, LED_OFF, LED_BLINK };

LedState led_state;

void setup()
{
  led_state = LED_OFF;
  pinMode(LED_PIN, OUTPUT);

  pinMode(9, OUTPUT);
  digitalWrite(9, LOW);
  Serial.begin(9600);
  Serial.println("Enter AT commands:");
  BTSerial.begin(38400);  // HC-05 default speed in AT command more
}

const int COMMAND_MUSIC = 85;

void loop()
{
digitalWrite(LED_PIN, HIGH);
delay(100);
digitalWrite(LED_PIN, LOW);
delay(100);

delay(10000);

// trying to play or pause once in 10 seconds
BTSerial.write(0x00000055);
//BTSerial.print(0x00000055, HEX);

}

両方のデバイスがペアリングされていますが、携帯電話の音楽プレーヤーはこれらのコマンドの影響を受けません。「BT からの受信コマンド」用のサイド アプリを作成せずに音楽プレーヤーを制御することはできますか?

4

2 に答える 2

4

お使いのボードが AVRCP コントローラーの BT プロファイルをサポートしているかどうかについて質問です。

その場合、電話機の AVRCP ターゲット BT プロファイルに接続する必要があるのは「だけ」です。AVRCP BT 接続を使用している場合、曲を一時停止およびスキップする方法が指定されたコマンドがあります。

これが「プラグアンドプレイ」ヘッドセットの仕組みです。

Bluetooth プロファイルの詳細をお読みください。 http://en.wikipedia.org/wiki/Bluetooth_profile

コードを見ると、電話へのシリアル リンクが設定されています。このリンクは SPP プロファイルを使用しており、そのリンクを介して生データのみを送信できます。これが Arduino Uno ボードの BT スタックにある唯一のプロファイルである場合、電話側でアプリケーションを作成して、生データを読み取り、音楽の一時停止などの何かを実行できるようにする必要があります。

これで問題が解決したことを願っています。

于 2014-04-23T06:57:42.847 に答える
1

あなたには手遅れかもしれませんが、他の誰かを助けることができるかもしれません。

まず、BT ヘッドフォン、キーボードなどの Bluetooth デバイスは、HID (ヒューマン インターフェイス デバイス) として知られています。HC05 はすぐに使用できるものではありませんが、Evan Kale (リンク: https://www.youtube.com/watch?v=BBqsVKMYz1I ) によって紹介された解決策があり、シリアル ポート接続を使用してこれを更新する方法があります。

他の解決策は、BT HID モジュールを購入することですが、より高価です (約 10 倍)。

于 2018-02-16T13:47:32.210 に答える