Pi Zero as HID: USB के माध्यम से Pi Zero से PC माउस को कैसे नियंत्रित करें?


10

मैं यह पूछ रहा हूं क्योंकि मुझे दिनों की खोज के बाद इस विषय में कुछ भी स्पष्ट नहीं मिला है। यदि प्रश्न पहले से मौजूद है तो मुझे खेद है।

मैं एक परियोजना में काम कर रहा हूं, सिर्फ मनोरंजन के लिए, जहां मैं रास्पबेरी पाई से पीसी माउस को नियंत्रित करना चाहता हूं। उपयोगकर्ता इनपुट आरपी से जुड़े किसी भी प्रकार के हार्डवेयर द्वारा किया जाएगा, मेरा मुख्य संदेह यह है कि यूएसबी के माध्यम से आरपी से पीसी को आंदोलन निर्देश भेजने के लिए कैसे नियंत्रित किया जाए।

मुझे पता है कि पीसी को यूएसबी डिवाइस के रूप में पहचान दिलाने के लिए मुझे ओटीजी मोड को सक्षम करना होगा, लेकिन मुझे इस बारे में कोई जानकारी नहीं है कि यूएसबी के माध्यम से पीसी में माउस की मूवमेंट कैसे भेजें और विंडोज / लिनक्स को समझें। मैंने पाया कि "लिनक्स-यूएसबी गैजेट एपीआई फ्रेमवर्क" मौजूद है, लेकिन इसका उपयोग करने के बारे में कोई उदाहरण नहीं है, और मैं वास्तव में नहीं जानता कि क्या यह सबसे अच्छा तरीका है।

क्या आप कृपया मेरी मदद करने के लिए मुझे कुछ सुराग या संसाधन दे सकते हैं?

आपका बहुत बहुत धन्यवाद।

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 नहीं, आपका लिंक बहुत अधिक स्पॉट-ऑन दिखता है, यह निश्चित रूप से बाड़ के दाईं ओर है। दूसरी तरफ नियमित HID ड्राइवर रहते हैं जैसेusbkbd.ko
दिमित्री ग्रिगोरिवे

@goldilocks नाह, लिनक्स में, "गैजेट" का अर्थ हमेशा दास के रूप में चलता है, मेजबान नहीं।
hobbs

@ होब्स आप सही कह रहे हैं - मैंने दूसरा अनुमान लगाया क्योंकि मुझे याद नहीं g_etherहै कि एक एथरनेट गैजेट के रूप में शून्य का उपयोग करते समय कौन से छोर का उपयोग किया जाता है (लेकिन यह दास पक्ष है, मेजबान पक्ष चालक अधिक सामान्य है usbnet)।
गोल्डीलॉक्स

जवाबों:


5

g_hid@Goldilocks द्वारा उल्लिखित मॉड्यूल का उपयोग करने का प्रयास करें :

  1. dtoverlay=dwc2अपने लिए एक लाइन जोड़ें config.txtऔर रिबूट करें
  2. चालक चालक के साथ डालें modprobe g_hid
  3. भागो hid_gadget_test /dev/hidg0 keyboardयहां दिए गए नमूना कोड का उपयोग करके आपको पहले कार्यक्रम का निर्माण करना पड़ सकता है

एक और अधिक लचीला तरीका है कि आप चाहते हैं (कस्टम ड्राइवरों को लिखने के बिना) गैजेट के उपयोग के लिए । मैं कम से कम एक परियोजना को जानता हूं जिसने इस दृष्टिकोण का उपयोग करके एक छोटे एआरएम कंप्यूटर को यूएसबी / ब्लूटूथ कीबोर्ड / माउस / गेमपैड में बदल दिया।

दुर्भाग्य से, Rapsberry Pi पर गैजेट की स्थिति अनिश्चित है। यह सूत्र बताता है कि यह काम नहीं करता है, लेकिन यह स्पष्ट नहीं है कि लेखक ने वास्तव में क्या करने की कोशिश की थी। मैं इसे फिर भी आज़माना चाहूँगा:

  1. dtoverlay=dwc2अपने लिए एक लाइन जोड़ें config.txtऔर रिबूट करें
  2. गैजेट FS ड्राइवर के साथ डालें modprobe gadgetfs
  3. के साथ यूजरस्पेस फाइल सिस्टम माउंट करें mkdir /dev/gadget; mount -t gadgetfs none /dev/gadget/

यदि आपको इस समय कोई त्रुटि नहीं मिलती है, तो आप अपने कस्टम USB उपकरणों को प्रोग्राम करने के लिए इस तरह गैजेटफोर्स लाइब्रेरी का उपयोग कर पाएंगे ।


1
उत्तर देने के लिए आपका धन्यवाद! मैं दोनों तरह से कोशिश करूंगा और आपको जल्द से जल्द बता दूंगा।

1
@Desproposito क्या आपको कभी यह काम मिला? मैं एक अद्यतन में खुशी होगी
सायरन

@ सायरन, मुझे क्षमा करें, खरीदें मैं इसे काम नहीं कर पाया :( लेकिन मैं एक और तरीका

@Desproposito क्या आप बता सकते हैं कि वास्तव में आप क्या काम नहीं कर सकते हैं? क्या आप modprobeड्राइवरों के लिए सक्षम थे ? क्या आप माउंट कर सकते हैं gadgetfs? क्या आप निर्माण और भाग सकते हैं hid_gadget_test?
दिमित्री ग्रिगोरीव
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.