Ich erhalte diesen Fehler, wenn ich versuche, über eine serielle USB-Verbindung eine Verbindung zu einem Arduino herzustellen. Ich verwende die Arduino IDE 1.0.1 und die 64-Bit-Version von Ubuntu 12.04. Dies ist seit 10.04 ein wiederkehrendes Problem und tritt bei einigen anderen Programmen auf, die ebenfalls eine serielle Verbindung verwenden. Ich habe kein Problem damit, serielle Daten mit Python oder Screen vom Arduino abzurufen. Die Arduino IDE scheint ansonsten einwandfrei zu funktionieren.
processing.app.SerialException: Error opening serial port '/dev/ttyACM0'.
at processing.app.Serial.<init>(Serial.java:178)
at processing.app.Serial.<init>(Serial.java:92)
at processing.app.SerialMonitor.openSerialPort(SerialMonitor.java:207)
at processing.app.Editor.handleSerial(Editor.java:2447)
at processing.app.EditorToolbar.mousePressed(EditorToolbar.java:353)
at java.awt.Component.processMouseEvent(Component.java:6386)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3268)
at java.awt.Component.processEvent(Component.java:6154)
at java.awt.Container.processEvent(Container.java:2045)
at java.awt.Component.dispatchEventImpl(Component.java:4750)
at java.awt.Container.dispatchEventImpl(Container.java:2103)
at java.awt.Component.dispatchEvent(Component.java:4576)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4633)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4294)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4227)
at java.awt.Container.dispatchEventImpl(Container.java:2089)
at java.awt.Window.dispatchEventImpl(Window.java:2518)
at java.awt.Component.dispatchEvent(Component.java:4576)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:672)
at java.awt.EventQueue.access$400(EventQueue.java:96)
at java.awt.EventQueue$2.run(EventQueue.java:631)
at java.awt.EventQueue$2.run(EventQueue.java:629)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:105)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:116)
at java.awt.EventQueue$3.run(EventQueue.java:645)
at java.awt.EventQueue$3.run(EventQueue.java:643)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:105)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:642)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:275)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:200)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:190)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:185)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:177)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:138)
Caused by: gnu.io.UnsupportedCommOperationException: Invalid Parameter
at gnu.io.RXTXPort.setSerialPortParams(RXTXPort.java:171)
at processing.app.Serial.<init>(Serial.java:163)
... 35 more
Antworten:
Ich hatte auch dieses Problem. Es stellte sich heraus, dass der serielle Monitor auf Geschwindigkeit 14400 eingestellt war. Da Sie die Einstellung nicht ändern können, ohne über eine funktionierende serielle Schnittstelle zu verfügen, besteht die einzige Möglichkeit darin, die Arduino-Benutzeroberfläche und zu beenden Bearbeiten Sie die Datei settings.txt (unter Unix ist sie in
~/.arduino/preferences.txt
). SuchenSerial.debug_rate
und ändern Sie es in9600
. Starten Sie die Arduino-Benutzeroberfläche neu und versuchen Sie, eine einfache Skizze hochzuladen (z. B. "blinken"), um festzustellen, ob das Problem dadurch behoben wurde.Ich bin mir nicht sicher, warum dies passieren würde - ich habe 14400 verwendet und hatte nie ein Problem. Ich denke, es ist nur eines dieser seltsamen Probleme, die niemals einen wiederholbaren Grund zu haben scheinen.
quelle
Ich hatte den gleichen Fehler. Soweit ich das beurteilen kann, handelt es sich um ein Berechtigungsproblem. Das Problem trat nicht mehr auf, als ich die Arduino IDE mit Root-Berechtigungen ausführte. Das heißt, ich habe es ausgeführt als:
Ich weiß, dass dies eine schlechte Lösung ist, aber im Moment funktioniert es. Ich habe versucht, Lese- / Schreibzugriff auf die Datei des seriellen Geräts hinzuzufügen, wie unter https://wiki.archlinux.org/index.php/arduino erwähnt. Dies hatte jedoch keine Auswirkungen und verursachte den Fehler, wenn ich versuchte, sie ohne Root-Berechtigung auszuführen . Ich suche immer noch nach einer besseren Lösung.
EDIT:
Dieses Problem wurde behoben, indem die Antwort unter https://askubuntu.com/a/58122/206687 befolgt wurde . Kurz gesagt, wenn Sie sich der
dialout
Gruppe hinzufügen , sollte das Problem behoben sein.Melden Sie sich einfach ab und wieder an, nachdem Sie diesen Befehl ausgeführt haben, und Sie sollten problemlos auf die serielle Schnittstelle zugreifen können.
quelle
Versuchen Sie, die Version 1.0.5 der Arduino IDE zu installieren.
quelle
Ich habe einen einfacheren Weg gefunden, ohne Terminal zu benutzen. Gehen Sie in der Arduino-IDE zu Datei-> Einstellungen und am unteren Rand des Popups finden Sie einen Link für die Datei 'settings.txt'. Klicken Sie darauf und der Text wird geöffnet. Stellen Sie an diesem Punkt sicher, dass Sie Ihre ARDUINO-IDE schließen. Nehmen Sie die Änderung an der seriellen Debug-Rate '9600' vor und speichern und beenden Sie sie. Öffnen Sie Ihre IDE und es sollte jetzt funktionieren.
quelle