Комментарии 35
А почему с андроида сразу на десктоп не идти? Зачем эта прослойка?
У андроида возможность эмуляции им Bluetooth HID устройства в большинстве случаев не включена в ядро.
Я скорее про всякие KDEConnect и прочие альтернативы, где на пк поднимается сервак, а андроид является к нему вьюшкой.
Это выглядит страшно криво. Уж лучше как тут — отдельной железкой, хотя мне кажется, что железка могла бы быть сильно менее крутой.
Не знаю, как это выглядит, но работает это прям хорошо + кроме "тачпада" еще куча всего есть - от управления плеером (с автопаузой при звонке) до всплывания уведомлений со смартфона на компьютере.
Отдельное устройство, у которого на выходе тупой hid - явный перерасход ресурсов
Да нет там никакой вьюхи, просто весь тачскрин используется как тачпад. Иногда лагает, но в целом норм.
KDEC is not vnc.
На счет HID в ядре не скажу, но давно пользуюсь Serverless Bluetooth Keyboard на всех телефонах (от 8 до 10 Андроида).
Отлично работает даже на другом телефоне (когда один телефон становится мышкой\клавиатурой для другого). Умеет быть аэромышкой.
Не бросайте свое хобби, тк конкурента у данной программы нормального не нашел, вдруг у вас получится что то лучше :)
Я тоже согласен. Вопрос должен решаться программно. Возможно с помощью доп. драйвера на самом ПК, но аппаратный огород тут совершенно лишний.
Зато это решение будет работать даже если нет возможности установить что-либо на ПК, например на корпоративный комп, где по умолчанию кроме мыши ничего подключить и не выйдет. Хотя смарт в роли тачпада смотрится как из пушки по воробьям
И вот вы приходите на работу с ланчбоксом полным ардуин и блютуз модулей, объясняя всё это тем, что вам очень надо сделать беспроводной тачпад из смартфона.
Звучит сомнительно
Я по своей работе сужу. Примерно так и приходится поступать.это не сомнительно звучит, это звучит глупо(давайте уж своими словами называть, к чему эти эвфемизмы), но ведь никто и не обещал, что корпоративные правила будут умными (даже если их пишут умные люди, что к сожалению тоже далеко не всегда)
Статья огонь, автор молодец, но:
Программно, не всякий программист со стажем решит, а здесь на любителей расчет. Это первое. Второе, основная цель была была показать принцип работы HID в ардуино, а не сделать беспроводной ТАЧПАД для компьютера.
Управлять с андроида десктопом уже, наверняка, много решений. Хотя когда мне понадобилось найти быстрое, простое и универсальное (linux, windows и так далее) мне не удалось. Всегда приходится повозиться.
Статья, скорее, об ардуинке и простых вещах для неё, может для детей что-то простое, интересное и быстрое в ней найдется.
На самом деле есть универсальное средство.
Android в более-менее современных версиях (начиная где-то с 6.0, начиная с ядра 3.18) имеет в ядре hid gadget по умолчанию, и его можно активировать при помощи https://github.com/tejado/android-usb-gadget и затем использовать при помощи https://github.com/pelya/android-keyboard-gadget/tree/master/remote-client (надо ещё перед запуском remote-client сделать setenforce 0, иначе приложение зависнет на открытии гаджета).
Работает в windows, linux и bios, проверено на смарте и планшетнике. Эмулируются клавиатура и мышь.
Работает по кабелю USB, драйвера не требуются.
Android в более-менее современных версиях (начиная где-то с 3.18) имеет в ядре hid gadget по умолчанию,
А точно имеет? Я где-то раз в год вспоминаю про вопрос 'как сделать так, чтобы мой KeePass на телефоне мог набрать пароль в форме на десктопе', в очередной раз ищу 'сделали ли уже так, чтобы телефон мог притворяться клавиатурой?' и нахожу только какие-то древние обсуждения этт hid gadged, где говорят, что нужно свое ядро компилять.
Мне кажется, эту возможность специально выпиливают, чтобы телефоны не стали средством атаки. Потому что с клавиатуры можно много чего набрать, если не руками это делать, включая бинарник-загрузчик зловреда.
Если верить https://github.com/pelya/android-keyboard-gadget/blob/master/README.md то точно:
For newer Kernel versions (>= 3.19) the patch is not anymore required and can be replaced by ConfigFS (USB Gadget Tool).
Но это уже задача со звездочкой, так и как эмуляция HID на atmega...
Всякие микро, клоны UNO и самоделки подключаются через примитивный мост. Да и программирование 16u2 уже не для любителей.
А если на плате FT232 или CR210x, то или человек достаточно опытный, или сам виноват :)
Но опять же, тут мы шьем уже не основной контроллер. Соответственно UNO в режиме HID использовать не выйдет
EDIT Виноват, придётся проводки на RX/TX наборот подключить, а в atmega8 или залить пустой скетч, или просто замкнуть reset на ground
Вы утверждали, что я писал о том, что исключительно leonardo можно подключить в режиме HID (хотя не только, можно еще DUE, к примеру), но прошив бутлодер моста 16u2, это все равно не UNO или любая ругая arduino. Так или иначе в оригинальной arduino у нас остается только leonardo и еще несколько вариантов. Вы все же забываете, что речь о любителях. А паять таки все равно придется, так или иначе блютуз надо подключать.
Serial1.begin(115200); // Настраиваем первый порт Serial1
Обратите внимание, что мы используем не Serial1, а Serial.
мне кажется или тут ошибка в одной из строк? и таки далее везде используется сериал1.
mess = Serial1.read(); // Пришедшее сообщение
if (_x) // Если пришло сообщение смещения по X
{
Mouse.move(mess, 0, 0); // Перемещаем указатель по оси X на пришедшее число
_x = false; // Обнуляем флаг префикса
}else if (_y) // Если пришло сообщение смещения по Y
{
Mouse.move(0, mess, 0); // Перемещаем указатель по оси Y на пришедшее число
_y = false; // Обнуляем флаг префикса
}else if (_w) // Если пришло сообщение прокрутки колеса
{
Mouse.move(0, 0, mess); // прокручиваем колесо на пришедшее число
_w = false; // Обнуляем флаг префикса
}
switch(mess){
case 120:
case 120: _x = true; break;// Если пришел префикс смещения по X
case 121: _y = true; break;// Если пришел префикс смещения по Y
case 122: _w = true; break;// Если пришел префикс колеса прокрутки
case 108: Mouse.click(MOUSE_LEFT); break;// Левый клик
case 114: Mouse.click(MOUSE_RIGHT);break;// Правый клик
}
Беспроводной тачпад из смартфона