Форум программистов, компьютерный форум, киберфорум
Arduino
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.67/106: Рейтинг темы: голосов - 106, средняя оценка - 4.67
5 / 5 / 2
Регистрация: 21.07.2013
Сообщений: 362
1

Arduino в качестве мультимедийной клавиатуры под Android (и альтернативы)

20.04.2015, 22:00. Показов 21029. Ответов 33
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть Ардуино про микро (Mega32U4).

Хочу сделать на её основе USB HID клавиатуру под андроид для регулировки громкости по средствам энкодера и запуск нескольких программ типа Navitel, MX Player, какой нибудь музыкальный плеер и кнопки следующая, предыдущая, пауза, воспроизведение.

Может есть у кого готовое решение (или его части). Буду очень признателен, а то я в этом практически не разбираюсь.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.04.2015, 22:00
Ответы с готовыми решениями:

Arduino в качестве мультимедийной клавиатуры для анроид
Добрый день! Помогите пожалуйста есть модуль hc-06 перепрошитый rn-42 и arduino nano . в интернете...

Связь Unity3D + Arduino под android приложение
Доброго времени суток. Возникла проблема: Нужно управлять модулями Arduino с приложения под...

Управление свернутым Windows Media Player с мультимедийной клавиатуры
Драсте! Есть клавиатура, кнопочки "громче", "тише", "звук вкл./выкл.". Есть желание сделать так,...

Альтернативы Kali для Android смартфонов
Всем доброго дня! Подскажите какие есть альтернативы Kali (pintest) для Android смартфонов? ...

33
5 / 5 / 2
Регистрация: 21.07.2013
Сообщений: 362
27.06.2015, 09:47  [ТС] 21
Author24 — интернет-сервис помощи студентам
Немного не в тему вопрос.
На сколько я понимаю при подключении ардуины по усб появляется виртуальный ком порт. Номер порта зависит грубо говоря от порта усб. Вопрос: есть ли у этого ком порта какой-нибудь уникальный идентификатор, кроме номера, по которому можно будет узнать ардуину. Ведь стоит переключить ардуину в другой ком порт и его номер изменится.
0
10231 / 6609 / 498
Регистрация: 28.12.2010
Сообщений: 21,156
Записей в блоге: 1
27.06.2015, 12:10 22
при подключении ардуины по усб появляется виртуальный ком порт
не сам по себе. При подключении устройства драйвер конвертора USB/UART производителя (например FTDI, CP-21XX, Профилик и т.д.), установленный в ОС, может эмулировать виртуальный COM порт, а может и не эмулировать. Зависит от конвертора и производителя (драйвера).

Ведь стоит переключить ардуину в другой ком порт и его номер изменится.
в другой USB порт.

Некоторые чипы конверторов (если зашит Vendor Name) дают ОС (драйверу) знать о своем имени и устройство можно идентифицировать, даже если оно установлено в другой USB и имеет другой номер COM порта.
Миниатюры
Arduino в качестве мультимедийной клавиатуры под Android (и альтернативы)   Arduino в качестве мультимедийной клавиатуры под Android (и альтернативы)   Arduino в качестве мультимедийной клавиатуры под Android (и альтернативы)  

0
5 / 5 / 2
Регистрация: 21.07.2013
Сообщений: 362
28.06.2015, 10:40  [ТС] 23
Удалите, пожалуйста этот пост.
0
10231 / 6609 / 498
Регистрация: 28.12.2010
Сообщений: 21,156
Записей в блоге: 1
28.06.2015, 10:54 24
Что-то я не пойму, как вставить код клавиши.
Делаю так:

Код
void setup() {
   pinMode(2, INPUT_PULLUP);
   Keyboard.begin();
 }

 void loop() {
   while (digitalRead(2) == HIGH) {
     delay(500);
   }
   delay(1000);
   Keyboard.press($AF);
   delay(100);
   Keyboard.releaseAll();
   delay(1000);
 }
выдает ошибку:
sketch_jun28a:22: error: stray '$' in program
sketch_jun28a.ino: In function 'void loop()':
sketch_jun28a:22: error: 'AF' was not declared in this scope
stray '$' in program
0xAF.
0
5 / 5 / 2
Регистрация: 21.07.2013
Сообщений: 362
28.06.2015, 12:52  [ТС] 25
Кликните здесь для просмотра всего текста
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
void setup() {
  pinMode(5, INPUT_PULLUP);
  Keyboard.begin();
}
 
void loop() {
  if (digitalRead(5) == LOW) {
    delay(200);
  Keyboard.press(0xAF);
  delay(100);
  Keyboard.releaseAll();
  delay(500);
  }
  }

