Bir USB seri cihaza nasıl bağlanabilirim?


13

Raspberry Pi'ye bağlamak istediğim bir USB seri port kablosu olan bir cihazım var. Bu USB'den seri kabloya yonga seti Prolific Technology, Inc.'den PL-2303

Python kullanarak bu cihazın seri bağlantısından verileri nasıl okuyabilirim?


1
İlginç soru. Bu USB kısmına yardımcı olabilir: raspberrypi.stackexchange.com/questions/258/…
Jivings

1
Bu iki soru mu? Özellikle, 'seri aygıtların sürücülerini nasıl kurabilirim?' ve 'Python içindeki bir seri cihaza nasıl bağlanabilirim?'. Sürücülerle ilgili soru bu sitede uzun olacaktır. Ancak, Python sorusu StackOverflow gibi bir siteye daha özgü olabilir. Linux tabanlı mimariden veya kurulum mekanizmasından bağımsız olarak Python'da seri bir cihazla iletişimin aynı olduğunu varsayabilirim.
RLH

Yerleşik seri bağlantı noktası (UART pinleri) ile bir USB seri bağlantı noktası arasında iletişim kurmak arasında bir fark olmamalıdır.
Alex Chamberlain

Bu sorular şöyledir: [Seriye PL2303 TTL için Configuration \ Litmus testi] ile nasıl başlayabilirim ( raspberrypi.stackexchange.com/questions/41553/… )? Donanım onaylandıktan sonra, daha sonra bir seri bağlantı noktasından çekme verilerine pyserial çalışan eğlendiresin
gatorback

Yanıtlar:


7

Python kullanarak bir seri cihazla konuşmak için, pyserial modülünü kullanın. Dağıtımınızda kullanılamıyorsa , kaynakın bir kopyasını pyserial proje sayfasından alıp "python setup.py install" komutunu çalıştırarak kurulabilir.

Kısa tanıtımda psikolojik kullanımın basit örnekleri mevcuttur .

PL-2303 modülü varsayılan olarak mevcuttur - GitHub deposuna bakın - cihazı taktığınızda cihazın ateşlendiğini görmelisiniz /var/log/messages. Bir Arduino'ya bağlandım ve iletişim bağlantı noktasında "yeni çalıştı" /dev/ttyUSB0(farklı cihaz, sürücü, yonga seti, vb. Böylece kilometreniz değişebilir ).


Cihazı bağladım ve şimdi / dev / ttyUSB0'ı görüyorum.
Swinders

Pyserial yüklü ve örnek miniterm kullanarak cihazdan veri görebilirsiniz :)
Swinders

4

PL-2303 iyi desteklenmektedir ve olarak görünecektir /dev/ttyUSBx. Sürücüye gerek yok. Herhangi bir normal seri bağlantı noktasında olduğu gibi okuyun. Python kullanmadım, ancak C ++ 'da engellemeyen modda () açıyorum, okunacak veri olup olmadığını görmek için () öğesini seçin ve sonra bir okuma () yapın.


4

PySerial'i indirin ( 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 kullanılabilirliğini hat ile kontrol edebilirsiniz

ls -ltr /dev|grep -i ttyUSB

Seri çıkışı görüntülemek için

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

Crtl + c'yi patlatmak için

Bu kodu bir testerial.py dosyası yapıştırın

#!/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

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.