Может ли хост USB 3 быть запрограммирован как периферия USB 3 (или HID клавиатура)? - PullRequest
0 голосов
/ 19 апреля 2020

Что я хочу сделать:

Программа ИИ на хост-машине, считывающая входные данные с камеры, чувствительной к экрану целевой машины, и вывод управляющих сигналов на целевую машину через USB соединение - программирование USB-хоста хост-компьютера как периферийного USB-устройства, подключенного к целевому компьютеру.

Что я хочу сделать шаг за шагом: (возможно ли выполнить шаги, описанные ниже? )

  1. Имеют хост-компьютер A и целевой компьютер B.
  2. Соедините A и B с помощью кабеля USB 3.0 типа A "папа-мужчина".
  3. USB-подключение отображается как устройство HID с клавиатурой на B.
  4. Записать код для имитации нажатия клавиш на A, который отправляет на B.
    (Например, при вызове press('F') в программе, работающей на A, будет напечатано F на вход B)
  5. Для этого не нужно устанавливать никаких программ на B.

Что я уже искал:

  1. USB 3.0 Возможно подключение хоста к хосту: https://superuser.com/questions/795053/how-do-i-connect-two-computers-using-usb-3-0

  2. USB 2.0 Соединение между хостом и хостом невозможно: https://superuser.com/questions/99274/how-to-connect-two-computers-with-usb

  3. Подобные вопросы задаются без предположения, что соединение USB 3.0 между хостом возможно:

1 Ответ

1 голос
/ 20 апреля 2020

Предложения в порядке возрастания выполнимости:

Гаджеты USB

Вы используете linux, поэтому по умолчанию можно создать / настроить / загрузить драйвер гаджета. Посмотрите на этот урок , хотя для малины он должен работать и на вашем P C. Однако я не смог найти никакой информации об использовании USB3 - в этом руководстве предполагается, что ваш хост использует один из своих портов OTG, которого, скорее всего, нет у вашего P C. Так что, работает ли это с вашим соединением USB3.1 Type-to-Type-A, вам нужно проверить.

USBIP

Идея совместного использования USB-устройств (не только клавиатур) не совсем новый . С помощью USBIP вы можете «экспортировать» любое локальное USB-устройство в сеть, и вашему клиенту потребуется клиентский USBIP-драйвер для доступа к клавиатуре.

Не беспокойтесь о USB вообще, просто используйте Ethe rnet

Я бы просто написал два пользовательских скрипта / программы, которые отправляют / получают + выполняют нажатия клавиш. Очень легко реализовать, вы, вероятно, в любом случае знакомы с python.


Если у вас совершенно не установлено программное обеспечение на клиенте - P C и ваш Type- C -to-Type- C соединение не поддерживает USB-гаджеты, есть другой способ. В основном это предполагает использование двух адаптеров USB-to-serial (~ 15 $) и последовательного кабеля. Хотя это не будет перечисляться как клавиатура, а скорее как последовательный порт, это решение с минимальными усилиями для передачи данных без дополнительного программного обеспечения на клиенте. Оба компьютера будут просто выполнять файловый ввод / вывод. Если на ваших компьютерах все еще есть COM-порты, вы даже можете опустить последовательные преобразователи!

...