top of page
  • Фото автораAlchemist

Устранение неполадок Arduino

Обновлено: 25 мар. 2022 г.

Подробное описание часто встречающихся ошибок при работе с Arduino.

Почему я не могу загрузить программу на плату Arduino? Почему я получаю ошибку java.lang.StackOverflowError при попытке скомпилировать свою программу? Какой тип блока питания я должен использовать с моей платой Arduino? Почему мой скетч не запускается, когда я питаю плату от внешнего источника питания? (Arduino Diecimila или более ранняя версия) Почему программное обеспечение Arduino зависает, когда я пытаюсь загрузить программу? (Windows) Что делать, если моя плата не включается (не горит зеленый светодиодный индикатор питания)? Почему Diecimila так долго (6-8 секунд) запускает скетч? Что делать, если при запуске arduino.exe в Windows появляется ошибка? Что мне делать, если я получаю ошибку UnsatisfiedLinkError (о собственной библиотеке librxtxSerial.jnilib) при запуске Arduino? Как насчет ошибки "Не удалось найти основной класс."? Что я могу сделать с конфликтами cygwin (Windows)? Почему программное обеспечение Arduino и меню «Инструменты» открываются долго (Windows)? Почему моя плата не отображается в Инструменты | Меню последовательного порта? У меня проблемы с драйверами FTDI USB. Почему мой скетч не запускается при включении или сбросе платы Arduino? Почему мой скетч загружается успешно, но ничего не делает? Как уменьшить размер скетча? Почему нет ШИМ (аналоговый выход), когда я вызываю analogWrite() на выводах, отличных от 3, 5, 6, 9, 10 или 11? Почему я получаю ошибки о необъявленных функциях или необъявленных типах? Почему при загрузке скетча я получаю сообщение об ошибке недействительной подписи устройства? Почему я получаю сообщение «Папка сборки исчезла или не может быть записана» в Mac OS X? Почему программное обеспечение Arduino не запускается после того, как я обновил Java на моем Mac? Почему Arduino не работает на старых версиях Mac OS X? Что делать, если я получаю исключение gnu.io.PortInUseException при загрузке кода или использовании монитора последовательного порта (на Mac)?

Почему я не могу загрузить программу на плату Arduino?

Причин може быть много. Вот некоторые из них: драйверы для платы, выбор платы и последовательного порта в программном обеспечении Arduino, доступ к последовательному порту, физическое подключение к плате, прошивка на 8U2 (на Uno и Mega 2560), загрузчик на основной микроконтроллер на плате, настройки предохранителя микроконтроллера и многое другое. Вот несколько конкретных предложений по устранению неполадок.

Программное обеспечение Arduino

  • Убедитесь, что в меню « Инструменты»> «Плата» выбрана правильная плата. Если у вас есть Arduino Uno, вам нужно выбрать его. Кроме того, новые платы Arduino Duemilanove поставляются с ATmega328 , а более старые - с ATmega168 . Чтобы проверить, прочтите текст на микроконтроллере (больший чип) на вашей плате Arduino.

  • Затем убедитесь, что в меню « Инструменты»> «Порт» выбран правильный порт (если ваш порт не отображается, попробуйте перезапустить среду IDE с платой, подключенной к компьютеру). На Mac последовательный порт должен иметь вид /dev/tty.usbmodem621 (для Uno или Mega 2560) или /dev/tty.usbserial-A02f8e (для старых плат на базе FTDI). В Linux это должен быть /dev/ttyACM0 или аналогичный (для Uno или Mega 2560) или /dev/ttyUSB0 или аналогичный (для старых плат). В Windows это будет COM-порт, но вам нужно будет проверить в диспетчере устройств (в разделе «Порты»), какой именно. Если у вас нет последовательного порта для вашей платы Arduino, см. Следующую информацию о драйверах.

Драйверы

