HID olarak Pi Zero: Pi Zero'dan USB ile PC Mouse nasıl kontrol edilir?


11

Bunu soruyorum çünkü günler aradıktan sonra bu konuda net bir şey bulamadım. Yani, soru zaten varsa üzgünüm.

PC faresini Raspberry Pi'den kontrol etmek istediğim, sadece eğlence için bir projede çalışıyorum. Kullanıcı girişi RP'ye bağlı herhangi bir donanım tarafından yapılacaktır, asıl şüphe, hareket talimatlarını RP'den USB'ye PC'ye göndermek için nasıl kontrol edileceğidir.

Bilgisayarın bir USB cihazı olarak tanınmasını sağlamak için OTG modunu etkinleştirmem gerektiğini biliyorum, ancak fare hareketlerini USB üzerinden PC'ye nasıl göndereceğimi ve Windows / Linux'un bunu anlamasını sağladığım hakkında hiçbir fikrim yok. "Linux-USB Gadget API Framework" 'ün var olduğunu gördüm, ancak kullanmakla ilgili bir örnek yok ve aslında en iyi yaklaşım olup olmadığını bilmiyorum.

Lütfen bana yardımcı olacak bazı ipuçları veya kaynaklar verebilir misiniz?

Çok teşekkür ederim.

usb  pi-zero 

Başlamak için bir yer, sanırım: kernel.org/doc/Documentation/usb/gadget_hid.txt Burada hid_gadget_testbahsedilen bir program var, kullanışlı bir pi'm yok ama kontrol edebilirsiniz apt-file search hid_gadget_test(ve apt install apt-fileönce gerekirse).
goldilocks

@ goldilocks Hayır, bağlantınız hemen hemen yerinde görünüyor, kesinlikle çitin sağ tarafı. Diğer tarafta gibi düzenli HID sürücüleri canlıusbkbd.ko
Dmitry Grigoryev

@goldilocks nah, Linux'ta "gadget" her zaman ev sahibi değil köle olarak çalışmak anlamına gelir.
ocaklar

@hobbs Haklısın - İkinci olarak tahmin ettim çünkü g_ethersıfırın bir ethernet aygıtı olarak bağlandığından hangi ucun kullanıldığını hatırlayamıyordum (ancak köle tarafı, ana bilgisayar sürücüsü daha geneldir usbnet).
goldilocks

Yanıtlar:


6

g_hid@Goldilocks tarafından belirtilen modülü kullanmayı deneyin :

  1. İçin bir satır dtoverlay=dwc2ekleyin config.txtve yeniden başlatın
  2. Sürücü sürücüsünü modprobe g_hid
  3. Koş hid_gadget_test /dev/hidg0 keyboard. Burada verilen örnek kodu kullanarak önce programı oluşturmanız gerekebilir .

İstediğinizi elde etmenin başka bir daha esnek yolu (özel sürücüler yazmadan) gadgetfs kullanmaktır . Bu yaklaşımı kullanarak küçük bir ARM bilgisayarını USB / Bluetooth klavye / fare / gamepad'e dönüştüren en az bir proje biliyorum .

Ne yazık ki, Rapsberry Pi'deki gadgetf'lerin durumu belirsiz. Bu konu işe yaramadığını öne sürüyor, ancak yazarın tam olarak ne yapmaya çalıştığı belli değil. Yine de denemenizi öneririm:

  1. İçin bir satır dtoverlay=dwc2ekleyin config.txtve yeniden başlatın
  2. Gadget FS sürücüsünü modprobe gadgetfs
  3. Kullanıcı alanı dosya sistemini mkdir /dev/gadget; mount -t gadgetfs none /dev/gadget/

Bu noktada hata almazsanız , özel USB aygıtlarınızı programlamak için bunun gibi gadgetfs kitaplıklarını kullanabilirsiniz .


1
Cevabınız için çok teşekkür ederim! Her iki yolu deneyeceğim ve mümkün olan en kısa sürede size haber vereceğim.

1
@Desproposito Hiç çalıştınız mı? Bir güncellemeyi isterdim
Sirens

@Sirens, üzgünüm, satın alamadım :( Ama başka bir yolu denemek için zamanım olduğunda başka bir yaklaşım deneyeceğim.

@Desproposito Tam olarak neyin işe yaramadığını söyleyebilir misiniz? modprobeSürücülere ulaşabildiniz mi? Binebilir misin gadgetfs? İnşa edip kaçabilir misin hid_gadget_test?
Dmitry Grigoryev
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.