mit pyserial auf USB Port zugreifen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
egon11
User
Beiträge: 354
Registriert: Mittwoch 14. Dezember 2016, 20:59

Hallo, ich habe ein USB Relais, wie hier https://www.amazon.de/ARCELI-SRD-05VDC- ... 146&sr=8-4 (hoffe der Link ist erlaubt).

Den habe ich bis jetzt mit fertigen Python Scripten und aus dem Internet gesteuert. Allerdings mit Python2 :? :roll:

Jetzt bin ich auf die Idee gekommen, es mal mit dem Modul "pySerial" zu versuchen.
Würde das gehen wenn ich pySerial installiere und mit meinen eigenen Script auf das Modul pySerial zugreife?
Benutzeravatar
__blackjack__
User
Beiträge: 13117
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@egon11: Wie machen die Python 2-Module das denn? Ist ja nicht so das Python 3 jetzt eine komplett andere Programmiersprache wäre.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
egon11
User
Beiträge: 354
Registriert: Mittwoch 14. Dezember 2016, 20:59

Ich dachte man kann mit "pySerial" etwas zaubern.


Ich bekomme bei python3 immer die Fehlermeldung

Code: Alles auswählen

AttributeError: module 'hid' has no attribute 'device'
.

Installiert habe ich noch:

Code: Alles auswählen

python3 -m pip install --upgrade setuptools

sudo apt-get install python3-dev libusb-1.0-0-dev libudev-dev

python3 -m pip install hidapi
Benutzeravatar
__blackjack__
User
Beiträge: 13117
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@egon11: Warum dachtest Du das? Wird das Relais denn über eine serielle Schnittstelle angesprochen? DasDu `libusb` und `hidapi` installieren musst, spricht ja irgendwie schon dagegen. Wie kommst Du da also drauf?

Und die Fehlermeldung kann ich nicht nachvollziehen. Nach der Installation von `hidapi`:

Code: Alles auswählen

In [191]: import hid                                                            

In [192]: hid.device                                                            
Out[192]: hid.device
Du hast da eventuell ein anderes `hid`-Modul das davor im Importpfad liegt‽
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
egon11
User
Beiträge: 354
Registriert: Mittwoch 14. Dezember 2016, 20:59

Ich habe jetzt das ganze "hidapi" nochmal deinstalliert und nochmal neu installiert, jetzt funktioniert es.

Ist es besser wenn man die `pip` Module ins home Verzeichnis installiert oder ins system?
Also mit oder ohne sudo?


Und gibt es noch andere Varianten (Module) womit man USB Karten über Python ansprechen kann?
Benutzeravatar
__blackjack__
User
Beiträge: 13117
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@egon11: Andere Varianten als was? Direkt USB mit einer Anbindung an `libusb`, aber es gibt ja diverse USB-Protokolle für die das Betriebssystem allgemeine Treiber hat. Beispielsweise wenn sich das USB-Gerät als Eingabegerät wie Tastatur oder Maus, als Massenspeicher, oder als serielle Schnittstelle ansprechen lässt.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
egon11
User
Beiträge: 354
Registriert: Mittwoch 14. Dezember 2016, 20:59

ok vielen dank.
egon11
User
Beiträge: 354
Registriert: Mittwoch 14. Dezember 2016, 20:59

Hallo, ich meinte oben nicht 'pySerial' , sonder 'pyUSB'.
Mit 'pyUSB' kann man jede USB Schnittelle ansprechen oder?
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Ja, aber das kann beliebig kompliziert werden. Da musst du das Gerät und dessen Protokoll schon gut kennen.
Antworten