Подключение USB мыши к Arduino UNO

Тема в разделе "Arduino & Shields", создана пользователем Hadgehogs, 13 сен 2019.

  1. Hadgehogs

    Hadgehogs Нуб

    День добрый.
    Сделал все аналогично теме:
    http://wiki.amperka.ru/projects:keylogger

    Судя по чипсету Iskra Mini и Arduino UNO - братья, по крайней мере v-USB
    у меня нормально скомпилировалось, одна на этом успехи закончились.

    К USB=разъему, который воткнут в Arduino:
    1) Черный - GRND
    2) Красный - 5+
    3) Зеленый - DPIN2
    4) Белый - DPIN4
    подключались:
    1) USB -клавиатура
    2) USB - мышь
    3) USB - сканер штрихкода
    с нулевым эффектом.
    У мыши не загорается лазер, у клавиатуры - LED-ы, у сканера - загорается индикация, но не идет сканирование.
    Никаких событий от всех устройств не приходит, по ощущениям, V-USB просто не инициирует устройства.

    Некоторые моменты. Клавиатура - составная, в ней есть разьем для USB. Сканер при сканировании - издает ошибочный писк. Мышь - просто не реагирует.

    Был и другой опыт. К Arduino подключался USB Shild v3.0 и через библиотеку USB_Host_Shield_Library_2.0 мне удавалось подключить мышь, она ловила события. Но только мышь, все остальное также было мертво. Клавиатура выдавала ошибку 5 на этапе SetProtocol в hidboot.h (знать бы расшифровку этого кода, на USB.org не нашел), сканер никаких ошибок не выдавал, но и не сканировал (не слал данные).

    В USB_Host_Shield_Library_2.0 инициация клавы и мыши отличается:
    USB_HID_PROTOCOL_MOUSE
    USB_HID_PROTOCOL_KEYBOARD

    может и в v-usb тоже в usbconfig.h надо что то поправить.

    Помогите мне пожалуйста.
     
  2. akl

    akl Гуру

    чет я там не вижу где это прерывание обрабатывается, настраивается и вообще.
     
  3. ZAZ-965

    ZAZ-965 Гуру

    @Hadgehogs, V-USB реализует только USB device протокол.
     
  4. Hadgehogs

    Hadgehogs Нуб

    Почему же у автора получилось? Его клава смогла в ps/2 ?
     
  5. Hadgehogs

    Hadgehogs Нуб

    Смущает опция usbconfig.h в V-USB
    #define USB_CFG_INTERFACE_CLASS 0x03 /* HID */ /* define class here if not at device level */
    #define USB_CFG_INTERFACE_SUBCLASS 0
    #define USB_CFG_INTERFACE_PROTOCOL 0
    /* See USB specification if you want to conform to an existing device class or
    * protocol. The following classes must be set at interface level:
    * HID class is 3, no subclass and protocol required (but may be useful!)
    * CDC class is 2, use subclass 2 and protocol 1 for ACM
    */

    За что она отвечает и почему стоит значение 3 по дефолту?
     
  6. DetSimen

    DetSimen Спамовредитель Модератор

    а как соотносятся USB и PS/2?
     
  7. Hadgehogs

    Hadgehogs Нуб

    USB клава, в которой есть режим совместимости PS/2, если ее воткнуть в PS/2 через физический переходник - понимает это и работает как PS/2, не требуя инициации. Только таких и нет уже.
     
  8. Hadgehogs

    Hadgehogs Нуб

    Я тоже не увидел, но я доверился автору и допустил, что
    CurWritePos- зарезервированная глобальная переменная V-USB
     
  9. ZAZ-965

    ZAZ-965 Гуру

    Потому, что в примере с клавиатурным шпионом в качестве USB host выступает компьютер, а V-USB эмулятор клавиатуры тупо включен в разрыв основной USB клавиатуры. Возможно вам попадались поддельные USB хабы, где запараллеленны 4 гнезда - при некоторых условиях в нем даже работаю два устройства.
     
    arkadyf нравится это.
  10. Hadgehogs

    Hadgehogs Нуб

    Точно! И инициирует клаву сам комп, а мы лишь параллельно снимаем данные. Вот я глупень.
    Спасибо большое.