НЕСКОЛЬКО ПОЛЕЗНЫХ СТАТЕЙ

ПОДКЛЮЧЕНИЕ АРДУИНО (ARDUINO), БЫСТРЫЙ СТАРТ

1. загрузка и установка ПО
3. настройка arduino ide
4. установка библиотек
6. полезные советы и хаки
7. ответы на частые вопросы
8. памятка по питанию платы

1. Качаем и устанавливаем Arduino IDE

  • Качаем и устанавливаем Arduino IDE с сайта разработчика (основная программа для работы с Arduino. В ней пишутся скетчи, в ней же компилируются и загружаются в плату). При скачивании можно отказаться от пожертвования, нажав JUST DOWNLOAD (только скачать). При установке Arduio IDE должны автоматически установиться драйвера, то есть при появлении окошка «согласиться ли на установку драйверов» нажать да.

  • Качаем и устанавливаем JRE (Java Runtime Environment) с сайта разработчика. Arduino IDE работает на Java, то есть нужно скачать и установить бесплатный пакет, без которого невозможна работа никаких программ, написанных на Java.

СКАЧАТЬ arduino ide
СКАЧАТЬ JAVA

2. Устанавливаем драйвера

  • При установке Arduio IDE должны автоматически поставиться драйвера. Windows даст предупреждение о том, что будут установлены «неизвестные» драйвера. Соглашаемся на всё.
    Если автоматически этого не произошло, нужно вручную установить драйвера Arduino из папки с Arduino IDE (C:\\Program files…), см. второй скриншот.

  • На китайских платах NANO (в том числе на новых моделях UNO, на некоторых версиях NodeMCU, на UART программаторах и других платах) стоят USB контроллеры CH340/CH341, для правильной работы которых нужен специальный драйвер. Нужно скачать и установить драйвер CH341, ссылка ниже, см. первый скриншот.

    ПОЛЬЗОВАТЕЛЯМ MAC! Для вас тоже есть драйвера, за инфу спасибо Денису Алексееву. Ссылка ниже.

  • Подключить Arduino к компьютеру, подождать, пока Windows её распознает и запомнит (первое подключение).
    P.S. Вылезет окошечко, сообщающее, что устройство опознано и подключено к COM порту с определённым номером (2, 3, 6, 9…)

скачать драйвер CH341 с моего ftp
поискать в гугле (для недоверчивых =)
драйвер CH340 для mac os

3. Настраиваем Arduino IDE

  • Запустить Arduino IDE, выбрать плату (Инструменты\плата\»ваша плата»). См. первый скриншот.

  • Выбрать модель микроконтроллера (Инструменты\Процессор\»Ваш процессор»). На Arduino NANO может стоять atmega328p или 168, я всегда оставляю ссылки на 328p (168 — меньше памяти).
    ВНИМАНИЕ! В новых версиях Arduino IDE (старше 1.8.4) для NANO нужно выбирать atmega328p (Old Bootloader), за инфу спасибо Артёму Ерашевскому.

  • Выбрать порт: инструменты\порт\»COM отличный от COM1, например COM3, COM5…» См. второй скриншот. Какой именно порт вы могли видеть при первом подключении Ардуино к компьютеру.
    Примечание: если у вас только СОМ1 — значит либо не встали драйвера, либо сдохла плата.

  • Готовые прошивки просто открываются двойным кликом. Чтобы загрузить прошивку, жмите кнопку ЗАГРУЗИТЬ на верхней панели инструментов, она в виде стрелочки.
    ВНИМАНИЕ, СОВЕТ! В ПУТИ К ПАПКЕ СО СКАЧАННЫМИ СКЕТЧАМИ НЕ ДОЛЖНО БЫТЬ РУССКИХ БУКВ! СОЗДАЙТЕ В КОРНЕ ДИСКА ПАПКУ ARDUINO, И РАБОТАЙТЕ В НЕЙ!

  • ВНИМАНИЕ, СОВЕТ! КАК ТОЛЬКО ДОСТАНЕТЕ ARDUINO ИЗ ПАКЕТИКА, СРАЗУ ПРОШЕЙТЕ В НЕЁ СКЕТЧ С МИГАНИЕМ СВЕТОДИОДА (blink.ino)
    Таким образом вы узнаете, что Ардуина изначально рабочая (на тот случай, когда после сборки/пайки она перестанет работать и прошиваться), то есть вы сами её сломали, а не она была изначально бракованная =)

