Знакомство со средой разработки Arduino IDE

Цель работы

Знакомство с базовыми функциями среды разработки Arduino IDE

Задачи работы

  1. Установка среды разработки.
  2. Дополнительные настройки для ОС Linux.
  3. Подключение платы Arduino к среде.
  4. Загрузка примера из набора примеров.
  5. Управление библиотеками.

Инструменты для выполения работы

  1. Компьютер с подключением к сети Internet.
  2. Плата Arduino с USB выходом (например, Arduino Uno).

Теоретическая часть


Платформа Arduino представляет собой семейство микроконтроллеров на базе процессоров Atmel, STM и ARM. Все микроконтроллеры программируются на языке C/C++ в среде разработки Arduino IDE. Большая часть плат Arduino (кроме маленьких, таких как micro, pro mini) имеют идентичное расположение выводов (пинов, pins) и позволяют подключать унифицированные сторонние модули, называемые шилдами (Shield). На всех платах имеется набор цифровых и аналоговых пинов, а так же интерфейсы SPI и I2C. Для работы со сторонними модулями в среде разработки имеется менеджер библиотек, куда собраны наиболее часто используемые для Arduino библиотеки.
 
Обзор ресурсов по arduino
https://www.arduino.cc/ - официальный сайт
https://www.arduino.cc/en/Main/Software - среда разработки Arduino IDE
https://www.arduino.cc/en/Reference/HomePage - справочник по языку разработки
http://wiki.amperka.ru/ - Большая вики по контроллерам, модулям, механике, обработке сигналов и т.п.
http://arduino-diy.com/ - много информации по подключению к Arduino модулей, примеры проектов на Arduino
  Большинство микроконтроллеров имеют поддержку USB (встроенную либо вынесенную в отдельный преобразователь) и подключаются к операционной системе как последовательный порт. Последовательный порт (COM порт) - специальный порт для последовательной передачи данных между устройствами. Может быть аппаратным (специальный COM разъем на материнской плате ПК), либо эмулируется  поверх другого аппаратного протокола (например, поверх USB, как в случае с Arduino). Последовательный порт используется для загрузки программы на микроконтроллер, а так же может использоваться для взаимодействия ПК и программы для микроконтроллера (в Arduino IDE по другому эта программа называется "скетч").
Задание: опишите представление последовательных портов в ОС семейств WIndows и Linux (UNIX) и методы программного взаимодействия с ними
 

Скетч для микроконтроллера Arduino представляет собой файл с расширением .ino, содержащий код на языке C/C++ (https://ru.wikipedia.org/wiki/C%2B%2B). Код состоит из нескольких основных блоков:
  1. Подключения заголовочных файлов библиотек.
  2. Объявления глобальных переменных, констант, макроопределений.
  3. Определение пользовательских функций, структур и классов.
  4. Функция setup() - вызывается один раз в начале работы программы, в ней должна производится инициальзация контроллера - настройка пинов, запуск последовательного порта, SPI и I2C интерфейсов.
  5. Функция loop() - вызывается микроконтроллером в бесконечном цикле, в ней производится основная работа.
После загрузки на микроконтроллер программа созраняется даже после отключения Arduino, до тех пор, пока она не будет перезаписана новой программой.

Выполнение работы

Установка среды разработки


Открываем веб-браузер, заходим на https://www.arduino.cc/en/Main/Software и скачиваем нужную версию среды разработки для установленной на ПК операционной системы. На момент написания лабораторной работы последняя версия 1.8.3. Запускаем установщик для ОС Windows или распаковываем архив.

Дополнительные настройки для ОС Linux

Для того, чтобы была возможность подключить плату к среде разработки на ОС Linux, необходимо добавить пользователя в группу dialout. Это можно сделать либо при помощи стандартного интерфейса управления пользователями и группами (если присутствует), либо командой
$ sudo usermod -aG dialout

Подключение платы к среде разработки

Подключаем плату к ПК USB кабелем. В среде разработки указываем нужную плату (на плате указано ее наименование):


Далее указываем нужный порт:

(На ОС Windows будут названия портов вида COM1, COM2, и т.д.)
Вызвав пункт меню "Инструменты -> Get board info", можно проверить, что на выбранном порту действительно находится нужная плата.
Примечание: как определить нужный порт? Самый простой способ: отключаем плату от ПК, смотрим список портов. Подключаем плату обратно и снова смотрим список портов. Появившийся порт, которого раньше не было - тот, который нужен.
 

Загрузка примера из набора примеров

Выбираем из библиотеки примеров скетч Blink (Файл -> Примеры -> 0.1Basics -> Blink). Проверяем выбранный порт и плату. Нажимаем кнопку Загрузить () или выбираем "Скетч -> Загрузка". После загрузки скетча на плате должен начать мигать светодиод раз в секунду.
 

Управление библиотеками


Иногда в процессе работы возникает необходимость подключения к скетчу сторонних библиотек, например, для работы с различными датчиками. Библиотека представляет собой набор заголовочных и файлов (с расширением .h) и файлов с исходным кодом (расширение .c или .cpp). При подключении библиотеки в скетч добавляются подключения нужных заголовочных файлов (строки вида #include <...>).
Для примера, подключим одну из стандартных библиотек Wire. Выбираем "Скетч -> Подключить библиотеку -> Wire". При этом IDE автоматически добавит изменения в скетч, необходимые для подключения библиотеки. В верху файла скетча должна появиться строка:
#include <Wire.h>
Использвать данную библиотеку мы будет позднее в работах по взаимодействию с некоторыми датчиками.
Сразу после установки в среде разработки уже доступен базовый набор библиотек (в том числе Wire из примера выше). Остальные библиотеки сначала нужно загрузить в IDE, для этого используется менеджер библиотек. Выбираем пункт меню "Скетч -> Подключить библиотеку -> Управление библиотеками". В менеджере присутствует множество библиотек для работы с различными модулями/протоколами и т.п. После загрузки библиотеки она становится доступна для подключения к скетчу.

В верхгнй части менеджера находятся два поля фильтрации по типу и теме, а так же поле текстового поиска по наванию и описанию библиотеки. При выборе библиотеки в списке становится доступна кнопка "Установка", для некоторых библиотек так же можно выбрать версию, если есть несколько версий.
Задание: найдите в менеджере библиотек библиотеки для работы с датчиками температуры и выпишите их в список (не устанавливая)