Драйверы позволяют программному обеспечению на вашем компьютере (то есть программному обеспечению Arduino) взаимодействовать с оборудованием, которое вы подключаете к компьютеру (платой Arduino). В случае с Arduino драйверы работают, предоставляя виртуальный последовательный порт (или виртуальный COM-порт). Arduino Uno и Mega 2560 используют стандартные драйверы (USB CDC), предоставляемые операционной системой, для связи с ATmega8U2 на плате. Другие платы Arduino используют драйверы FTDI для связи с микросхемой FTDI на плате (или в преобразователе последовательного порта USB).

Самый простой способ проверить, правильно ли установлены драйверы для вашей платы - открыть меню « Инструменты»> «Порт» в программном обеспечении Arduino, подключив плату Arduino к вашему компьютеру. Дополнительные элементы меню должны отображаться относительно того, когда вы открываете меню без подключения Arduino к вашему компьютеру. Обратите внимание, что не имеет значения, какое имя будет присвоено последовательному порту платы Arduino.

  • В Windows 7 (особенно в 64-битной версии) вам может потребоваться зайти в диспетчер устройств и обновить драйверы для Uno или Mega 2560. Просто щелкните устройство правой кнопкой мыши (плата должна быть подключена к вашему компьютеру) и снова укажите Windows на соответствующий INF-файл. .Inf находится в каталоге drivers/ программного обеспечения Arduino (а не в подкаталоге FTDI USB Drivers).

  • В Linux Uno и Mega 2560 отображаются как устройства в формате /dev/ttyACM0. Они не поддерживаются стандартной версией библиотеки RXTX, которую программное обеспечение Arduino использует для последовательной связи. Загрузка программного обеспечения Arduino для Linux включает версию библиотеки RXTX, исправленную для поиска этих устройств /dev/ttyACM *. Также существует пакет Ubuntu (для 11.04), который включает поддержку этих устройств. Однако, если вы используете пакет RXTX из своего дистрибутива, вам может потребоваться символическая ссылка с /dev/ttyACM0 на /dev/ttyUSB0 (например), чтобы последовательный порт появился в программном обеспечении Arduino. Выполните команды указанные ниже, после чего выйдите из системы и снова войдите в систему, чтобы изменения вступили в силу.

sudo usermod -a -G tty yourUserName
sudo usermod -a -G dialout yourUserName

Доступ к последовательному порту

  • В Windows, если программное обеспечение запускается медленно или дает сбой при запуске, или меню «Инструменты» открывается медленно, вам может потребоваться отключить последовательные порты Bluetooth или другие сетевые COM-порты в диспетчере устройств. Программное обеспечение Arduino сканирует все последовательные (COM) порты на вашем компьютере при запуске и при открытии меню «Инструменты», и эти сетевые порты иногда могут вызывать большие задержки или сбои.

  • Убедитесь, что вы не запускаете какие-либо программы, которые сканируют все последовательные порты, такие как программное обеспечение USB Cellular Wifi Dongle (например, от Sprint или Verizon), приложения синхронизации КПК, драйверы Bluetooth-USB (например, BlueSoleil), инструменты daemon tools и т. д.

  • Убедитесь, что у вас нет программного обеспечения брандмауэра, которое блокирует доступ к последовательному порту (например, ZoneAlarm).

  • Вам может потребоваться выйти из Processing, PD, vvvv и т. д., Если вы используете их для чтения данных через USB или последовательное соединение с платой Arduino.

  • В Linux вы можете попробовать запустить программное обеспечение Arduino с правами root, по крайней мере, временно, чтобы увидеть, исправляет ли загрузка.

Физическое соединение

  • Сначала убедитесь, что ваша плата включена (горит зеленый светодиод) и подключена к компьютеру.

  • У Arduino Uno и Mega 2560 могут возникнуть проблемы с подключением к Mac через USB-концентратор. Если в меню «Инструменты> Порт» ничего не отображается, попробуйте подключить плату непосредственно к компьютеру и перезапустить Arduino IDE.

  • Отключите цифровые контакты 0 и 1 во время загрузки, поскольку они используются для последовательной связи с компьютером (их можно подключать и использовать после загрузки кода).

  • Попробуйте выполнить загрузку, когда к плате ничего не подключено (кроме USB-кабеля, конечно).

  • Убедитесь, что плата не касается ничего металлического или проводящего.

  • Попробуйте другой USB-кабель; иногда они не работают.

