Я получаю эту ошибку при попытке подключиться к Arduino через последовательный порт USB. Я использую Arduino IDE 1.0.1 и 64-битную версию Ubuntu 12.04. Это повторяющаяся проблема с 10.04 и происходит с некоторыми другими программами, которые также используют последовательное соединение. У меня нет проблем с получением последовательных данных из Arduino с использованием Python или Screen. В противном случае Arduino IDE работает нормально.
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
У меня тоже была эта проблема, оказалось, что она была вызвана тем, что для Serial Monitor установлена скорость 14400. Поскольку вы не можете изменить настройку, не имея работающего последовательного порта, единственный способ сделать это - выйти Пользовательский интерфейс Arduino и отредактируйте файл preferences.txt (в Unix он находится в ~/.arduino/preferences.txt
). Найдите Serial.debug_rate
и измените его на 9600
. Перезапустите пользовательский интерфейс Arduino и попробуйте загрузить простой эскиз (например, «моргание») и посмотрите, решит ли он проблему.
Я не уверен, почему это произошло - я использовал 14400, и у меня никогда не было проблем. Я думаю, это всего лишь одна из тех странных проблем, которые никогда не имеют повторяемой причины?
У меня была такая же ошибка. Насколько я могу судить, это проблема с разрешениями. Проблема больше не возникала, когда я запускал Arduino IDE с правами root. То есть я запустил его так:
sudo ./arduino
Я знаю, что это плохое решение, но пока оно работает. Я попытался добавить доступ для чтения / записи к файлу последовательного устройства, как упомянуто в https://wiki.archlinux.org/index.php/arduino , но это не имело никакого эффекта, и все еще вызывало ошибку, если я попытался запустить его без разрешения root. Я все еще ищу лучшее решение.
РЕДАКТИРОВАТЬ:
Эта проблема была исправлена с помощью ответа, приведенного в https://askubuntu.com/a/58122/206687 . Короче говоря, если вы добавите себя в группу dialout
, проблема должна быть решена.
sudo usermod -a -G dialout $USER
Просто выйдите из системы и войдите снова после выполнения этой команды, и вы сможете без проблем получить доступ к последовательному порту.
Я нашел более простой способ без использования терминала. В Arduino IDE, перейдите в File-> Preferences и внизу всплывающего окна, они дают вам ссылку на файл'ferences.txt '. Нажмите на это, и это откроет текст. УБЕДИТЕСЬ В ЭТОЙ ТОЧКЕ, ЧТОБЫ ЗАКРЫТЬ ВАШУ IDE ARDUINO. Внесите изменение в «9600» Скорость последовательной отладки, сохраните и выйдите. Откройте вашу IDE, и она должна работать сейчас.
Попробуйте установить версию 1.0.5 Arduino IDE.