Offline
Зарегистрирован: 22.02.2015
Всем кто заинтересовался привет. Суть вопроса такова. Хотел програмировать ардуино с помощью Android. Установил программу с плеймаркета ArduinoDroid подключил к телефону ардуину, написал скетч блинка, компиляция прошла успешно, а вот заливать скетч программа категорически отказалась, пишет ошибка. Хотя вроде телефон определяет ардуину. Кто пробывал заливать скетч через телефон/планшет с помощью ArduinoDroid или подобных программ, объясните, может какие то ограничения есть или не все платы ардуино подходят?
В эксперименте были Android — Nexus 5, Arduino — Uno, но не оригинал, копия. Так как когда подключал к компьютеру дрова для компьютера были CH340G, думаю что проблема как раз в этом, если точнее Android не может корректно определить устройство.
Кто что скажет по этому поводу?
12-12-2020, 16:15
4 комментариев
Arduino не загружает скетч — одна из тех проблем, с которой часто сталкиваются как начинающие, так и «продвинутые» пользователи. Мы решили вам помочь и собрали основные варианты решения этой ошибки в одной информационной статье. Надеемся, она вам поможет.
В целом выделяют несколько ситуаций, когда выдается сбой при программировании:
- Программное обеспечение, т.е. Arduino IDE не может найти указанный файл. Выдается ошибка No such file or directory. Решить ее очень просто – следует перенести либо установить библиотеку в папку libraries – это важно (много раз об этом писали). Не забывайте затем перезагрузить ПО. Не рекомендуем выкладывать их в папку C:Program Files (x86)Arduinolibraries. Она при обновлении системы может быть очищена.
- Загрузка кодов зависает, выдается приблизительно такая ошибка:
В этом случае решений может быть несколько. Для начала попробуйте проверить тип платы, которую вы выбрали. Если скетч создан для Nano, непременно переключите контроллер именно на него – стандартный UNO вам не подойдет. Второй шаг – проверяем выставленные параметры скорости (те же Уно и Нано функционируют в пределах 15200 бит). Прописать эти данные следует в конфигурациях приложения. Идем по такому пути:
- Заходим в наше ПО, ищем папку hardwarearduinoavr > открываем файл boards.txt в текстовом формате, например, Блокноте на Windows.
- Находим строку:
В ней выставлены не те скоростные значения, что нам необходимы, но не спешите их менять – контроллеры бывают разные (как китайские, так и оригинальные). Лучше не удалять цифры, а добавить еще один микроконтроллер УНО. Заполняем файл:
uno2.name=Uno 57600
uno2.vid.0=0x2341
uno2.pid.0=0x0043
uno2.vid.1=0x2341
uno2.pid.1=0x0001
uno2.vid.2=0x2A03
uno2.pid.2=0x0043
uno2.vid.3=0x2341
uno2.pid.3=0x0243
uno2.upload.tool=avrdude
uno2.upload.protocol=arduino
uno2.upload.maximum_size=32256
uno2.upload.maximum_data_size=2048
uno2.upload.speed=57600
uno2.bootloader.tool=avrdude
uno2.bootloader.low_fuses=0xFF
uno2.bootloader.high_fuses=0xDE
uno2.bootloader.extended_fuses=0xFD
uno2.bootloader.unlock_bits=0x3F
uno2.bootloader.lock_bits=0x0F
uno2.bootloader.file=optiboot/optiboot_atmega328.hex
uno2.build.mcu=atmega328p
uno2.build.f_cpu=16000000L
uno2.build.board=AVR_UNO
uno2.build.core=arduino
uno2.build.variant=standard
##############################################################
nano2.name=Nano 57600
nano2.upload.tool=avrdude
nano2.upload.protocol=arduino
nano2.bootloader.tool=avrdude
nano2.bootloader.unlock_bits=0x3F
nano2.bootloader.lock_bits=0x0F
nano2.build.f_cpu=16000000L
nano2.build.board=AVR_NANO
nano2.build.core=arduino
nano2.build.variant=eightanaloginputs
## Arduino Nano w/ ATmega328P
## --------------------------
nano2.menu.cpu.atmega328=ATmega328P
nano2.menu.cpu.atmega328.upload.maximum_size=30720
nano2.menu.cpu.atmega328.upload.maximum_data_size=2048
nano2.menu.cpu.atmega328.upload.speed=57600
nano2.menu.cpu.atmega328.bootloader.low_fuses=0xFF
nano2.menu.cpu.atmega328.bootloader.high_fuses=0xDA
nano2.menu.cpu.atmega328.bootloader.extended_fuses=0xFD
nano2.menu.cpu.atmega328.bootloader.file=optiboot/optiboot_atmega328.hex
Теперь у нас 2 устройства, в идеале все должно заработать!
Как видите, если скетч не загружается в Ардуино, можно самостоятельно решить проблему и продолжать проектирование. На этом прощаемся с вами! Всем успешной компиляции и не забывайте следить за нашим интернет-сайтом!
Good morning
I’m trying to upload a sketch on arduino yun by ArduinoDroid. I’ve tried both with the internal network of the yun and by putting the board on the home network SorboFrale.
I’m able to connect via browser to the board but when I try yo upload the sketch by arduino droid I obtain ‘no answer‘ error.
The same with Arduino Ide from pc is ok, I’m able to upload sketches by pc.
I’ve noted that Arduino Droid dont ask for the password. When I upload the sketch it dont arrives to ask the password but before giv me the error. It writes:
UPLOADING ERROR
Sending invitation to 192.168.1.4
Error: No answer
Thank you to all
Alessandro
asked Sep 3, 2022 at 8:28
Страница 1 из 2
-
Всем привет! Ребятушки помогите, осваиваю данный девайс (Матрешку), столкнулся с проблемой загрузки программы в плату!!! пишет, что с данной GO проблемой на сайт ардуино в поддержку! Что делать??? спасибо!
-
Схема, исходник, текст или скриншот ошибки — где?
-
-
Выбран в Tools ваша платформа, правильно выбрано СОМ порт?
-
Попробуйте стандартный скетч «blink» залить, если все ОК, то проблема в коде.
-
nailxx
Официальный Нерд
АдминистраторУ вас версия среды 1.5. Для Arduino Uno пока следует использовать 1.0.3
http://arduino.googlecode.com/files/arduino-1.0.3-windows.zip
-
а лучше 1.0 — она проверенная, ещё работает!
-
спасибо!! 1,0,3 заработала!!
-
Подскажите что может быть?
-
Комп не видит вашу Arduino
a) У вас стоит 1.8.0 версия и на сколько я помню, если комп увидел Arduino — среда дописывает в скобках (название_вашей_платы)
б) COM4 — скорее всего не Arduino, а нечто другоеПопробуйте:
а) «Переткнуть» Arduino в другой порт, добиться того чтобы она определилась в системе (новый СОМ-порт появиться) //Можно отследить в диспетчере задач
а.1) Переткнуть в задний USB (если у вас есть 3.0 — переткните в старый 2.0), обычно 3.0 — синий, а 2.0 — черный. //Возможно у вас проблемы с компом — попробуйте на другом залить скетч
б) Залить скетч (Blink, к примеру)Ответить на вопросы (если не получилось выше):
1) Какая у вас плата?
2) Работала она раньше?
3) Что сделали, перед тем как она перестала распознаваться -
спасибо за ответ, помогло. Решил проблему, в диспетчере задач, поменял порт с 4 на 2. и всё стало заливаться)
-
-
День добрый.
Та же проблема. -
Помогите. Порты менял с COM3 до COM5. Blink не загружается. Как проверить работоспособность платы? Плату только приобрел на Ali.
-
Порты перебирать не надо, плата должна определится сама, порт появится в Ардуино ИДЕ. И обычно номер порта получается где-то в районе десятого — у меня на компе от COM8 до COM12
Что за плата. что за тип USART? Если CH340 — драйвера установили? -
Отключите плату от компьютера, откройте диспетчер устройств разверните Порты:
Запомните, что там есть.
Дальше подключаете плату и смотрите, появилось новое устройство или нет.
Если ничего нет — искать драйвера, Ардуино ИДЕ рано запускать.
-
ребята помогите решить проблему раньше была все ок а теперь проблема
Страница 1 из 2
Первая прошивка
Итак, разобрались со средой разработки, теперь можно загрузить прошивку. Рекомендую загрузить пустую прошивку, чтобы убедиться, что все драйвера установились и плата вообще прошивается. Также лучше делать это с новой или заведомо рабочей платой.
1. Плата подключается к компьютеру по USB, на ней должны замигать светодиоды. Если этого не произошло:
- Неисправен USB кабель.
- Неисправен USB порт компьютера.
- Неисправен USB порт Arduino.
- Попробуйте другой компьютер, чтобы исключить часть проблем из списка.
- Попробуйте другую плату, чтобы исключить часть проблем из списка.
- На плате Arduino сгорел диод по питанию USB.
- Плата Arduino сгорела полностью из-за неправильного подключения питания или короткого замыкания
2. Компьютер издаст характерный сигнал подключения нового оборудования, а при первом подключении появится окошко “Установка нового оборудования”. Если этого не произошло:
- См. предыдущий список неисправностей.
- Кабель должен быть data-кабелем, а не “зарядным”.
- Кабель желательно втыкать напрямую в компьютер, а не через USB-хаб.
- Не установлены драйверы для Arduino.
3. В списке портов (Arduino IDE/Инструменты/Порт) появится новый порт, отличный от COM1. Если этого не произошло:
- См. предыдущий список неисправностей.
- Некорректно установлен драйвер CH341.
- Если список портов вообще неактивен – драйвер Arduino установлен некорректно, вернитесь к установке
- Возникла системная ошибка, обратитесь к знакомому компьютерщику
4. Выбираем свою плату. Если это Arduino Nano, выбираем в ИнструментыПлатаArduino Nano. Если другая – выбираем другую. Нажимаем стрелочку в левом верхнем углу (загрузить прошивку). Да, загружаем пустую прошивку.
- [Для Arduino Nano] В микроконтроллер китайских нанок зашит “старый” загрузчик, поэтому выбираем ИнструментыПроцессорATmega328p (Old Bootloader). Некоторые китайцы зашивают в свои платы новый загрузчик, поэтому если прошивка не загрузилась (загрузка идёт минуту и вылетает ошибка avrdude: stk500_getsync()) – попробуйте сменить пункт Процессор на ATmega328p.
Если появилась надпись “Загрузка завершена” – значит всё в порядке и можно прошивать другие скетчи. В любом случае на вашем пути встретятся другие два варианта событий, происходящих после нажатия на кнопку “Загрузка” – это ошибка компиляции и ошибка загрузки. Вот их давайте рассмотрим более подробно.
Ошибки компиляции
Возникает на этапе компиляции прошивки. Ошибки компиляции вызваны проблемами в коде прошивки.
- В некоторых случаях ошибка возникает при наличии кириллицы (русских букв) в пути к папке со скетчем. Решение: завести для скетчей отдельную папочку в корне диска с английским названием.
- В чёрном окошке в самом низу Arduino IDE можно прочитать полный текст ошибки и понять, куда копать.
- В скачанных с интернета готовых скетчах часто возникает ошибка с описанием название_файла.h no such file or directory. Это означает, что в скетче используется библиотека <название файла>, и нужно положить её в Program Files/Arduino/libraries/. Ко всем моим проектам всегда идёт папочка с использованными библиотеками, которые нужно установить. Также библиотеки всегда можно поискать в гугле по название файла.
- При использовании каких-то особых библиотек, методов или функций, ошибкой может стать неправильно выбранная плата в “Инструменты/плата“. Пример: прошивки с библиотекой Mouse.h или Keyboard.h компилируются только для Leonardo и Micro.
- Если прошивку пишете вы, то любые синтаксические ошибки в коде будут подсвечены, а снизу в чёрном окошке можно прочитать более детальное описание, в чём собственно косяк. Обычно указывается строка, в которой сделана ошибка, также эта строка подсвечивается красным.
- Иногда причиной ошибки бывает слишком старая, или слишком новая версия Arduino IDE. Читайте комментарии разработчика скетча
- Ошибка недостаточно свободного места возникает по вполне понятным причинам. Возможно поможет урок по оптимизации кода.
Частые ошибки в коде, приводящие к ошибке компиляции
- expected ‘,’ or ‘;’ – пропущена запятая или точка запятой на предыдущей строке
- stray ‘320’ in program – русские символы в коде
- expected unqualified-id before numeric constant – имя переменной не может начинаться с цифры
- … was not declared in this scope – переменная или функция используется, но не объявлена. Компилятор не может её найти
- redefinition of … – повторное объявление функции или переменной
- storage size of … isn’t known – массив задан без указания размера
Ошибки загрузки
Возникают на этапе, когда программа успешно скомпилирована и производится загрузка в плату по кабелю. Ошибка может возникать как по причине неисправностей железа, так и из-за настроек программы и драйверов.
- USB кабель, которым подключается Arduino, должен быть Data-кабелем, а не кабелем только для зарядки. Нужным нам кабелем подключаются к компьютеру плееры и смартфоны.
- Причиной ошибки загрузки являются не установленные/криво установленные драйвера CH340, если у вас китайская NANO.
- Также будет ошибка avrdude: ser_open(): can’t open device, если не выбран COM порт, к которому подключена Arduino. Если кроме COM1 других портов нет – читай два пункта выше, либо попробуй другой USB порт, или вообще другой компьютер.
- Большинство проблем при загрузке, вызванных “зависанием” ардуины или загрузчика, лечатся полным отключением ардуины от питания. Потом вставляем USB и по новой прошиваем.
- Причиной ошибки загрузки может быть неправильно выбранная плата в “Инструменты/Плата”, а также неправильно выбранный процессор в “Инструменты/Процессор”. Также в свежих версиях IDE нужно выбирать ATmega328P (Old Bootloader) для китайских плат NANO.
- Если у вас открыт монитор COM порта в другом окне Arduino IDE или плата общается через СОМ порт с другой программой (Ambibox, HWmonitor, SerialPortPlotter и т.д.), то вы получите ошибку загрузки, потому что порт занят. Отключитесь от порта или закройте другие окна и программы.
- Если у вас задействованы пины RX или TX – отключите от них всё! По этим пинам Arduino общается с компьютером, в том числе для загрузки прошивки.
- Если в описании ошибки встречается bootloader is not responding и not in sync, а все предыдущие пункты этого списка проверены – с вероятностью 95% сдох загрузчик. Второй неприятный исход – загрузчик “слетел”, и его можно прошить заново.
Предупреждения
Помимо ошибок, по причине которых проект вообще не загрузится в плату и не будет работать, есть ещё предупреждения, которые выводятся оранжевым текстом в чёрной области лога ошибок. Предупреждения могут появиться даже тогда, когда выше лога ошибок появилась надпись “Загрузка завершена“. Это означает, что в прошивке нет критических ошибок, она скомпилировалась и загрузилась в плату. Что же тогда означают предупреждения? Чаще всего можно увидеть такие:
- # Pragma message… – это просто сообщения, оставленные разработчиком проекта или библиотеки. Чаще всего номер версии и прочая информация.
- Недостаточно памяти, программа может работать нестабильно – Чуть выше этого предупреждения обычно идёт информация о задействованной памяти. Память устройства можно добивать до 99%, ничего страшного не случится. Это флэш память и во время работы она не изменяется. А вот динамическую память желательно забивать не более 85-90%, иначе реально могут быть непонятные глюки в работе, так как память постоянно “бурлит” во время работы. НО. Это зависит от скетча и в первую очередь от количества локальных переменных. Можно написать такой код, который будет стабильно работать при 99% занятой SRAM памяти. Так что ещё раз: это всего лишь предупреждение, а не ошибка.
FAQ
Завершая раздел Введение в Arduino поговорим о вопросах, которые очень часто возникают у новичков:
- Ардуину можно прошить только один раз? Нет, несколько десятков тысяч раз, всё упирается в ресурс Flash памяти. А он довольно большой.
- Как стереть/нужно ли стирать старую прошивку при загрузке новой? Память автоматически очищается при прошивке, старая прошивка автоматически удаляется.
- Можно ли записать две прошивки, чтобы они работали вместе? Нет, при прошивке удаляются абсолютно все старые данные. Из двух прошивок нужно сделать одну, причём так, чтобы не было конфликтов. Подробнее в этом уроке.
- Можно ли “вытащить” прошивку с уже прошитой Ардуины? Теоретически можно, но только в виде нечитаемого машинного кода, в который преобразуется прошивка на С++ при компиляции, т.е. вам это НИКАК не поможет, если вы не имеете диплом по низкоуровневому программированию. Подробнее в этом уроке.
- Зачем это нужно? Например есть у нас прошитый девайс, и мы хотим его “клонировать”. В этом случае да, есть вариант сделать дамп прошивки и загрузить его в другую плату на таком же микроконтроллере.
- Если есть желание почитать код – увы, прошивка считывается в виде бинарного машинного кода, превратить который обратно в читаемый Си-подобный код обычному человеку не под силу.
- Вытащить прошивку, выражаясь более научно – сделать дамп прошивки, можно при помощи ISP программатора, об этом можно почитать здесь.
- Снять дамп прошивки можно только в том случае, если разработчик не ограничил такую возможность, например записав лок-биты, запрещающие считывание Flash памяти, или вообще отключив SPI шину. Если же разработчик – вы, и есть желание максимально защитить своё устройство от копирования – гуглите про лок-биты и отключение SPI
Видео
Полезные страницы
- Набор GyverKIT – большой стартовый набор Arduino моей разработки, продаётся в России
- Каталог ссылок на дешёвые Ардуины, датчики, модули и прочие железки с AliExpress у проверенных продавцов
- Подборка библиотек для Arduino, самых интересных и полезных, официальных и не очень
- Полная документация по языку Ардуино, все встроенные функции и макросы, все доступные типы данных
- Сборник полезных алгоритмов для написания скетчей: структура кода, таймеры, фильтры, парсинг данных
- Видео уроки по программированию Arduino с канала “Заметки Ардуинщика” – одни из самых подробных в рунете
- Поддержать автора за работу над уроками
- Обратная связь – сообщить об ошибке в уроке или предложить дополнение по тексту ([email protected])