Автоматический сброс

  • Если у вас есть плата, которая не поддерживает автоматический сброс, убедитесь, что вы перезагружаете плату за пару секунд до загрузки. (Arduino Diecimila, Duemilanove и Nano поддерживают автоматический сброс, как и LilyPad , Pro и Pro Mini с 6-контактными разъемами для программирования).

  • Однако обратите внимание, что некоторые Diecimila были случайно записаны с использованием неправильного загрузчика и могут потребовать от вас физического нажатия кнопки сброса перед загрузкой; см. этот вопрос ниже.

  • Однако на некоторых компьютерах вам может потребоваться нажать кнопку сброса на плате после нажатия кнопки загрузки в среде Arduino. Попробуйте разные интервалы времени между ними, до 10 секунд и более.

  • Если вы получили эту ошибку: [VP 1] Device is not responding correctly. попробуйте выполнить загрузку еще раз (т.е. перезагрузите плату и нажмите кнопку загрузки второй раз).

Загрузчик

  • Убедитесь, что на вашей плате Arduino записан загрузчик. Для проверки сбросьте плату. Встроенный светодиод L (который подключен к контакту 13) должен мигать. В противном случае на вашей плате может не быть загрузчика.


Почему я получаю ошибку java.lang.StackOverflowError при попытке скомпилировать свою программу?


Среда Arduino выполняет некоторую предварительную обработку вашего скетча, манипулируя кодом с помощью регулярных выражений. Иногда это сбивает с толку из-за определенных строк текста. Если вы видите такую ​​ошибку:

java.lang.StackOverflowError
at java.util.Vector.addElement(Unknown Source)
at java.util.Stack.push(Unknown Source)
at com.oroinc.text.regex.Perl5Matcher._pushState(Perl5Matcher.java) 

или:

	at com.oroinc.text.regex.Perl5Matcher._match(Perl5Matcher.java)
	at com.oroinc.text.regex.Perl5Matcher._match(Perl5Matcher.java)
	at com.oroinc.text.regex.Perl5Matcher._match(Perl5Matcher.java)
	at com.oroinc.text.regex.Perl5Matcher._match(Perl5Matcher.java)
	at com.oroinc.text.regex.Perl5Matcher._match(Perl5Matcher.java)
	at com.oroinc.text.regex.Perl5Matcher._match(Perl5Matcher.java)
	at com.oroinc.text.regex.Perl5Matcher._match(Perl5Matcher.java) 

Ищите необычные последовательности, включающие "двойные кавычки", "одинарные кавычки", \ обратную косую черту, комментарии и т. д. Например, отсутствие кавычек может вызвать проблемы, как и последовательность '\ "' (вместо этого используйте '"').


Какой тип блока питания я должен использовать с моей платой Arduino?


