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

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

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

БЫСТРЫЙ ГАЙД ДЛЯ ПРОЕКТОВ ALEXGYVER

1. Скачать архив со страницы проекта, нажав зелёную кнопку

1. Если вы зашли с GitHub, то скачать архив (это тот же самый архив!), кликнув Clone or download, затем Download ZIP

2. Извлечь содержимое архива при помощи программы архиватора. Если у вас нет WinRAR, то скачать его можно здесь.

3. Установить библиотеки, перетащив их из libraries из папки с проектом в пустое место ардуиновской папки библиотек libraries.

3.1 Вот так для примера выглядят установленные библиотеки. Если вам предложат заменить файлы – заменяйте.

4. Проверьте выбранную плату и COM порт. Если у вас доступен только COM1 – проверьте подключение/провод/ардуину. После выбора COM порта жмём стрелочку загрузить.

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

  • Качаем и устанавливаем актуальную версию Arduino IDE с сайта разработчика. Arduino IDE есть под Windows (+ версия Windows 10 app), для Mac OS и для Linux. При скачивании можно отказаться от пожертвования, нажав JUST DOWNLOAD (только скачать). При установке Arduio IDE должны автоматически установиться драйвера, если вылезет окошко “Установить ли неизвестный драйвер?” жмём да, всё равно установить.

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

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

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

При установке Arduio IDE должны автоматически поставиться драйверы, необходимые для работы с оригинальными платами Arduino. Но фишка в том, что на китайских платах стоит более дешёвый контроллер интерфейса USB, для работы с ним нужен специальный драйвер.

Если по какой-то причине у вас не установились драйверы от Arduino, их можно установить вручную из папки с программой.
Драйвер CH341 для Windows можно скачать по ссылке с моего сайта, либо самому поискать в гугле.

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

Драйвер CH341 для Mac можно скачать по ссылке с моего сайта, либо со страницы источника. Если у вас будут какие-то проблемы с OSX Sierra и выше, читайте вот эту статью.

За инфу спасибо Денису Алексееву

По умолчанию в linux можно прошивать китайские ардуинки без дополнительного оборудования. Но вначале ничего не получается и Arduino IDE выдает ошибку.
Дело вот в чем. Linux (в моем случае linux mint) определяет ардуинку как устройство ttyUSB*. Обычно это ttyUSB0. Это можно узнать командой dmesg в терминале.
То есть, в системе появляется интерфейс /dev/ttyUSB0. Но чтобы с ним работать, нужны права доступа. Читать и писать на устройство /dev/ttyUSB0 имеет пользователь root и пользователи группы dialout. Работы с правами суперпользователя лучше избегать, поэтому следует занести своего пользователя в группу dialout. Это можно сделать следующей командой(обратите внимание, команда whoami в обратных кавычках)
sudo usermod -a -G dialout `whoami`
После этого нужно перелогиниться. Дальше запускаем Arduino IDE и в меню «Инструменты-Порт» ставим галочку напротив /dev/ttyUSB0.

За инфу спасибо Владу Шеменкову

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)
    Таким образом вы узнаете, что Ардуина изначально рабочая (на тот случай, когда после сборки/пайки она перестанет работать и прошиваться), то есть вы сами её сломали, а не она была изначально бракованная =)

3.1 Настраиваем Arduino IDE для плат Digispark

  • Запустить Arduino IDE, перейти в Файл/Настройки. В окошко “Дополнительные ссылки…” Вставить http://digistump.com/package_digistump_index.json и нажать ОК

  • Перейти в Инструменты/Плата/Менеджер плат… Начать вводить в поиске “Digispark”. Выбрать и установить Digistump AVR Boards

  • Теперь в списке плат появится семейство плат Digispark! Выбираем первую (Digispark (Default – 16.5mhz))

  • Рекомендую установить драйвера, скачать можно на официальном GitHub проекта (в папке tools), либо с моего FTP. Драйвера есть для Win, MacOS и Linux.

  • Прошивка загружается следующим образом: ПЛАТУ НЕ ПОДКЛЮЧАЕМ, ПОРТ НЕ ВЫБИРАЕМ, нажимаем загрузка, ждём компиляции. Появится надпись “подключите плату”. Втыкаем дигги в USB и прошивка загружается. Почему так? Дигги имеет на борту свой USB интерфейс, поэтому работает напрямую.

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.

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

  • Иногда причиной ошибки бывает слишком старая, или слишком новая версия Arduino IDE. Читайте комментарии разработчика скетча

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

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

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

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

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

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

  • Если в описании ошибки встречается слово averdude или bootloader is not responding – с вероятностью 95% сдох загрузчик, например при случайном коротком замыкании провода на плату. Второй неприятный исход – загрузчик “слетел”, и его можно прошить заново программатором или другой Ардуиной. Подробнее об этом можно почитать в гугле по “как перепрошить загрузчик на Ардуино“. Третий вариант – какое то подключенное к плате железо (датчики, модули) “мешает” микроконтроллеру прошиться. Если у вас задействованы пины RX или TX – отключите от них всё! Но если не прошивается абсолютно “голая” плата, то это явно первый или второй вариант в этом пункте.

  • Причиной ошибки загрузки может быть неправильно выбранная плата в “Инструменты/Плата”, а также неправильно выбранный процессор в “Инструменты/Процессор”. Чаще всего покупают плату с atmega168 вместо atmega328. У 168 версии в два раза меньше памяти для прошивок!

  • Если у вас открыт монитор COM порта в другом окне Arduino IDE или плата общается через СОМ порт с другой программой (Ambibox, HWmonitor, SerialPortPlotter и т.д.), то вы получите ошибку загрузки, потому что порт занят. Отключитесь от порта или закройте другие окна и программы.

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

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

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-09-26T17:23:21+00:00