डेबियन / पायथन के साथ एक यूएसबी डिवाइस कैसे प्रोग्राम करें


29

पाई को मुख्य रूप से अजगर के लिए एक शैक्षिक उपकरण के रूप में प्रचारित किया जा रहा है। इनलाइन के साथ, पहले से ही पायथन से GPIO तक पहुंचने वाले लोगों के ऑनलाइन कुछ बेहतरीन उदाहरण हैं।

हालाँकि, अधिकांश ऑफ-द-शेल्फ (होम ब्रुफ़ के बजाय) बाह्य उपकरणों में USB इंटरफेस होते हैं। मानक डेबियन / पायथन कार्ड का उपयोग करके कोई इन तक कैसे पहुँच सकता है? क्या एक पायथन लाइब्रेरी उपलब्ध है, और एक अच्छा ट्यूटोरियल है?


1
मुझे लगता है कि यह और अधिक विशिष्ट होने की आवश्यकता है। आप USB के साथ वास्तव में क्या करने की कोशिश कर रहे हैं?
Jivings

यह एक बहुत अच्छा सवाल है, मैंने हमेशा सोचा है कि यूएसबी उपकरणों को कैसे बनाया जाए।
शेन हडसन

1
मेरे पास जो विशिष्ट एप्लिकेशन है, वह एक मॉडल रेलरोड डीसीसी नियंत्रक इंटरफ़ेस (जैसे कि डिजिट्रेक्स पीआर 3) तक पहुंचने के लिए एक जेएमआरआई प्रकार प्रणाली है। लेकिन यह इस साइट के लिए बहुत विशिष्ट है! सवाल निचले स्तर पर लक्षित है "मैं पायथन से यूएसबी पर किसी भी उपकरण से कैसे बात कर सकता हूं" - यह स्पष्ट रूप से माना जाता है कि प्रोग्रामर के पास उस डिवाइस के लिए प्रोटोकॉल दस्तावेज हैं जो वे प्रोग्राम करना चाहते हैं।
21

मैं इस प्रश्न को ध्यान से देखने जा रहा हूं। मैं दो स्पर्श पैनल डिस्प्ले को देख रहा हूं, दोनों सरल ASCII कमांड सेट और यूएसबी इंटरफेस के साथ, जिसे मैं रासपी के साथ आजमाना चाहता हूं।
रे डिप्यू

जवाबों:


11

USB दिल में सिर्फ एक सीरियल संचार उपकरण है। डेटा का संचार कैसे किया जाता है यह मानक है, लेकिन उस डेटा में डिवाइस निर्भर है। आपके नियंत्रक निर्माता ने एक एपीआई का आविष्कार किया होगा जिसमें 'ऐसा करें', या 'ऐसा हो रहा है' के आदेश और संदेश शामिल हैं

यदि आप इस एप को जानते हैं तो आपको संवाद करने में सक्षम होना चाहिए। संभवतः दो सहायक लिंक हैं

https://walac.github.io/pyusb/

https://web.archive.org/web/20130327005316/http://www.digitalmihailo.com/post/usb-programming-with-python-on-linux

जानकारी का एक मूल्यवान स्रोत USB पूर्ण है


धन्यवाद - हाँ यह उस तरह का स्तर है जो मैं अपने प्रश्न के लिए लक्ष्य कर रहा था। विशिष्ट बाह्य उपकरणों के लिए प्रोटोकॉल / उत्पाद एपीआई अन्य प्रश्न हैं, या विक्रेता के प्रलेखन के लिए एक मामला है।
जीत

2

बन्नी पगडंडी पर किसी और के लिए इसे यहाँ चखना कि मैं आज (अक्टूबर 5, 2014) था। नोट: यह बहुत अनुभवहीन PoV से है, इसलिए यह आप में से कई के लिए स्पष्ट हो सकता है, लेकिन यह मेरे लिए नहीं था और यह पता लगाने के लिए कुछ समय लगा।