Как правило, плата Arduino может удовлетворительно работать от питания, доступного на USB-порту компьютера, к которому она подключена, в зависимости от количества и типа дополнительных модулей Shield, используемых с платой Arduino, и номинального тока питания USB, доступного от компьютер (зависит от производителя и модели компьютера). Если вы обнаружите, что от вашей платы Arduino требуется дополнительное питание для ее правильной работы, или если вам нужно управлять платой Arduino, отключенной от USB-порта, вам необходим источник питания, обеспечивающий от 7 до 12 В (вольт) постоянного тока с достаточной мощностью по току для ваших нужд. Адаптеры переменного тока, обычно доступные в розничных магазинах для использования с потребительскими товарами, часто подходят, но убедитесь, что у него есть подходящий разъем для подключения к розетке на вашей плате Arduino: цилиндрический штекер диаметром 5,5 мм с отверстием для штифта 2,1 мм, который обеспечивает положительное напряжение на внутреннем отверстии для штифта и отрицательное (или общее / заземление) напряжение на внешней цилиндрической втулке штекера разъема. Для большинства приложений ток 1 А (Ампер) достаточен, но вы можете обнаружить, что вам понадобится больше, если у вас есть конкретный модуль Shield, который в нем нуждается, или стек из нескольких модулей Shield, которые вместе с платой Arduino потребляют более высокий общий ток. Вы должны суммировать номинальные требования к входному току питания для каждого экрана, который вы используете вместе с платой Arduino, чтобы получить необходимое общее количество, и приобретите адаптер / блок питания, который обеспечивает минимум этого общего количества (более высокая допустимая токовая нагрузка блока питания не оказывает вредного воздействия). Помните, встроенный регулятор 5 В не может обеспечивать бесконечный ток (желательно не превышать ток 800 мА, чтобы не перегреть плату), поэтому, если одному из ваших проектов требуется большое количество энергии, вы можете подумать о предоставлении отдельных источников питания объеденив их землю (GND).

Почему мой скетч не запускается, когда я питаю плату от внешнего источника питания? (Arduino Diecimila или более ранняя версия)


Поскольку контакт RX не подключен, загрузчик на плате может видеть поступающие мусорные данные, а это означает, что он никогда не остановится и не запустит ваш скетч. Попробуйте связать контакт RX с землей с помощью резистора 10 кОм (или подключить RX напрямую к контакту TX).


Почему программное обеспечение Arduino зависает, когда я пытаюсь загрузить программу? (Windows)


Это может быть вызвано конфликтом с процессом Logitech LVPrcSrv.exe. Откройте диспетчер задач и посмотрите, запущена ли эта программа, и если да, то убейте ее перед попыткой загрузки.


Что делать, если моя плата не включается (не горит зеленый светодиодный индикатор питания)?


Если вы используете Diecimila или более старую плату USB (например, NG), убедитесь, что перемычка (маленькая пластиковая деталь рядом с разъемом USB) находится на правильных контактах. Если вы питаете плату от внешнего источника питания (подключенного к вилке питания), перемычка должна находиться на двух контактах, ближайших к вилке питания. Если вы запитываете плату через USB, перемычка должна быть на двух контактах, ближайших к разъему USB.


Почему Diecimila так долго (6-8 секунд) запускает скетч?


Некоторые платы Arduino Diecimila были случайно сожжены загрузчиком Arduino NG. Он должен работать нормально, но имеет более длительную задержку при сбросе платы (потому что NG не имеет автоматического сброса, поэтому вам придется вручную рассчитать время загрузки). Вы можете распознать загрузчик NG, потому что светодиод на контакте 13 мигнет три раза при перезагрузке платы (по сравнению с одним разом с загрузчиком Diecimila). Если на вашей Diecimila установлен загрузчик NG, вам может потребоваться физически нажать кнопку сброса на плате перед загрузкой скетча. Вы можете записать правильный загрузчик на Diecimila, подробности см. На странице загрузчика .


Что делать, если при запуске arduino.exe в Windows появляется ошибка?


Если вы получаете сообщение об ошибке при двойном щелчке по исполняемому файлу arduino.exe в Windows, например:

Arduino has encountered a problem and needs to close.

вам нужно будет запустить Arduino с помощью файла run.bat. Пожалуйста, проявите терпение, для открытия среды Arduino может потребоваться некоторое время.


Что мне делать, если я получаю ошибку UnsatisfiedLinkError (о собственной библиотеке librxtxSerial.jnilib) при запуске Arduino?


Если вы получаете такую ​​ошибку при запуске Arduino:

Uncaught exception in main method: java.lang.UnsatisfiedLinkError: Native Library /Users/anu/Desktop/arduino-0002/librxtxSerial.jnilib already loaded in another classloader

у вас вероятно валяется старая версия коммуникационной библиотеки. Найдите comm.jar или jcl.jar в /System/Library/Frameworks/JavaVM.framework/ или в каталогах в переменных среды CLASSPATH или PATH. (сообщил Анураг Сегал)


