Як я можу підключитися до послідовного USB-пристрою?


12

У мене є пристрій з USB-кабелем послідовного порту, який я хотів би підключити до свого Raspberry Pi. Чипсет цього USB для послідовного підключення до нього PL-2303 від Prolific Technology, Inc.

Як я можу прочитати дані з послідовного підключення цього пристрою за допомогою Python?


1
Цікаве запитання. Це може допомогти з USB частини: raspberrypi.stackexchange.com/questions/258 / ...
— Jivings

1
Це два питання? Зокрема, "як я можу встановити драйвери для послідовних пристроїв?" і "як я можу підключитися до послідовного пристрою в Python?". Питання щодо водіїв буде довго на цьому сайті. Однак питання Python може бути більш конкретним для такого сайту, як StackOverflow. Я б припустив, що спілкування з послідовним пристроєм на Python однакове, незалежно від архітектури на базі linux чи механізму встановлення.
— RLH

Не повинно бути різниці між спілкуванням із вбудованим послідовним портом (штифтами UART) та послідовним портом USB.
— Алекс Чемберлен

Ці питання свідчить: як почати роботу з [тест Configuration \ лакмусовим для PL2303 TTL до серійного] ( raspberrypi.stackexchange.com/questions/41553 / ... )? Як тільки апаратне забезпечення підтверджене, можна зайнятися запущеним пісеріалом, щоб витягнути дані з послідовного порту
— gatorback

Відповіді:


7

Для розмови з послідовним пристроєм за допомогою Python використовуйте модуль pyserial. Якщо він недоступний у вашому дистрибутиві, його можна встановити, отримавши копію джерела зі сторінки проекту pyserial та запустивши "python setup.py install"

Прості приклади використання pyserial доступні в короткому вступі .

Модуль для PL-2303 доступний за замовчуванням - дивіться прошивку GitHub-сховища - коли ви підключаєте пристрій, ви повинні побачити його /var/log/messages. Я підключився до Arduino, і він просто працював на порту зв'язку /dev/ttyUSB0(різний пристрій, драйвер, чіпсет тощо), тому ваш пробіг може відрізнятися ).


Підключив пристрій, і тепер я бачу / dev / ttyUSB0, тому схоже, що є хороший шанс, що він "просто запрацює".
— Шахраї

При встановленому пісеріалі та за допомогою прикладу miniterm я бачу дані з пристрою :)
— шахраї

4

PL-2303 добре підтримується, і він буде виглядати як /dev/ttyUSBx. Не потрібні драйвери. Прочитайте його, як і будь-який звичайний серійний порт. Я не використовував Python, але в 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 Complete


1
Хоча це теоретично може відповісти на питання, бажано було б сюди включити істотні частини відповіді та надати посилання для довідки. Також ваше друге посилання порушено.
— Стів Робіллард
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.