Bluetooth HID モジュール (bluesmirf) を備えた arduino を使用して、Galaxy タブの音量を制御しようとしています。配線されている小さなボタンを押すと、キーボードと同じようにASCIIテキストがタブレットに送信されるようにarduinoのセットアップがあり、これは正常に機能します。この「Bluetooth キーボード」用のカスタム キーボード レイアウト ファイルを作成して、タブレットが Bluetooth 経由で arduino からキープレスを受信したときに、ボリューム、ミュートなどの適切な項目を制御できるようにしたいと考えました。ただし、keytest を使用してブルートゥースモジュールからの着信ボタン押下をキャプチャします。スキャンコードは常に0です.Keytestはキーを正しく読み取り、Aが送信されたときにkeycode_aとして表示しますが、そのキーのスキャンコードは一意ではなく常に0です識別子。奇妙なことに、
理解できません。私は何か間違ったことをしているに違いありませんが、私はまだ新しい/学習しているので、見逃しているに違いありません. タブレットがスキャンコードを受信しないと、カスタム キーボード レイアウトをセットアップして、やりたいことを実行できません。
必要に応じて arduino コードを投稿できます。どんな助けでも大歓迎です。私は必要なものを達成するのに非常に近づいており、それが私を狂わせています。
編集 - 以下のコード:
// test code for sending keystrokes from arduino
// to computer via HID bluetooth module
// constants won't change. They're used here to
// set pin numbers:
const int buttonPin = 2; // the number of the pushbutton pin
const int ledPin = 13; // the number of the LED pin
// variables will change:
int buttonState = 0; // variable for reading the pushbutton status
void setup() {
// initialize the LED pin as an output:
pinMode(ledPin, OUTPUT);
// initialize the pushbutton pin as an input:
pinMode(buttonPin, INPUT);
// begin serial communication at 115200 baud rate
Serial.begin(115200);
}
void loop() {
// read the state of the pushbutton value:
buttonState = digitalRead(buttonPin);
// check if the pushbutton is pressed.
// if it is, the buttonState is HIGH,
//the LED turns on, and the line is printed via bluetooth.
if (buttonState == HIGH) {
digitalWrite(ledPin, HIGH); // turn LED on:
Serial.println("A"); // write the line via bluetooth
delay(1000); // delay one second
}
else {
// turn LED off:
digitalWrite(ledPin, LOW);
}
}
上記のコードでは、Serial.println ("A"); タブレットに送信すると、テキスト エディターに A が表示されます。タブレットは、キーテスト アプリで A が押されたことを確認しますが、スキャンコードは 0 として表示されます。送信されたすべての文字は、何らかの理由で 0 として表示されます。ただし、Serial.println の後にスケッチがスローする自動キャリッジ リターンを除きます。代わりに Serial.print を使用しようとしましたが、それは改行をスローしないため、同じスキャンコード 0 も取得します。