Come posso collegarmi a un dispositivo seriale USB?


12

Ho un dispositivo con un cavo per porta seriale USB che vorrei collegare al mio Raspberry Pi. Il chipset per questo cavo da USB a seriale è il PL-2303 di Prolific Technology, Inc.

Come posso leggere i dati dalla connessione seriale di questo dispositivo usando Python?


1
Domanda interessante. Questo potrebbe aiutare con la parte USB: raspberrypi.stackexchange.com/questions/258/…
Jivings,

1
Sono queste due domande? In particolare, "come posso installare i driver per i dispositivi seriali?" e "come posso collegarmi a un dispositivo seriale in Python?". La domanda relativa ai conducenti sarebbe lunga su questo sito. Tuttavia, la domanda Python potrebbe essere più specifica per un sito come StackOverflow. Suppongo che comunicare con un dispositivo seriale su Python sia lo stesso, indipendentemente dall'architettura basata su Linux o dal meccanismo di installazione.
RLH,

Non ci dovrebbero essere differenze tra la comunicazione con la porta seriale integrata (pin UART) e una porta seriale USB.
Alex Chamberlain,

Questa domanda dice: come posso iniziare con [Configurazione \ Tornasole per PL2303 da TTL a seriale] ( raspberrypi.stackexchange.com/questions/41553/… )? Una volta che l'hardware è confermato, allora si può divertire a eseguire pyserial per estrarre i dati dalla porta seriale
gatorback

Risposte:


7

Per parlare con un dispositivo seriale utilizzando Python, utilizzare il modulo pyserial. Se non è disponibile nella tua distribuzione, può essere installato ottenendo una copia del sorgente dalla pagina del progetto pyserial ed eseguendo "python setup.py install"

Semplici esempi di utilizzo di pyserial sono disponibili nella breve introduzione .

Il modulo per PL-2303 è disponibile per impostazione predefinita - consultare il repository GitHub del firmware - quando si collega il dispositivo, si dovrebbe vedere accendersi /var/log/messages. Mi sono collegato ad un Arduino e quello "ha funzionato" sulla porta di comunicazione /dev/ttyUSB0(dispositivo diverso, driver, chipset, ecc., Quindi il tuo chilometraggio può variare ).


Collegato il dispositivo e ora vedo / dev / ttyUSB0, quindi sembra che ci siano buone probabilità che "funzioni".
Swinders,

Con pyserial installato e usando l'esempio miniterm posso vedere i dati dal dispositivo :)
Swinders

4

Il PL-2303 è ben supportato e apparirà come /dev/ttyUSBx. Non sono necessari driver. Leggilo come faresti con qualsiasi normale porta seriale. Non ho usato Python, ma in C ++ lo apro () in modalità non bloccante, seleziono () per vedere se ci sono dati da leggere, quindi eseguo read ().


4

Scarica 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

Puoi verificare la disponibilità di ttyUSB con la linea

ls -ltr /dev|grep -i ttyUSB

Per visualizzare l'uscita seriale usare

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

Per scoppiare crtl + c

Crea un file testserial.py incolla questo codice

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

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.