идет нажатие кнопки "ноль"
0
10231 / 6609 / 498
Регистрация: 28.12.2010
Сообщений: 21,156
Записей в блоге: 1
28.06.2015, 14:50 26
Правильно, а вы чего ожидали? Чтобы без дополнительного приложения, а именно драйвера мультимедийной клавиатуры само по себе воспринимало расширенные скан-коды? Так интерпретирует данный скан-код драйвер клавиатуры в вашей ОС. К сведению, стандартный скан-код для клавиши "0" = 0х30.

p.s.: итого, перечитываем мои первые посты.
0
5 / 5 / 2
Регистрация: 21.07.2013
Сообщений: 362
28.06.2015, 15:36  [ТС] 27
Я что-то не совсем Вас понял.
Перехват кнопки mute: KEY HEX: AD
громкость+: KEY HEX: AF
Так как должно быть правильно Keyboard.press((шестнадцатеричное_значение(AF));
0
10231 / 6609 / 498
Регистрация: 28.12.2010
Сообщений: 21,156
Записей в блоге: 1
28.06.2015, 15:45 28
...запись 16-тиричного значения десятичного числа 173 в терминах Си-компилятора и в Wiring: 0xAD.
0
5 / 5 / 2
Регистрация: 21.07.2013
Сообщений: 362
28.06.2015, 15:47  [ТС] 29
Вообще ничего не понял.
Можно пример?
0
10231 / 6609 / 498
Регистрация: 28.12.2010
Сообщений: 21,156
Записей в блоге: 1
28.06.2015, 16:07 30
Пример чего?
0
5 / 5 / 2
Регистрация: 21.07.2013
Сообщений: 362
28.06.2015, 16:41  [ТС] 31
Нашел:
http://stefanjones.ca/blog/ard... edia-keys/
Работает и на компе и на ведроиде.
Есть недостаток: то ли дребезг контактов, то ли ещё чего... Я сделал так:
Кликните здесь для просмотра всего текста
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
void setup() {
  pinMode(5, INPUT_PULLUP);
  Remote.begin();
}
 
void loop() {
  if (digitalRead(5) == LOW) {
    delay(200);
    Remote.mute();
    delay(200);
    Remote.clear();
        delay(200);
  }
  }

Но, на мой взгляд использование delay не самый лучший способ. Помогите оптимизировать код. Чтобы реагировала только на первое нажатие, отбрасывало повторения и отличало короткое нажатие (до 0,5 сек) и длинное нажатие (более 2 сек)
0
10231 / 6609 / 498
Регистрация: 28.12.2010
Сообщений: 21,156
Записей в блоге: 1
28.06.2015, 16:50 32
...вместо delay - millis().
0
5 / 5 / 2
Регистрация: 21.07.2013
Сообщений: 362
03.07.2015, 22:24  [ТС] 33
Решил свою проблему следующим образом
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#define ENCODER_DO_NOT_USE_INTERRUPTS // без прерываний.
#include <Encoder.h>
Encoder Enc_1(9, 8);
 
void setup() {
  Remote.begin();
}
long old_pos = 0;
void loop() {
  long new_pos;
  new_pos = Enc_1.read()/4;
  if (new_pos > old_pos) {
    Remote.increase();
    old_pos = new_pos;
  }
  if (new_pos != old_pos) {
    Remote.decrease();
    old_pos = new_pos;
  }
}
Контакты энкодера через резисторы на "+", через кондеры на "-".
Как ни крути - работает на 100%
0
0 / 0 / 0
Регистрация: 02.04.2018
Сообщений: 10
04.04.2018, 13:09 34
ali_vlad, вы не искали фрилансеров на тему hid, ардуино, клавиатура, джойстики тут, на этом ресурсе? Если есть контакты удачной работы поделитесь пожалуйста. Спасибо.
0
04.04.2018, 13:09
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.04.2018, 13:09
Помогаю со студенческими работами здесь

Телефон в качестве ПУ для Arduino
В общем, идея в том, чтобы использовать телефон в качестве ПУ для Arduino. Сам модуль Bluetooth еще...

Arduino nano в качестве блока зажигания
Здравствуйте, уважаемые форумчане. Я впервые держу в руках ардуинку, представление о том что она...

Android, Arduino
Здраствуйте, у меня появилась проблема с передачей данных с Android-а на Arduino через Bluetooth...

Android<-COM->Arduino
Необходимо программа под андроид, которая будет работать в фоне и запускать, закрывать, сворачивать...

Arduino + android
Здравствуйте! В ардуино коде есть цикл который записывает в serial монитор значение переменной i....

Arduino-Bluetooth-Android
Всем привет, помогите разобраться с передачей данных с arduino на android. Arduino передает 5 байт...

Arduino + Android плашет
есть arduino mega 2560, потом докупил USB Host shield для того чтоб связать ардуино с...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
34
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru