Среда разработки Ардуино
Интерфейс среды разработки Ардуино содержит следующие основные элементы: текстовый редактор для написания кода, область для вывода сообщений, текстовая консоль, панель инструментов с традиционными кнопками и главное меню. Данный софт позволяет компьютеру взаимодействовать с Ардуино как для передачи данных, так и для прошивки кода в контроллер.
Написание программ
Программы, создаваемые в среде разработки Ардуино, иногда еще называют скетчами. Скетчи пишутся в текстовом редакторе и сохраняются в файлах с расширением .ino. Встроенный текстовый редактор имеет стандартные инструменты копирования, вставки, поиска и замены текста. Область сообщений в окне программы является, своего рода, обратной связью для пользователя и информирует его о событиях (в том числе и об ошибках), возникающих в процессе записи или экспорта написанного кода. Консоль отображает в виде текста поток выходных данных среды Ардуино, включая все сообщения об ошибках и пр. генерируемую ею информацию. В нижнем правом углу окна программы показывается модель текущей платы и последовательный порт, к которому она подключена. Кнопки на панели инструментов предназначены для создания, открытия, сохранения и прошивки программ в устройство. Отдельная кнопка запускает программу SerialMonitor.
Примечание: В старых версиях IDE (до версии 1.0) скетчи сохраняются с расширением .pde. Такие файлы без проблем открываются в версии 1.0, но при их пересохранении появится сообщение с предложением изменить формат файла на .ino.
Verify (Проверить) |
|
Upload (Прошить) Примечание: чтобы прошить микроконтроллер через внешний программатор - нужно зажать клавишу "shift" перед нажатием на эту иконку. При этом текст возле кнопки изменится на "Upload using Programmer". |
|
New (Создать) |
|
Open (Открыть) Примечание: к сожалению, из-за бага Java'ы, в этом меню не работает скроллинг; поэтому если вам нужно открыть программу из самого конца списка - лучше используйте меню File | Sketchbook. |
|
Save (Сохранить) |
|
Serial Monitor |
Дополнительные команды находятся в меню: File, Edit, Sketch, Tools и Help. В этих меню всегда активны только те пункты, которые можно применить к текущему элементу или фрагменту кода.
Меню "Edit (Правка)"
- Copy for Forum (Скопировать для форума)
Скопировать код программы в буфер обмена в специальном формате, удобном для постинга на форум (с подсветкой синтаксиса). - Copy as HTML (Скопировать как HTML)
Скопировать код программы в буфер обмена в виде HTML-кода, удобного для встраивания в веб-страницы.
Меню "Sketch (Программа)"
- Verify/Compile (Проверить/Компилировать)
Проверить код программы на ошибки. - Show Sketch Folder (Показать папку программы)
Открыть папку с файлом текущего скетча. - Add File... (Добавить файл...)
Добавляет исходный файл к текущей программе (выбранный файл будет скопирован из исходной папки). Добавленный файл появится в новой вкладке главного окна. Удалить файлы можно с помощью таб-меню. - Import Library (Импортировать библиотеку)
Добавляет библиотеку к вашей программе путем вставки оператора #include вначале кода. Подробнее о библиотеках см. ниже. Кроме того, в версиях IDE 1.0.5 и выше реализована возможность импортирования библиотек из .zip-архивов.
Меню "Tools (Инструменты)"
- Auto Format (Автоформат)
Эта команда наводит красоту в вашем коде, а именно: делает одинаковые отступы соответствующих открывающих и закрывающих фигурных скобок, дополнительные отступы кода внутри логических блоков. - Archive Sketch (Заархивировать скетч)
Создать .zip-архив текущего скетча. Результирующий архив помещается в папку с программой. - Board (Плата)
Выбрать модель используемого Ардуино. Описание различных плат Ардуино см. ниже. - Serial Port (Последовательный порт)
Это меню содержит список всех последовательных устройств, присутствующих в системе (как физических, так и виртуальных). Их список должен обновляться автоматически при каждом открытии главного меню. - Programmer (Программатор)
Позволяет выбрать внешний программатор для прошивки микроконтроллера без использования USB-соединения. Обычно эта функция требуется редко - например, для прошивки загрузчика в новый микроконтроллер. - Burn Bootloader (Прошить загрузчик)
Это меню позволяет прошить загрузчик в контроллер Ардуино. При нормальной работе Ардуино эта функция обычно не требуется, но она может быть полезна, если вам вдруг потребуется заменить микроконтроллер ATmega на новый (который с магазина идет без загрузчика). Перед прошивкой убедитесь, что в меню Boards выбрана именно ваша плата.
Скетчбук (рабочая папка)
В среде разработки Ардуино используется принцип организации скетчбука: все ваши программы (или скетчи) хранятся в одном месте. Чтобы просмотреть их, необходимо выбрать меню File > Sketchbook или щелкнуть по кнопке Open на панели инструментов. Директория для хранения ваших программ будет автоматически создана при первом запуске среды Ардуино. Ее месторасположение всегда можно изменить в окне настроек программы.
Начиная с версии 1.0, файлы скетчей имеют расширение .ino. В предыдущих версиях использовалось расширение .pde. В новых версиях программы (1.0 и старше) файлы .pde по-прежнему можно открыть, только их расширение будет автоматически переименовано на .ino.
Вкладки, компиляция и работа с несколькими файлами
Среда Ардуино позволяет работать с программами, состоящими из нескольких файлов (каждый из которых открывается в отдельной вкладке). Например, это могут быть файлы Ардуино (без расширения), C-файлы (с расширением .c), файлы C++ (с расширением .cpp) или заголовочные файлы (.h).
Прошивка
Перед тем, как прошивать программу в контроллер, необходимо правильно выбрать плату и последовательный порт в меню Tools > Board и Tools > Serial Port соответственно. Разновидности плат Ардуино перечислены ниже. Последовательный порт на Mac-системах будет выглядеть примерно так: /dev/tty.usbmodem241 (для Arduino Uno, Mega2560 или Leonardo) или /dev/tty.usbserial-1B1 (для Duemilanove или более старых версий Ардуино с USB), или /dev/tty.USA19QW1b1P1.1 (для USB-UART преобразователей Keyspan). На Windows-системах, необходимый порт скорее всего будет COM1 или COM2 (для устройств с последовательным интерфейсом), либо COM4, COM5, COM6 и выше (для Ардуино с USB) - определить необходимый номер порта можно в Диспетчере устройств, отыскав строку "USB serial device" в разделе Порты. На Linux-системах последовательный порт будет выглядеть как /dev/ttyUSB0, /dev/ttyUSB1 или что-то наподобие.
После выбора используемого порта и платы, необходимо нажать кнопку Upload на панели инструментов или выбрать пункт Upload из меню File. После этого произойдет сброс Ардуино и начнется процесс загрузки программы в память контроллера. В старых моделях (до Arduino Diecimila) функция авто-сброса отсутствует, поэтому перед прошивкой таких устройств необходимо вручную нажать кнопку сброса на плате. В процессе загрузки на большинстве моделей Ардуино будут мигать светодиоды RX и TX. По завершению процесса прошивки, программа выдаст соответствующее сообщение или ошибку.
Загрузка программы в Ардуино осуществляется с помощью загрузчика - небольшой программы, прошитой в памяти микроконтроллера, которая позволяет загружать в него код без внешних аппаратных средств. Загрузчик активизируется на несколько секунд после сброса устройства, после чего он запускает на выполнение последний загруженный в контроллер скетч. При запуске загрузчика будет мигать встроенный светодиод, подключенный к 13 ножке контроллера.
Библиотеки
Библиотеки расширяют функциональность программ и несут в себе дополнительные функции, например, для работы с аппаратными средствами, функции по обработке данных и т.д. Для подключения библиотеки необходимо выбрать ее из меню Sketch > Import Library. После этого библиотека будет скомпилирована, а в начало программы будет добавлен один или несколько операторов #include. Помните, что библиотеки загружаются в контроллер вместе со скетчем, поэтому каждая подключенная библиотека треубет дополнительного места в памяти микроконтроллера. Соответственно, если та или иная библиотека больше не используется в вашей программе - просто удалите оператор #include из программы.
Список основных библиотек, описанных на сайте, приведен здесь. Некоторые из них устанавливаются вместе со средой разработки Ардуино, остальные можно скачать из разных источников. В версиях IDE 1.0.5 и старше реализована возможность импорта библиотек прямо из zip-архива и подключения их к текущему скетчу. См. инструкции по установке сторонних библиотек.
Инструкции по написанию собственных библиотек см. здесь.
Оборудование сторонних производителей
Для работы с "железом" сторонних производителей необходимо добавить ряд файлов в директорию hardware, расположенную внутри рабочей папки. Среди этих файлов должны быть файлы с информацией о добавляемой плате (эта информацию будет отображаться в меню Board), библиотеки, загрузчики и параметры для программатора. Для установки нового оборудования необходимо создать папку внутри директории hardware и распаковать в нее содержимое архива с данными о добавляемом "железе". (Не следует называть создаваемую папку "arduino", иначе будет затерта информация о самой платформе Ардуино). Чтобы удалить добавленное оборудование - достаточно просто удалить его папку.
Дополнительную информацию о создании пакетов для стороннего оборудования можно найти в соответствующем разделе на сайте Arduino Google Code.
Программа "Serial Monitor"
Отображает данные, поступающие от Ардуино на компьютер по последовательному интерфейсу (поддерживается работа как с USB-, так и с обычными версиями Ардуино). Чтобы отправить данные внешнему устройству, достаточно просто ввести текст в окне программы и щелкнуть по кнопке "Отправить" (либо нажать Enter). Из выпадающего списка необходимо выбрать только скорость передачи данных, соответствующую той скорости, которую вы указали в функции Serial.begin() в вашем скетче. Помните, что на Mac- и Linux-системах, Ардуино будет сбрасываться при каждом подключении программы к устройству (соответственно, после сброса скетч будет выполняться заново).
Общаться с Ардуино можно также через Processing, Flash, MaxMSP и пр. (подробнее об этом читайте здесь).
Настройки
Некоторые параметры можно задать непосредственно в окне настроек программы (на Mac-системах это окно вызывается из меню Arduino, на Windows и Linux-системах - из меню File). Остальные параметры находятся в конфиг-файле, местонахождение которого также указано в окне настроек.
Поддерживаемые языки
Среда разработки Ардуино 1.0.1 переведена более чем на 30 различных языков. По умолчанию, язык IDE выбирается исходя из языковых настроек вашей операционной системы. (Обратите внимание: на Windows и Linux-системах язык IDE определяется по региональным настройкам, отвечающим за формат даты и валюты, а не по языкоу самой операционной системы).
Если вы хотите вручную изменить текущий язык программы, запустите среду Ардуино и откройте окно настроек. В поле Editor Language будет выпадающий список поддерживаемых языков. Выберите из списка предпочитаемый язык и перезапустите программу, чтобы изменения вступили в силу. Если выбранный вами язык не поддерживается, то по умолчанию IDE подгрузит английскую локализацию.
Чтобы сбросить языковые настройки среды и вернуть автоматический выбор ее языка по региональным настройкам операционной системы, в выпадающем списке необходимо выбрать пункт System Default. Изменения вступят в силу после перезапуска IDE Arduino. И наоборот, чтобы изменение языковых настроек операционной системы повлияли на текущий язык программы, необходимо просто перезапустить среду Ардуино.
Разновидности плат
Выбирать модель используемой платы в среде Ардуино необходимо по двум причинам:
- Чтобы задать параметры, используемые во время компиляции и прошивки скетчей (такие, как тактовая частота, бодрейт и др.);
- Чтобы задать настройки фьюз-битов, используемые во время прошивки загрузчика в контроллер платы.
Ниже перечислены основные пункты меню Boards и дана расшифровка соответствующих им настроек:
- Arduino Uno
ATmega328, работающий на частоте 16 МГц с авто-сбросом, используемый загрузчик - optiboot (115200 бод, 0.5 КБ). - Arduino Duemilanove w/ ATmega328
ATmega328, работающий на частоте 16 МГц с авто-сбросом. - Arduino Diecimila or Duemilanove w/ ATmega168
ATmega168, работающий на частоте 16 МГц с авто-сбросом. Настройки компиляции и прошивки эквивалентны пункту Arduino NG or older w/ ATmega168, за исключением загрузчика с уменьшенным таймаутом (после сброса платы светодиод на 13-м выводе мигает только один раз). - Arduino Nano w/ ATmega328
ATmega328, работающий на частоте 16 МГц с авто-сбросом. Имеет восемь аналоговых входов. - Arduino Nano w/ ATmega168
ATmega168, работающий на частоте 16 МГц с авто-сбросом. Настройки компиляции и прошивки эквивалентны пункту Arduino NG or older w/ ATmega168, за исключением загрузчика с уменьшенным таймаутом (после сброса платы светодиод на 13-м выводе мигает только один раз). Имеет восемь аналоговых входов. - Arduino Mega 2560 or Mega ADK
ATmega2560, работающий на частоте 16 МГц с авто-сбросом, используемый загрузчик - stk500v2. - Arduino Mega (ATmega1280)
ATmega1280, работающий на частоте 16 МГц с авто-сбросом. - Arduino Leonardo
ATmega32u4, работающий на частоте 16 МГц с авто-сбросом. - Arduino Mini w/ ATmega328
ATmega328, работающий на частоте 16 МГц с авто-сбросом, используемый загрузчик - optiboot(115200 бод, 0.5 КБ). Имеет восемь аналоговых входов. - Arduino Mini w/ ATmega168
Настройки эквивалентны пункту Arduino NG or older w/ ATmega168 (т.е. ATmega168, работающий на частоте 16 МГц без авто-сброса). - Arduino Ethernet
Настройки эквивалентны Arduino UNO с установленной Ethernet-платой расширения. - Arduino Fio
ATmega328, работающий на частоте 8 МГц с авто-сбросом. Настройки эквивалентны пункту Arduino Pro or Pro Mini (3.3V, 8 MHz) w/ATmega328. - Arduino BT w/ ATmega328
ATmega328, работающий на частоте 16 МГц. Прошитый загрузчик (4 КБ) содержит коды для инициализации встроенного bluetooth-модуля. - Arduino BT w/ ATmega168
ATmega168, работающий на частоте 16 МГц. Прошитый загрузчик (4 КБ) содержит коды для инициализации встроенного bluetooth-модуля. - LilyPad Arduino w/ ATmega328
ATmega328, работающий на частоте 8 МГц (3.3В) с авто-сбросом. Настройки эквивалентны пункту Arduino Pro or Pro Mini (3.3V, 8MHz) w/ ATmega328. - LilyPad Arduino w/ ATmega168
ATmega168, работающий на частоте 8 МГц. Настройки компиляции и прошивки эквивалентны пункту Arduino Pro or Pro Mini (8MHz) w/ ATmega168. Используется загрузчик с уменьшенным таймаутом (при сбросе платы светодиод на 13-м выводе мигает три раза), поскольку базовые версии LilyPad не поддерживают функцию авто-сброса. В LilyPad также нет внешнего тактового генератора, поэтому при прошивке загрузчика фьюз-биты ATmega168 устанавливаются таким образом, чтобы контроллер тактировался от внутреннего генератора на 8 МГц.
Если у вас последние версии Arduino LilyPad, (c 6-контактным разъемом для программирования), то перед прошивкой загрузчика следует выбрать пункт Arduino Pro or Pro Mini (8 MHz) w/ ATmega168. - Arduino Pro or Pro Mini (5V, 16 MHz) w/ ATmega328
ATmega328, работающий на частоте 16 МГц с авто-сбросом. Настройки эквивалентны пункту Arduino Duemilanove or Nano w/ATmega328. - Arduino Pro or Pro Mini (5V, 16 MHz) w/ ATmega168
ATmega168, работающий на частоте 16 МГц с авто-сбросом. Настройки эквивалентны пункту Arduino Diecimila, Duemilanove, or Nano w/ ATmega168. - Arduino Pro or Pro Mini (3.3V, 8 MHZ) w/ ATmega328
ATmega328, работающий на частоте 8 МГц (3.3В) с авто-сбросом. Настройки эквивалентны пункту LilyPad Arduino w/ ATmega328. - Arduino Pro or Pro Mini (3.3V, 8 MHz) w/ ATmega168
ATmega168, работающий на частоте 8 МГц (3.3В) с авто-сбросом. - Arduino NG or older w/ ATmega168
ATmega168, работающий на частоте 16 МГц без авто-сброса. Настройки компиляции и прошивки эквивалентны пункту Arduino Diecimila or Duemilanove w/ ATmega168. Используется загрузчик с уменьшенным таймаутом (при сбросе платы светодиод на 13-м выводе мигает три раза). - Arduino NG or older w/ ATmega8
ATmega8, работающий на частоте 16 МГц без авто-сброса.
Инструкции по добавлению в программу других устройств описаны выше в разделе "Оборудование сторонних производителей". Текст данного руководства опубликован под лицензией Creative Commons Attribution-ShareAlike 3.0. Примеры кода, встречающиеся в руководстве, являются свободным контентом.