Wie kann Arduino (Snap) auf die serielle Schnittstelle / dev / ttyUSB0 (oder / dev / ttyACM0) zugreifen?

8

Ich habe Ubuntu 18.04 LTS installiert.

Ich habe Arduino IDE v1.8.5 als Snap mit installiert

snap install arduino-mhall119

Ich habe meinen Benutzer zur Wählgruppe hinzugefügt und neu gestartet:

sudo usermod -a -G dialout $USER

$ groups 
username adm dialout cdrom sudo dip plugdev lpadmin sambashare

Ich habe mein Arduino Nano an den Laptop angeschlossen, es wird an Port / dev / ttyUSB0 ( ch341-uart ) erkannt .

$ ls /dev/ttyUSB0 -al
crw-rw---- 1 root dialout 188, 0 авг 13 11:59 /dev/ttyUSB0

Ich habe versucht, die einfachste Blink- Skizze hochzuladen und die folgenden Fehler im Terminal zu erhalten:

$ arduino-mhall119.arduino 


avrdude: ser_open(): can't open device "/dev/ttyUSB0": Permission denied  
Problem uploading to board.  See http://www.arduino.cc/en/Guide/Troubleshooting#upload for suggestions.**

Außerdem habe ich arduino1.8.5 mit umake installiert - es kann auf übliche Weise auf die serielle Schnittstelle zugreifen.

Hinweis: Wir haben hier bereits eine ähnliche Frage , aber die Lösung bestand darin, das Paket von zu verwendenumake und nicht für den Snap zu reparieren.

Meine Frage lautet also: Wie kann Arduino (Snap) auf die serielle Schnittstelle / dev / ttyUSB0 (oder / dev / ttyACM0) zugreifen?

Update: Die Verbindung der seriellen Schnittstelle zum Snap schlägt mit der folgenden Meldung fehl

$ snap connect arduino-mhall119:serial-port 
error: snap "core" has no "serial-port" interface slots

Aktuelle Schnittstellen sind:

$ snap interfaces | grep arduino
:home                            arduino-mhall119,gedit,organize-my-files,vlc
:network                         arduino-mhall119,gedit,organize-my-files,pulsemixer,vlc
:unity7                          arduino-mhall119,gedit,organize-my-files,vlc
:x11                             arduino-mhall119,organize-my-files,pulsemixer,vlc
-                                arduino-mhall119:serial-port

Das Ändern der Berechtigungen der seriellen Schnittstelle auf 777 mit sudo chmod 777 /dev/ttyUSB0hilft nicht.

Folgendes funktioniert auch nicht (aufgrund von Syntaxfehlern):

$ sudo snap connect arduino-mhall119:arduino
error: snap "arduino-mhall119" has no plug named "arduino"

$ snap connect arduino-mhall119:/dev/ttyUSB0
error: snap "arduino-mhall119" has no plug named "/dev/ttyUSB0"

$ snap connect arduino-mhall119
error: cannot resolve connection, plug snap name is empty

Informationen zum YAML-Manifest:

$ ls -l /snap/arduino-mhall119/current/meta/snap.yaml
-rw-r--r-- 1 root root 353 июл 28 00:20 /snap/arduino-mhall119/current/meta/snap.yaml

$ cat /snap/arduino-mhall119/current/meta/snap.yaml |grep -A 12 slots

$ cat /snap/arduino-mhall119/current/meta/snap.yaml |grep -A 5 plug
    plugs:
    - x11
    - unity7
    - home
    - network
    - serial-port
N0rbert
quelle

Antworten:

1

Der arduino-mhall119Snap ist veraltet und sollte nicht mehr verwendet werden. Verwenden Sie arduinostattdessen den Snap. ::

snap install arduino

Mit diesem Snap müssen Sie lediglich Ihren eigenen Benutzer zur dailoutGruppe hinzufügen :

sudo usermod -a -G dialout $USER