मैं USB के माध्यम से एक रास्पबेरीपी बी + के लिए एक साधारण लेजर बारकोड स्कैनर को इंटरफ़ेस करने की कोशिश कर रहा हूं, वास्तव में लिनक्स / आरबीपीआई आदि के साथ कोई अनुभव नहीं है। आखिरकार Google खोज ने मुझे इस पृष्ठ पर लाया।

मुझे डेविड साइक्स द्वारा जून 15, 2012 को PyUSB संदर्भ के साथ दिए गए उत्तर का जवाब मिला और वहां से मैंने ADAFruit’s Installing Python & PyUSB को उनके Microsoft Kinect के हैकिंग के भाग के रूप में पाया ।

मुझे लगता है कि मैं इसके माध्यम से बहुत जल्दी मिल सकता था अगर यह सिर्फ मेरे पीसी पर होता। लेकिन रास्पबेरीपी के माध्यम से ऐसा करना वास्तव में मुझे एक पाश के लिए फेंक रहा था। यदि आप उस गाइड के माध्यम से पढ़ते हैं, तो आप उसी अवरोधक से टकराएंगे जो मैंने किया था जहाँ आप सामान डाउनलोड नहीं कर सकते हैं और आप केवल उन चीजों में मैश नहीं कर सकते हैं जो वे फाइलों के बिना कहते हैं। यदि आप उन्हें डाउनलोड नहीं कर सकते हैं तो आपको फाइलें कैसे मिलती हैं? [हो सकता है कि इन फ़ाइलों को डाउनलोड करने का एक तरीका हो, लेकिन मेरे पाई पर मुझे स्रोत फोर्ज पर एक त्रुटि 400 मिलती रही और मिडोरी टार या ज़िप फ़ाइलों को डाउनलोड नहीं करेगा।]

वालक के प्यूसबी को संदर्भित करते हुए , आप लिबासर्मल प्राप्त करने के लिए LXTerminal में पहले भाग में प्रवेश कर सकते हैं लेकिन फिर दी गई अगली कमांड मानती है कि आपके पास PyUSB के लिए फाइलें हैं और आप उन्हें निर्देशिका के माध्यम से ढूँढ सकते हैं।

तो यहाँ रास्पबेरीपी पर LibUSB और PyUSB स्थापित करने के लिए मेरे परिवर्तित कदम हैं:

LXTerminal में दर्ज आदेशों का क्रम:

sudo apt-get install python libusb-1.0

वाई के साथ पुष्टि करें

sudo apt-get install python-pip

फिर

sudo pip install --upgrade pyusb

नोट: इसमें से कुछ पहले से ही आपके RBPi पर हो सकता है, इस पर निर्भर करता है कि आपने इससे पहले क्या किया है, लेकिन कमांड्स को फिर से इसे चोट नहीं पहुंचेगी, यह बस मुझे बताया था कि फ़ाइल अद्यतित थी।

अंतिम कमांड "- अपग्रेड पाइबस" ने मुझे निम्नलिखित दिया:

Downloading/unpacking pyusb
Downloading pyusb-1.0.0b1.tar.gz (44Kb): 44Kb downloaded
Running setup.py egg_info for package pyusb

Installing collected packages: pyusb
Running setup.py install for pyusb

Successfully installed pyusb
Cleaning up...

इसलिए, मुझे लगता है कि अब यह सब अच्छा है और मैं अपने ट्यूटोरियल में वापस जा सकता हूं।

फिर से, मैं एक RaspberryPi B +, मानक NOOBS इनस्टॉल का उपयोग कर रहा हूँ .. मैंने ज्यादातर संदर्भित स्रोतों जैसे ADAFRUIT के LEARN सिस्टम को बनाया है जो ज्यादातर मॉडल B के साथ बनाया गया था, लेकिन मैंने अब तक जो कुछ भी किया है वह B + पर काम कर रहा है।

उम्मीद है कि वह जानकारी किसी और की मदद करेगी जो उसी बिंदु पर अटक गया है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.