Pi Zero as HID : USB를 통해 Pi Zero에서 PC 마우스를 제어하는 ​​방법?


10

며칠 동안 검색 한 후이 주제에 대해 명확한 것을 찾지 못했기 때문에 이것을 묻습니다. 질문이 이미 있으면 죄송합니다.

Raspberry Pi에서 PC 마우스를 제어하려는 재미를 위해 프로젝트를 진행하고 있습니다. 사용자 입력은 RP에 연결된 모든 종류의 하드웨어에 의해 수행 될 것입니다. 제 주요 의심은 USB를 통해 RP에서 PC로 이동 명령을 보내도록 제어하는 ​​방법에 관한 것입니다.

PC에서 USB 장치로 인식하기 위해 OTG 모드를 활성화해야한다는 것을 알고 있지만 USB를 통해 마우스 움직임을 PC로 보내고 Windows / Linux에서 이해할 수 있도록하는 방법은 모릅니다. "Linux-USB Gadget API Framework"가 존재하지만 사용에 대한 예가 없으며 실제로 이것이 최선의 접근 방법인지 알 수 없습니다.

저를 도울 단서 나 자료를 제공해 주시겠습니까?

대단히 감사합니다.

usb  pi-zero 

여기에 시작해야 할 곳이 있다고 생각합니다. kernel.org/doc/Documentation/usb/gadget_hid.txt 거기에 hid_gadget_test언급 된 프로그램이 있습니다. 파이는 없지만 편리하게 확인할 수 있습니다 apt-file search hid_gadget_test( apt install apt-file필요한 경우 먼저).
goldilocks

@goldilocks 아니오, 귀하의 링크는 거의 눈에 띄게 보입니다. 펜스의 오른쪽입니다. 반대편에는 다음과 같은 일반적인 HID 드라이버를 사용합니다usbkbd.ko
Dmitry Grigoryev

@goldilocks nah, Linux에서 "가제트"는 항상 호스트가 아닌 슬레이브로 실행됨을 의미합니다.
hobbs

@ hobbs 당신이 맞아요- g_ether이더넷 가제트로 0을 테 더링 할 때 어느 끝 이 사용 되는지 기억할 수 없기 때문에 두 번째로 추측했습니다 (그러나 슬레이브 쪽이지만 호스트 쪽 드라이버가 더 일반적입니다 usbnet).
goldilocks

답변:


5

g_hid@goldilocks에서 언급 한 모듈을 사용해보십시오 .

  1. 에 라인 dtoverlay=dwc2을 추가 config.txt하고 재부팅하십시오
  2. 드라이버 드라이버를 modprobe g_hid
  3. 를 실행하십시오 hid_gadget_test /dev/hidg0 keyboard. 여기에 제공된 샘플 코드를 사용하여 프로그램을 먼저 빌드해야 할 수도 있습니다 .

사용자 정의 드라이버를 작성하지 않고 원하는 다른보다 유연한 방법은 gadgetfs 를 사용하는 입니다. 이 접근법을 사용하여 작은 ARM 컴퓨터를 USB / Bluetooth 키보드 / 마우스 / 게임 패드로 바꾸는 프로젝트 가 적어도 하나 있습니다.

불행히도 Rapsberry Pi의 gadgetfs 상태는 확실하지 않습니다. 이 스레드 는 작동하지 않는다고 제안하지만 작성자가 정확히 무엇을 시도했는지는 확실하지 않습니다. 그럼에도 불구하고 시도해 볼 것을 제안합니다.

  1. 에 라인 dtoverlay=dwc2을 추가 config.txt하고 재부팅하십시오
  2. 가제트 FS 드라이버를 modprobe gadgetfs
  3. 사용자 공간 파일 시스템을 마운트 mkdir /dev/gadget; mount -t gadgetfs none /dev/gadget/

이 시점에서 오류를 얻을 수없는 경우에는 같은 gadgetfs 라이브러리를 사용 할 수 있습니다 이 하나의 사용자 정의 USB 디바이스를 프로그램 할 수 있습니다.


1
대답 해 주셔서 감사합니다! 두 가지 방법을 모두 시도하고 최대한 빨리 알려 드리겠습니다.

1
@Desproposito이 작업을 해 본 적이 있습니까? 업데이트를 좋아합니다
Sirens

@Sirens, 죄송합니다. 구입하지 못했습니다 :(하지만 다른 방법을 시도 할 시간이

@Desproposito 정확히 작동하지 못한 것을 말할 수 있습니까? 당신은 할 수 있었다 modprobe드라이버? 당신은 마운트 할 수 gadgetfs있습니까? 빌드하고 실행할 수 hid_gadget_test있습니까?
Dmitry Grigoryev
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.