Starten Sie danach Ihr Gerät neu und öffnen Sie die Arduino IDE.

Merlijn Sebrechts
quelle
10

Aktualisierung 2020

Der arduino-mhall119Snap ist veraltet und sollte nicht mehr verwendet werden. Verwenden Sie stattdessen den arduinoSnap .

In dieser Antwort finden Sie aktuelle Informationen dazu, wie Sie mit dem arduinoSnap seriell arbeiten können .

Alte Anweisungen

Installieren Sie den Snap im klassischen Modus, um den Zugriff auf Ports zu ermöglichen

$ snap install arduino-mhall119 --classic

So einfach ist das. Sie sollten jetzt Zugriff auf Ihre seriellen Schnittstellen haben! Viel Spaß beim Hacken!

Hinweis: Für das alte Arduino 1.6.10 werden die folgenden Informationen benötigt.



Einige interessante Links, die geholfen haben, die Antwort zu finden

Automatisch verbundene serielle Schnittstelle

Lundamar sagt: Bis das Gadget / die Schnittstelle für die serielle Schnittstelle verbessert ist, um Zugriff auf alle seriellen Systemgeräte zu erhalten, können Sie Ihren Snap zum Laufen bringen, indem Sie ihn einfach wie folgt installieren:

$ snap install tio --classic

Es ist besser als nichts, aber es wäre sicherlich am besten, es mit dem erlaubten Zugriff auf serielle tty-Geräte auszuführen.

Schnittstellen - serial-port

Referenz zu Schnittstellen :

serial-port
Kann auf serielle Schnittstellen zugreifen. Dies ist eingeschränkt, da es einen privilegierten Zugriff zum Konfigurieren der Hardware für die serielle Schnittstelle bietet. Beachten Sie, dass der Steckplatz durch einen Gadget-Snap implementiert werden soll (dies wird nicht durch den Core-Snap bereitgestellt).

Gadget mit Steckplatz für serielle Schnittstelle

Joshua Besneatte
quelle
Ihre Antwort wurde umfassender, sodass Sie alle Kommentare unter der Frage entfernen können. Vielen Dank für alles, was Sie helfen!
N0rbert
Vielen Dank. Ich hatte das gleiche Problem und Ihre Lösung hat bei mir funktioniert. Ich verstehe aber nicht. Vor ein paar Monaten funktionierte meine Arduino-IDE einwandfrei, ich habe nichts geändert, und jetzt habe ich nur 3 Stunden verschwendet, Berechtigungen zum ttyUSB0 hinzugefügt (die anfangs da waren), ich gehörte bereits zur Gruppenwahl, habe mehrere neu gestartet mal und betete immer und immer wieder. Und ein einfacher "- Klassiker" hat es gelöst. Ernsthaft Mann, wtf! Ich habe deine Antwort mehrmals gelesen, es ist Kauderwelsch für mich. Ich denke, die Installation der IDE über den Ubuntu Software Manager hätte sofort funktionieren sollen (wie zuvor).
ColdTuna
Nun, jetzt gibt es nicht den esp32 im Board Manager. Es fühlt sich wieder wie 1996 an.
ColdTuna
Egal, ich bin schon ein bisschen hirntot und habe vergessen, die esp32-URL dem Board Manager in den Einstellungen hinzuzufügen ... Nochmals vielen Dank für Ihre Lösung.
ColdTuna
Ich Warning: flag --classic ignored for strictly confined snap arduino-mhall119
Sebastian
1

Die Lösung von Joshua hat bei mir nicht mehr funktioniert, seit ich den Fehler bekommen habe:

Warning: flag --classic ignored for strictly confined snap arduino-mhall119

Bei Verwendung von devmode funktionierte es jedoch einwandfrei:

$ snap install arduino-mhall119 --devmode

Ich bin mir nicht sicher, ob es weitere Konsequenzen mit devmode gibt.

Sebastian
quelle