Как насчет ошибки "Не удалось найти основной класс."?


Если вы получаете эту ошибку при запуске Arduino:

Java Virtual Machine Launcher: Could not find the main class. Program will exit.

убедитесь, что вы правильно извлекли содержимое файла .zip Arduino - в частности, каталог lib находится непосредственно внутри каталога Arduino и содержит файл pde.jar.


Что я могу сделать с конфликтами cygwin (Windows)?


Если на вашем компьютере уже установлен cygwin, вы можете получить такую ​​ошибку при попытке скомпилировать скетч в Arduino:

 6 [main] ? (3512) C:\Dev\arduino-0006\tools\avr\bin\avr-gcc.exe: *** fatal error - C:\Dev\arduino-0006\tools\avr\bin\avr-gcc.exe: *** system shared memory version mismatch detected - 0x75BE0084/0x75BE009C.
This problem is probably due to using incompatible versions of the cygwin DLL.

Найдите cygwin1.dll, используя Windows Пуск-> Найти/Поиск, и удалите все, кроме самой последней версии. Самая последняя версия * должна * находиться в x:\cygwin\bin, где 'x' - это диск, на который вы установили дистрибутив cygwin. Также рекомендуется перезагрузка, если вы не можете найти другую DLL cygwin.

Если это так, сначала убедитесь, что у вас не запущен cygwin при использовании Arduino. Если это не помогает, вы можете попробовать удалить cygwin1.dll из каталога Arduino и заменить его cygwin1.dll из существующей установки cygwin (возможно, в c:\cygwin\bin).

Спасибо karlcswanson за предложение.


Почему программное обеспечение Arduino и меню «Инструменты» открываются долго (Windows)?


Если программе Arduino требуется много времени для запуска и кажется, что она зависает при попытке открыть меню «Инструменты», это связано с конфликтом с другим устройством в вашей системе. Программное обеспечение Arduino при запуске и при открытии меню «Инструменты» пытается получить список всех COM-портов на вашем компьютере. Возможно, что COM-порт, созданный одним из устройств на вашем компьютере, замедляет этот процесс. Загляните в диспетчер устройств. Попробуйте отключить устройства, которые предоставляют COM-порты (например, устройства Bluetooth).


Почему моя плата не отображается в Инструменты | Меню последовательного порта?


Если вы используете плату USB Arduino, убедитесь, что вы установили драйверы FTDI (см. Инструкции), либо драйвер CH340, если вы купили клон из Китая. Если вы используете адаптер USB-Serial с последовательной платой, убедитесь, что вы установили его драйверы.

Убедитесь, что плата подключена: меню последовательного порта обновляется всякий раз, когда вы открываете меню «Инструменты» , поэтому, если вы просто отключили плату, ее не будет в меню.

Убедитесь, что вы не запускаете какие-либо программы, которые сканируют все последовательные порты, например приложения синхронизации КПК, драйверы Bluetooth-USB (например, BlueSoleil), daemon tools и т. д.

В Windows COM-порт, назначенный плате, может быть слишком высоким. Замечание от zeveland:

"Одно маленькое замечание, если ваша плата USB пытается использовать высокий номер COM-порта: попробуйте изменить назначение COM-порта микросхемы FTDI на более низкое.

У меня было несколько виртуальных COM-портов, настроенных для Bluetooth, поэтому плата была настроена на использование COM17. IDE не смогла найти плату, поэтому я удалил другие виртуальные порты в Панели управления (в XP) и переместил FTDI назначение до COM2. Убедитесь, что Arduino настроил использование нового порта, и удачи".

На Mac, если у вас установлена ​​старая версия драйверов FTDI, вам может потребоваться удалить их и переустановить последнюю версию.


У меня проблемы с драйверами FTDI USB.


Попробуйте установить последние версии драйверов от FTDI или обратитесь в службу поддержки по адресу support1@ftdichip.com .


