Чем открыть ino arduino
Ino — работа с Arduino из командной строки
Хабрадевелоперам, привет!
Те, кто работал с Arduino, знает, что для его программирования существует специальная Arduino IDE. По сути это блокнот с двумя кнопками: «прошить» и «послушать через serial». Блокнот подходит для написания маленьких программок-экспериментов, но выбешивает при написании чего-то большего.
Многие привыкли работать в своих любимых Visual Studio, Eclipse, KDevelop и т.п. Я сам — убеждённый фанат Vim’а, окна терминала и кнопок Alt+Tab. Давно хотелось, чтобы сборка проектов для Arduino была такой же простой, как в официальной IDE, а вот их ужасный редактор на глаза больше не попадался. Тем более, что язык «Arduino» несмотря на позиционирование как отдельного, простого языка программирования — это не что иное, как C++. А собирается всё в конечном итоге инструментами avr-gcc.
Для решения проблемы Амперкой был создан Ino.
Предыстория
Мне никогда не было понятно почему Arduino Software была сделана в виде монолитного решения, а не была разбита на 2 слоя: командная строка и UI. Именно это ограничивало возможности работы в любимых редакторах. Непонятно было не мне одному, поэтому народ то и дело делился всяческими Makefile’ами, CMake-скриптами, wscript’ами, SConstruct’ами. Однако всё это было не достаточно универсально, тянуло за собой копипаст между проектами и плохо расширялось.
Я пробовал оформить удобную сборку в виде расширений для SCons и Waf. Обе попытки были удачны в какой-то степени, но в итоге структура проекта и пайплайн сборки оказывались достаточно сложны для того, чтобы можно было кому-то за полминуты объяснить как этим правильно пользоваться.
В итоге решил сделать что-то с крайне простым интерфейсом. Таким же простым как у git, mercurial, svn:
ino init # создать скелет проекта
ino build # собрать бинарник
ino upload # прошить arduino
ino serial # поговорить с ним по serial
Что получилось
Получилось то, что хотелось. Дабы не изобретать велосипед с нуля, для сборки за кадром используется make. Реализовано автоматическое отслеживание используемых библиотек, как и в оригинальном IDE; исходники разыскиваются так же на автомате, без помощи каких-либо xfile’ов в каждой директории.
В общем, совместимость была сохранена по-максимуму, чтобы сделать Arduino IDE и Ino взаимозаменяемыми. Надеюсь инструмент окажется полезен другим. Что думает публика?
Программное обеспечение
Интегрированная среда разработки Arduino — или Arduino Software (IDE) — содержит текстовый редактор для написания кода, область сообщений, текстовую консоль, панель инструментов с кнопками для общих функций и ряд меню. С помощью IDE можно подключиться к платам Arduino и Genuino для загрузки программ.
Пишем скетчи
Дополнительные команды находятся в пяти меню: «Файл (File)», «Правка (Edit)», «Скетч (Sketch)», «Инструменты (Tools)», «Помощь (Help)». Меню являются чувствительными к контексту, что означает, что доступны только те элементы, которые относятся к выполняемой в настоящее время работе.
ПРАВКА
СКЕТЧ
ИНСТРУМЕНТЫ
ПОМОЩЬ
Здесь вы найдете легкий доступ к ряду документов, поставляемых с программным обеспечением Arduino (IDE). Документы представляют собой локальную копию онлайн-ссылок.
Альбом программ
Программное обеспечение Arduino (IDE) использует принцип альбом программ (Sketchbook). Он представляет собой обычную папку в памяти вашего компьютера, в которой хранятся все ваши программы и эскизы программ. Эскизы в вашем альбоме можно открыть из меню «Файл» > «Папка со скетчами» или c помощью кнопки «Открыть» на панели инструментов. При первом запуске программного обеспечения Arduino каталог для вашего альбома создается автоматически. Вы можете посмотреть или изменить его местоположение с помощью диалогового окна «Настройки».
Вкладки, присоединение файлов, компиляция
Загрузка скетча
Перед загрузкой эскиза вам нужно выбрать правильные элементы в меню «Инструменты» > «Плата» и «Инструменты» > «Порт». Применяемые платы описаны ниже.
Когда вы загружаете эскиз, вы используете загрузчик (bootloader) Arduino. Это небольшая программа, которая была загружена в память микроконтроллера на вашей плате. Он позволяет загружать код без использования какого-либо дополнительного оборудования. Загрузчик активен в течение нескольких секунд, пока плата сбрасывается. Затем вступает в работу скетч, последний записанный в память контроллера. При работе загрузчика начинает мигать светодиодный индикатор (pin13).
Библиотеки
Библиотеки предоставляют дополнительную функциональность, которую можно использовать в своих программах. Например, работа со специфическим оборудованием или обработка данных. Чтобы использовать библиотеку в эскизе, выберите ее в меню «Скетч» > «Подключить библиотеку». Эта команда вставляет один или несколько операторов #include в верхней части эскиза и компилирует библиотеку с вашим эскизом. Поскольку библиотеки загружаются на плату вместе с эскизом, они увеличивают объем занимаемого программой пространства. Если эскизу больше не нужна библиотека, нужно удалить инструкции #include из верхней части кода.
В ссылке есть список библиотек. Некоторые библиотеки включены в программное обеспечение Arduino. Другие могут быть загружены из разных источников или через Менеджер библиотек. Начиная с версии 1.0.5 IDE, вы можете импортировать библиотеку из zip-файла и использовать ее в вашем эскизе. Инструкции по установке сторонней библиотеки смотрите в этих инструкциях.
Чтобы написать свою собственную библиотеку, смотрите этот учебник.
Оборудование сторонних производителей
В ваши альбомы можно добавлять библиотеки для работы не только с платами Ардуино, но и плат сторонних производителей. Платформы, установленные там, могут включать определения плат (которые отображаются в меню «Инструменты» > «Плата»), основные библиотеки, загрузчики и определения программистов. Для установки создайте каталог оборудования, затем распакуйте стороннюю платформу в свой собственный подкаталог. (Не используйте термин «arduino» в качестве имени подкаталога, иначе вы переопределите встроенную платформу Arduino.) Для удаления платформы просто удалите ее каталог.
Подробнее о создании пакетов для сторонних аппаратных средств см. Спецификацию оборудования сторонних производителей Arduino IDE 1.5.
Монитор порта
Он отображает последовательность данных, отправленных с платы Arduino или Genuino через USB или последовательный порт. Чтобы отправить данные на плату, введите текст и нажмите кнопку «Отправить» или нажмите «Ввод». В раскрывающемся меню выберите скорость передачи, которая соответствует скорости, прописанной в Serial.begin в программе. Обратите внимание, что в Windows, Mac или Linux плата будет перезагружена (она запустит вашу программу заново) при подключении к монитору порта. Также необходимо обратить внимание, что монитор порта не обрабатывает управляющие символы; если для вашего эскиза требуется полное управление последовательной связью с управляющими символами, вы можете использовать внешнюю программу-терминал и подключить ее к COM-порту, назначенному вашей плате Arduino.
Также вы можете обмениваться данными с платой с помощью Processing, Flash, MaxMSP и т. д. (Более подробно можно посмотреть на странице).
Настройки
Некоторые настройки могут быть выставлены в диалоговом окне настроек «Файл» > «Настройки». Остальные можно найти в файле настроек, местоположение которого показано в диалоговом окне «Настройки».
Поддержка языков
Начиная с версии 1.0.1, программное обеспечение Arduino (IDE) было переведено на многие языки мира. По умолчанию IDE использует язык, установленный вашей операционной системой. Если вы хотите вручную изменить язык, запустите программу Arduino (IDE) и выберите пункт «Файл» > «Настройки». Найдите пункт «Язык редактора» и раскрывающееся меню со списком поддерживаемых языков. Выберите нужный язык в меню и перезапустите программное обеспечение. Если выбранный вами язык не поддерживается операционной системой, то программа после рестарта автоматически будет использовать английский язык.
Вы можете вернуть языковые настройки, используемые по умолчанию операционной системой. Для этого выберите в списке языков пункт «System Default». Этот параметр вступает в силу при рестарте программного обеспечения Arduino (IDE). Таким же образом, после изменения настроек операционной системы, вы должны перезапустить программное обеспечение Arduino (IDE), чтобы обновить его до нового языка по умолчанию.
Платы
Программное обеспечение Arduino (IDE) включает встроенную поддержку следующих плат, все на основе микроконтроллера AVR Core. Менеджер плат включен в стандартную установку и позволяет добавлять поддержку для новых плат, число которых постоянно растет.
Инструкции по установке поддержки плат других производителей смотрите в разделе «Оборудование сторонних производителей» выше.