Я пытаюсь использовать arduino с модулем Bluetooth HID (bluesmirf) для управления громкостью на моей вкладке Galaxy. У меня есть настройка arduino, так что я нажимаю маленькую кнопку, которая подключена, и она отправляет текст ascii на планшет так же, как клавиатура, и это работает нормально. Я хотел создать собственный файл раскладки клавиатуры для этой «клавиатуры bluetooth», так что, когда планшет получит нажатие клавиши с arduino через bluetooth, он будет управлять соответствующим элементом, например громкостью, отключением звука и т. Д. Однако при использовании keytest для захват входящего нажатия кнопки с модуля bluetooth, scancode всегда равен 0. Keytest читает ключ справа и показывает его как keycode_a (например), когда отправляется A, но scancode для этого ключа всегда 0 вместо уникального идентификатор. Как ни странно, каретка возвращает, что ардуино автоматически помещается в конец команды serial.println (команда, которую я использую для отправки нажатия кнопки на bluetooth) отображается правильно, как ENTER, и имеет scancode.rn-42 bluesmirf HID не отправляет сканноды?
Я не понимаю. Я, должно быть, делаю что-то не так, но я все еще новичок/учился, поэтому мне это не хватает. Я не могу настроить настраиваемую раскладку клавиатуры, чтобы делать то, что я хочу, не имея при этом сканнода для показа таблетки.
При необходимости я могу указать код arduino. Всем приветствуется всяческая помощь. Я так близок к тому, чтобы заниматься тем, что мне нужно, и сводить меня с ума.
EDIT - КОД НИЖЕ:
// 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 был нажат в приложении keytest, но он показывает scancode как 0. Каждый переданный символ показывает как 0 по какой-либо причине, за исключением автоматического возврата каретки, который эскиз бросает после Serial.println. Я даже пытался использовать Serial.print вместо этого, потому что это не бросает возврат каретки, и я тоже получаю тот же scancode 0.
Ваш код arduino поможет, а также отправку кода, который вы используете на стороне Android, также поможет. – FoamyGuy
Я отредактировал исходное сообщение, чтобы включить код arduino. Я не использую какой-либо код на стороне Android. Идея заключается в том, что со сканнодами я могу написать файл раскладки клавиатуры или изменить один из стандартных по умолчанию, который в основном представляет собой текстовый файл, в котором говорится «когда ключ с этим scancode получен, а затем выполните это действие». Это похоже на создание пользовательских сочетаний клавиш. – user2140890
Вы можете разместить ссылку на который у вас есть модуль bluesmirf? Есть несколько, и они работают немного по-разному. Также вы можете опубликовать вывод, который вы видите на стороне Android? Как, где вы видите, что он возвращается с keycode_a, и ENTER плюс их соответствующие scancodes (или недостаток)? – FoamyGuy