4. Установка библиотек Arduino

  • Допустим, скачали библиотеку. Её нужно разархивировать и положить в папку:

    64-битная версия Windows — C:\Program Files (x86)\Arduino\libraries\
    32-битная версия Windows — C:\Program Files\Arduino\libraries\

  • Как пример — библиотека для дисплея на чипе TM1637, смотрите скриншот

  • В папке libraries должна появиться папка TM1637, в которой есть папка examples, и два файла с расширениями .h и .cpp . Эти два файла должны быть в каждой библиотеке.

    ВНИМАНИЕ, ЧАСТАЯ ОШИБКА ПРИ УСТАНОВКЕ БИБЛИОТЕК! Посмотрите внимательно на скриншот сверху: библиотека всегда содержит файлы с расширениями .h и .cpp (либо они находятся в папке src), а также папку примеров examples и иногда файл keywords. Так вот! Эти файлы библиотеки должны находиться в папке, которая находится в папке libraries, а не в подпапке! Простой пример:

    C:\Program Files (x86)\Arduino\libraries\GyverButton\(файлы библиотеки)   — ПРАВИЛЬНО

    C:\Program Files (x86)\Arduino\libraries\GyverButton\GyverButton-master\(файлы библиотеки) — НЕПРАВИЛЬНО

  • Второй способ. Папка с библиотекой кладётся в папку со скетчем. Тогда скетч, использующий библиотеку, сможет ей пользоваться. Но для остальных скетчей эта библиотека будет недоступна!

5. Основные ошибки при прошивке Arduino (FAQ)

5.1 Ошибка компиляции

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

  • В некоторых случаях ошибка возникает при наличии кириллицы (русских букв) в пути к папке со скетчем. Решение: завести для скетчей отдельную папочку в корне диска с английским названием.

  • В чёрном окошке в самом низу Arduino IDE можно прочитать полный текст ошибки и понять, куда копать

  • В скачанных с интернета готовых скетчах часто возникает ошибка с описанием <название файла> no such file or directory. Это означает, что в скетче используется библиотека <название файла>, и нужно положить её в Program Files/Arduino/libraries. Ко всем моим проектам всегда идёт папочка с использованными библиотеками, которые нужно установить. Также библиотеки всегда можно поискать в гугле по <название файла>.

  • При использовании каких-то особых библиотек, методов или функций, ошибкой может стать неправильно выбранная плата в «Инструменты/плата«. Пример: прошивки с библиотекой Mouse.h или Keyboard.h компилируются только для Leonardo и Micro.

  • Если прошивку пишете вы, то любые синтаксические ошибки в коде будут подсвечены, а снизу в чёрном окошке можно прочитать более детальное описание, в чём собственно косяк. Обычно указывается строка, в которой сделана ошибка, также эта строка подсвечивается красным.

5.2 Ошибка загрузки

Возникает на этапе, когда прошивка собрана, скомпилирована, в ней нет критических ошибок, и производится загрузка в плату по кабелю. Ошибка может возникать как по причине неисправностей железа, так и из-за настроек программы и драйверов.

  • USB кабель, которым подключается Arduino, должен быть Data-кабелем. Существуют кабели, предназначенные только для зарядки, у них внутри 2 провода. Data кабель имеет 4 провода, два из которых нужны для передачи данных. Таким кабелем подключаются к компьютеру плееры и смартфоны.

  • Причиной ошибки загрузки являются неустановленные/криво установленные драйвера CH340, если у вас китайская NANO.

  • Также будет ошибка, если не выбран COM порт, к которому подключена Arduino. Если кроме COM1 других портов нет — читай два пункта над этим, либо попробуй другой USB порт, или вообще другой компьютер.

  • Большинство проблем при загрузке, вызванных «зависанием» ардуины или загрузчика, лечатся полным отключением ардуины от питания. Потом вставляем USB и по новой прошиваем.

  • Если в описании ошибки встречается слово averdude или bootloader is not responding — с вероятностью 95% сдох загрузчик, например при случайном коротком замыкании провода на плату. Оставшиеся 5% — загрузчик «слетел», и его можно прошить заново программатором или другой Ардуиной. Подробнее об этом можно почитать в гугле по «как перепрошить загрузчик на Ардуино«.

  • Причиной ошибки загрузки может быть неправильно выбранная плата в «Инструменты/Плата»

Иногда прошивка успешно компилируется/загружается, но в логе компилятора оранжевыми буквами всплывает несколько строчек:

Это всего лишь сообщение про библиотеку, точнее — про её новую версию. Если код скомпилировался или успешно загрузился — бояться оранжевых букв не нужно!

6. Полезные советы при работе с Arduino

  • Автоформатирование — Arduino IDE умеет автоматически приводить ваш код в порядок (имеются в виду отступы, переносы строк и пробелы). Для автоматического форматирования используйте комбинацию CTRL+T на клавиатуре, либо Инструменты/АвтоФорматирование в окне IDE. Используйте чаще, чтобы сделать код красивым (каноничным, классическим) и более читаемым для других!

  • Скрытие частей кода — сворачивайте длинные функции и прочие куски кода для экономии места и времени на скроллинг. Включается здесь: Файл/Настройки/Включить сворачивание кода

  • Не используйте мышку! Чем выше становится ваш навык в программировании, тем меньше вы будете использовать мышку (да-да, как в фильмах про хакеров). Используйте обе руки для написания кода и перемещения по нему, вот вам несколько полезных комбинаций и хаков, которыми я пользуюсь ПОСТОЯННО:

    • Ctrl+← , Ctrl+→ — переместить курсор влево/вправо НА ОДНО СЛОВО
    • Home , End — переместить курсор в начало/конец строки
    • Shift+← , Shift+→ — выделить символ слева/справа от курсора
    • Shift+Ctrl+← , Shift+Ctrl+→ — выделить слово слева/справа от курсора
    • Shift+Home , Shift+End — выделить все символы от текущего положения курсора до начала/конца строки
    • Ctrl+Z — отменить последнее действие
    • Ctrl+Y — повторить отменённое действие
    • Ctrl+C — копировать выделенный текст
    • Ctrl+X — вырезать выделенный текст
    • Ctrl+V — вставить текст из буфера обмена

    Местные сочетания:

    • Ctrl+U — загрузить прошивку в Arduino
    • Ctrl+R — скомпилировать (проверить)
    • Ctrl+Shift+M — открыть монитор порта

    Также для отодвигания комментариев в правую часть кода используйте TAB, а не ПРОБЕЛ. Нажатие TAB перемещает курсор по некоторой таблице, из-за чего ваши комментарии будут установлены красиво на одном расстоянии за вдвое меньшее количество нажатий!

  • Питание от пинов — во время разработки прототипов без брэдборда всегда не хватает пинов для питания датчиков и модулей. Так вот, слабые (с потреблением тока менее 40 мА) 5 Вольтовые датчики можно питать от любых пинов! Достаточно сформировать пин как выход, и подать на него нужный сигнал (HIGH — 5 Вольт, LOW — GND).

    Пример: подключаем трёхпиновый датчик звука, не используя пины 5V и GND

    #define SENSOR_VCC 2    // пин VCC сенсора на D2
    #define SENSOR_GND 3    // пин GND сенсора на D3
    #define SENSOR_OUT 4    // сигнальный пин на D4
    
    void setup() {
      // настройка пинов
      pinMode(SENSOR_VCC, OUTPUT);
      pinMode(SENSOR_GND, OUTPUT);
    
      // подаём сигналы
      digitalWrite(SENSOR_VCC, HIGH);
      digitalWrite(SENSOR_GND, LOW);
    }
    
    void loop() {
      // в качестве примера считываем сигнал
      boolean sound_signal = digitalRead(SENSOR_OUT);
    }
  • Питание от штекера для программатора. Вы наверняка задавались вопросом, а зачем на Arduino NANO на краю платы расположены 6 пинов? Это порт для подключения ISP программатора. Что он делает в списке лайфхаков? Вот вам фото распиновки, используйте!

  • Использовать библиотеку энергосбережения Low Power. Примеры и описание внутри (видео урок пока не готов)

  • В паре с библиотекой сделать несколько модификаций: отключить светодиод питания и отрезать левую ногу регулятора напряжения. ВНИМАНИЕ! Резать ногу регулятору можно только в том случае, если плата питается от источника 3-5 Вольт в пины 5V и GND.