Почему мой скетч не запускается при включении или сбросе платы Arduino?


Скорее всего, потому что вы отправляете на плату последовательные данные при первом включении. В течение первых нескольких секунд загрузчик (программа, предварительно записанная на чип на плате) ожидает, что компьютер отправит ему новый скетч для загрузки на плату. Через несколько секунд без связи загрузчик отключится и запустит скетч, который уже находится на плате. Если вы продолжите отправлять данные в загрузчик, он никогда не истечет, и ваш скетч никогда не запустится. Вам нужно будет либо найти способ остановить поступление последовательных данных в течение первых нескольких секунд при включении платы (например, включив микросхему, которая отправляет данные из вашей функции setup() ), либо записать свой скетч на плату с помощью внешнего программатора, заменив загрузчик.


Почему мой скетч загружается успешно, но ничего не делает?


Вы выбрали неправильный пункт в меню «Инструменты»>«Плата». Убедитесь, что выбранный микроконтроллер соответствует микроконтроллеру на вашей плате ( ATmega8 или ATmega168 ) - имя будет написано на самом большом чипе на плате.

Убедитесь, что источник питания не шумит. Возможно, это может привести к потере скетча.

Как вариант, скетч может быть слишком большим для платы. При загрузке вашего скетча Arduino 0004 проверяет, не слишком ли он велик для ATmega8, но рассчитывает его на загрузчике размером 1 Кбайт. У вас может быть более старый загрузчик, который занимает 2 Кбайт из 8 Кбайт программного пространства (флэш-памяти) на ATmega8 вместо 1 Кбайт, используемого текущим загрузчиком. Если ваш больше, будет загружена только часть скетча, но программное обеспечение не будет знать, и ваша плата будет постоянно сбрасываться, приостанавливаться, сбрасываться.

Если у вас есть доступ к AVR-ISP или программатору параллельного порта, вы можете записать последнюю версию загрузчика на вашу плату с помощью «Инструменты»>«Записать загрузчик». В противном случае вы можете указать среде Arduino объем пространства, доступного для скетча, отредактировав переменную upload.maximum_size в вашем файле настроек (см. Инструкции по поиску файла ). Измените 7168 на 6144, и среда должна правильно предупреждать вас, когда ваш скетч слишком велик.


Как уменьшить размер скетча?


ATmega168 чип на Arduino борту дешев, но у него есть только 16 Кб программного кода, что не очень много (и 2 Кб используется загрузчиком).

Если вы используете числа с плавающей запятой, попробуйте переписать код с использованием целочисленной математики, что сэкономит вам около 2 Кбайт. Удалите все операторы #include в верхней части скетча для библиотек, которые вы не используете.


Почему нет ШИМ (аналоговый выход), когда я вызываю analogWrite() на выводах, отличных от 3, 5, 6, 9, 10 или 11?


Микроконтроллер на плате Arduino ( ATmega168 ) поддерживает PWM / analogWrite() только на определенных контактах. Вызов функции analogWrite() для любых других выводов даст HIGH(5 вольт) для значений больше 128 и LOW(0 вольт) для значений меньше 128. (Старые платы Arduino с ATmega8 поддерживают только выход ШИМ на контактах 9, 10 и 11.)


Почему я получаю ошибки о undeclared functions или undeclared types?


Среда Arduino пытается автоматически создавать прототипы для ваших функций, чтобы вы могли упорядочить их по своему усмотрению в своем эскизе. Однако этот процесс не идеален и иногда приводит к появлению непонятных сообщений об ошибках.

Если вы объявите пользовательский тип в своем коде и создадите функцию, которая принимает или возвращает значение этого типа, вы получите сообщение об ошибке при попытке скомпилировать скетч. Это связано с тем, что автоматически сгенерированный прототип для этой функции появится над определением типа.

Если вы объявляете функцию с типом возвращаемого значения, состоящим из двух слов (например, «unsigned int»), среда не осознает, что это функция, и не создаст для нее прототип. Это означает, что вам нужно предоставить свое собственное определение функции или поместить определение функции над любыми ее вызовами.


