मैं USB सीरियल डिवाइस से कैसे जुड़ सकता हूं?


12

मेरे पास USB सीरियल पोर्ट केबल वाला एक उपकरण है जिसे मैं अपने रास्पबेरी पाई से जोड़ना चाहूंगा। इस USB के लिए चिपसेट सीरियल केबल के लिए यह प्रोलिफिक टेक्नोलॉजी, इंक से PL-2303 है।

मैं पायथन का उपयोग करके इस डिवाइस के सीरियल कनेक्शन से डेटा कैसे पढ़ सकता हूं?


1
दिलचस्प सवाल। यह USB भाग के साथ मदद कर सकता है: raspberrypi.stackexchange.com/questions/258/…
Jivings

1
क्या यह दो सवाल हैं? विशेष रूप से, 'मैं धारावाहिक उपकरणों के लिए ड्राइवरों को कैसे स्थापित कर सकता हूं?' और 'मैं पायथन के भीतर एक सीरियल डिवाइस से कैसे जुड़ सकता हूं?'। इस साइट पर ड्राइवरों के संबंध में प्रश्न लंबा होगा। हालाँकि, Python सवाल StackOverflow जैसी साइट के लिए अधिक विशिष्ट हो सकता है। मुझे लगता है कि पायथन पर एक सीरियल डिवाइस के साथ संचार करना एक समान होगा, चाहे लिनक्स आधारित आर्किटेक्चर या इंस्टॉल तंत्र की परवाह किए बिना।
RLH

ऑन-बोर्ड सीरियल पोर्ट (UART पिन) और USB सीरियल पोर्ट के साथ संचार करने में कोई अंतर नहीं होना चाहिए।
एलेक्स चेम्बरलेन

यह प्रश्न पढ़ता है: मैं PL2303 TTL से सीरियल के लिए [कॉन्फ़िगरेशन \ लिटमस टेस्ट] ( raspberrypi.stackexchange.com/questions/41553/… ) के साथ कैसे शुरू कर सकता हूं ? एक बार जब हार्डवेयर की पुष्टि हो जाती है, तो कोई सीरियल पोर्ट से डेटा खींचने के लिए चलने वाले पीयर्सियल का मनोरंजन कर सकता है
गेटोरैक

जवाबों:


7

पायथन का उपयोग करते हुए एक सीरियल डिवाइस से बात करने के लिए, पीयर्सियल मॉड्यूल का उपयोग करें। यदि यह आपके वितरण में उपलब्ध नहीं है, तो इसे pyserial प्रोजेक्ट पृष्ठ से स्रोत की एक प्रति प्राप्त करके और "python setup.py install" चलाकर स्थापित किया जा सकता है

पाइसेरियाल का उपयोग करने के सरल उदाहरण लघु परिचय में उपलब्ध हैं ।

PL-2303 के लिए मॉड्यूल डिफ़ॉल्ट रूप से उपलब्ध है - फर्मवेयर GitHub रिपॉजिटरी देखें - जब आप डिवाइस को प्लग करते हैं, तो आपको इसे आग लगना चाहिए /var/log/messages। मैं एक Arduino से जुड़ा हुआ हूं, और यह कि संचार पोर्ट /dev/ttyUSB0(विभिन्न डिवाइस, ड्राइवर, चिपसेट आदि ) पर "बस काम किया" , ताकि आपका माइलेज अलग-अलग हो सके )।


डिवाइस कनेक्टेड है और मैं अब देखता हूं / dev / ttyUSB0 तो ऐसा लगता है कि एक अच्छा मौका है, यह "बस काम" करेगा।
स्विंडर

Pyserial के साथ स्थापित और उदाहरण के मिनीटर्म का उपयोग करके मैं डिवाइस से डेटा देख सकता हूं :)
Swenders

4

PL-2303 अच्छी तरह से समर्थित है, और यह दिखाई देगा /dev/ttyUSBx। किसी ड्राइवर की जरूरत नहीं है। इसे किसी भी सामान्य सीरियल पोर्ट के रूप में पढ़ें। मैंने पायथन का उपयोग नहीं किया है, लेकिन C ++ में, मैं इसे गैर-अवरोधक मोड में खोलता हूं, यह देखने के लिए चयन करता हूं कि क्या डेटा पढ़ना है, और फिर रीड () करें।


4

डाउनलोड pySerial ( https://pypi.python.org/pypi/pyserial )

wget http://pypi.python.org/packages/source/p/pyserial/pyserial-2.7.tar.gz?raw=true -O pyserial-2.7.tar.gz
tar -xzf pyserial-2.7.tar.gz
cd pyserial-2.7
sudo python setup.py install

आप लाइन से ttyUSB उपलब्धता की जांच कर सकते हैं

ls -ltr /dev|grep -i ttyUSB

सीरियल आउटपुट का उपयोग देखने के लिए

tail -f /dev/ttyUSB<NUMBER FROM ABOVE>

Crtl + c को तोड़ने के लिए

इस कोड को एक testserial.py फ़ाइल पेस्ट बनाएँ

#!/usr/bin/python
from time import sleep
import serial

# Establish the connection on a specific port
ser = serial.Serial('/dev/ttyUSB0', 9600) 

x = 1 while True:
       print ser.readline() # Read the newest output 
       x += 1

-3

उस के लिए महान ट्यूटोरियल:

http://www.digitalmihailo.com/post/usb-programming-with-python-on-linux

जानकारी का एक मूल्यवान स्रोत है http://www.lvr.com/usbc.htm कम्प्लीट


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