7. Ответы на частые вопросы

  • Ардуину можно прошить только один раз? Нет, несколько десятков тысяч раз, всё упирается в ресурс flash памяти. А он довольно большой.

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

  • Можно ли записать две прошивки, чтобы они работали вместе? Нет, при прошивке удаляются абсолютно все старые данные.

  • Можно ли «вытащить» прошивку с уже прошитой Ардуины? Теоретически можно, но только в виде машинного кода, в который преобразуется прошивка на С++ при компиляции, т.е. вам это НИКАК не поможет, если вы не имеете диплом по низкоуровневому программированию. Так что нет, нельзя.

8. Питание платы

Питание от USB

  • Arduino замечательно питается от USB кабеля, которым подключена к компьютеру, что очевидно

  • От компьютера
  • От смартфона через OTG
  • От внешнего аккумулятора для смартфона (Power Bank)
  • От любой батарейки через повышающий китайский модуль с выходом на USB (МАГАЗИН)
  • От зарядника для телефона с выходом на USB (можно перепаять самому)

Внешнее питание в пины 5V и GND

  • На 5V и GND можно подать от 4.5 до 5.5 Вольт. Выше — нельзя, микроконтроллер сгорит. Ниже — можно, но работа может быть нестабильной, так как по официальному даташиту для частоты 16 МГц питание должно быть выше 4.5 В. Но у меня 16 мегагерцовая версия NANO спокойно работала от одного литиевого аккумулятора (3.5 Вольт), так что смело экспериментируйте.

  • От USB зарядника (powerbank), вывести 2 провода и питать

  • От понижающего преобразователя, понижать например с любого нужного напряжения

  • От одной батарейки или аккумулятора, используя повышающие преобразователи

  • От 3-х пальчиковых батареек или 4-х никелевых аккумуляторов

Внешнее питание в пины Vin и GND

  • Пин Vin заводит питание на микроконтроллер через понижающий линейный стабилизатор напряжения AMS1117-5.0, то есть понижает входное напряжение с пинов Vin и GND до 5 Вольт. В даташите на AMS1117 указано минимальное напряжение 7 Вольт, если брать ниже — работа может быть нестабильной. Максимальное напряжение — 19 Вольт, но в таком режиме преобразователь может сильно нагреваться, поэтому безопасным считается максимум 12 Вольт напряжения в Vin и GND.

  • 9-вольтовая батрейка типа «Крона»
  • Любой блок питания на 12 вольт
  • От связки аккумуляторов
  • От любой батарейки и повышающего китайского модуля

Ограничения по току

  • Выход с платы 5V, максимальный ток — 800 мА (при питании от USB!)

  • Выход с платы 3.3V, максимальный ток — 50 мА (в любом случае)

  • Любой цифровой пин даёт 5V (или меньше, при питании в 5V), максимальный ток — 40 мА. Это означает, что от цифровых пинов нельзя питать мощные нагрузки, максимум — светодиоды. Для всего остального — реле, транзистор, драйвер, и так далее.

  • Пины ШИМ сигнала дают 0-5V, максимальный ток — 40 мА. Для плавного управления большим количеством светодиодов (больше одного) или моторчиков нужно использовать драйвер или полевой (MOSFET) транзистор.


2018-04-10T10:29:55+00:00