Почему при загрузке скетча я получаю сообщение об ошибке недействительной подписи устройства?


Если вы получите сообщение об ошибке:

avrdude: Yikes!  Invalid device signature.
       Double check connections and try again, or use -F to override
       this check.

это может означать одно из двух. Либо у вас выбрана неправильная плата в меню «Инструменты»>«Плата», либо вы используете неправильную версию avrdude. Arduino использует слегка измененную версию avrdude для загрузки эскизов на плату Arduino. Стандартная версия запрашивает подпись устройства платы способом, не понятным загрузчику, что приводит к этой ошибке. Убедитесь, что вы используете версию avrdude, которая поставляется с Arduino.


Почему я получаю сообщение «Папка сборки исчезла или не может быть записана» в Mac OS X?


Вы перетаскивали Arduino.app из образа диска (например, в папку «Приложения»)? В противном случае вы не сможете загрузить примеры.


Почему программное обеспечение Arduino не запускается после того, как я обновил Java на моем Mac?


Последнее обновление Java от Apple пытается использовать 64-битную версию собственных библиотек, но приложение Arduino поставляется с 32-битной версией библиотеки RXTX. Если вы запустите Arduino, вы получите сообщение об ошибке:

Uncaught exception in main method: java.lang.UnsatisfiedLinkError: /Applications/arduino-0016/Arduino 16.app/Contents/Resources/Java/librxtxSerial.jnilib: no suitable image found.  Did find: /Applications/arduino-0016/Arduino 16.app/Contents/Resources/Java/librxtxSerial.jnilib: no matching architecture in universal wrapper

Чтобы исправить это, щелкните приложение Arduino (например, Arduino 16.app ) в Finder и выберите «Получить информацию» в меню «Файл» . На информационной панели установите флажок Открыть в 32-битном режиме . После этого вы сможете нормально запустить Arduino.


Почему Arduino не работает на старых версиях Mac OS X?


Если вы получите такую ​​ошибку:

Link (dyld) error: 

dyld: /Applications/arduino-0004/Arduino 04.app/Contents/MacOS/Arduino Undefined symbols: 
/Applications/arduino-0004/librxtxSerial.jnilib undefined reference to _printf$LDBL128 expected to be defined in /usr/lib/libSystem.B.dylib 

вам, вероятно, потребуется перейти на Max OS X 10.3.9 или новее. В старых версиях есть несовместимые версии некоторых системных библиотек.


Что делать, если я получаю исключение gnu.io.PortInUseException при загрузке кода или использовании монитора последовательного порта (на Mac)?


Error inside Serial.<init>() 
gnu.io.PortInUseException: Unknown Application 
     at gnu.io.CommPortIdentifier.open(CommPortIdentifier.java:354) 
     at processing.app.Serial.<init>(Serial.java:127) 
     at processing.app.Serial.<init>(Serial.java:72) 

Это, вероятно, означает, что порт действительно используется другим приложением. Убедитесь, что у вас не запущены другие программы, которые обращаются к последовательным или USB-портам, например, приложение синхронизации КПК, диспетчеры устройств Bluetooth, определенные брандмауэры и т. д. Также обратите внимание, что некоторые программы (например, Max/MSP) оставляют последовательный порт открытым даже когда он не используется - вам может потребоваться закрыть все исправления, которые используют последовательный порт, или полностью закрыть приложение.

Если вы получаете эту ошибку с Arduino 0004 или более ранней версией, или с Processing, вам необходимо запустить macosx_setup.command, а затем перезагрузить компьютер. Arduino 0004 включает модифицированную версию этого скрипта, которую необходимо запустить всем пользователям (даже тем, кто запускал тот, который поставлялся с Arduino 0003). Вам также может потребоваться удалить содержимое каталога /var/spool/uucp .



Источник: https://www.arduino.cc/en/Main/Troubleshooting

93 просмотра0 комментариев