В мире Arduino существует собственная, написанная на java, IDE, достаточно спартанского вида, без подсветки текста и автодополнения! Главные ее функции — это сборка программы и загрузка. Компиляция осуществляется через avr-gcc, а загрузка в МК через avrdude. После нескольких месяцев использования, решил поискать альтернативу, так как Arduino IDE у меня периодически умудрялось грузить процессор на 100% или просто вылетать! Проверив выдачи поисковика, был маленько разочарован, под linux особо альтернатив нет, кроме консольной ino. Ну что, возможно, консольного клиента нам вполне и хватит, приступим…
Возьмем среду разработки: Geany – легкий и удобный кросплатформенный редактор, с возможность прикрутить свои скрипты, имеющий встроенную консоль и легко расширяемый через плагины. Далее, все действия будут производится на debian/ubuntu x86-64 системе.
1. Установим ino, Geany и плагины к нему:
$ sudo apt-get install geany geany-plugins pip picocom
$ sudo pip install ino
2. Приступим к настройке ino. Для её работы нужна папка с оригинальной arduino ide, желательно стабильную версию 1.0.5. С бета версиями у меня не заработало, так как там поменяли логику расположения библиотек и ручная подгонка не привела к успеху, поэтому остановился на версии 1.0.5. Нужно ее скачать и распаковать в любую удобную директорию. У меня будет в корень каталога пользователя /home/user/. Ino в основном использует 4 команды:
- ino init — создает структуру папок для проекта, выполнять нужно в пустом каталоге
- ino build -d /путь_до_каталога_arduino_ide — компилирует проект
- ino upload — загружает проект в МК
- ino clean — очистка результатов предыдущей сборки
Советую создать минимальный файл настроек для ino c описанием свой платы arduino и серийного порта для работы с ней:
$ cat ~/.inorc
[build]
board-model = uno
[upload]
board-model = uno
serial-port = /dev/ttyACM0
[serial]
serial-port = /dev/ttyACM0
3. Приступим к легкой настройке Geany и совмещению его с arduino.
Нужные плагины каждый может подключить по своему усмотрению. Делается это в два клика мышью через инструменты → менеджер модулей.
Поменяем стандартную тему на темную + шаблоны подсветки кода:
$ wget http://geany-dark-scheme.googlecode.com/files/geany_dark_filedefs_20100304_190847.zip /tmp/
$ mkdir ~/.config/geany/geany_dark_filedefs && unzip /tmp/geany_dark_filedefs_20100304_190847.zip -d ~/.config/geany/geany_dark_filedefs/
$ rm -r ~/.config/geany/filedefs && ln -s ~/.config/geany/geany_dark_filedefs/ ~/.config/geany/filedefs
Далее можно запустить Geany, он будет с новой темной темой. Заходим в Инструменты → файлы настроек → filetype_extensions.conf и в конец строчки с C++ добавить *.ino, для того чтобы файлы проектов arduino открывались с подсветкой кода в стиле С++. Если есть желание, то подсветку кода можно настроить под себя ~/.config/geany/geany_dark_filedefs/filetypes.cpp. К сожалению не нашел готового snippets(автодополнение) файла под arduino. Специфичные функции, опять же, желающие могут сделать и опубликовать.
Пример добавления snippets
Инструменты → файлы настроек → snippets.conf добавляем в раздел С++ следующую строчку
Serial=Serial.print(%cursor%);
4. Настроим сборку Arduino проекта в Geany:
Cборка → Установить команды сборки
- Скомпилировать —
cd .. && ino build -d /home/user/arduino-1.0.5 && find . -name 'firmware.hex' ! -path './.build/uno/*' -print -exec cp -f {} .build/uno \;
- Зарузка в МК —
cd .. && ino upload
- Полная сборка —
cd .. && ino clean && ino build -d /home/user/arduino-1.0.5 && mkdir .build/uno && find . -name 'firmware.hex' ! -path './.build/uno/*' -print -exec cp -f {} .build/uno \;
- Выполнить —
ino serial
Картинка с настройками
Видео пример работы
В данных командах есть немного магии, связанной с особенностью работы ino. А именно то, что после сборки ino создает папку ./build/название_МК_рандомное_число, а при загрузке в МК ищет ее в папке ./build/название_МК. Возможно, данные моменты можно исправить флагами для ino или настройками в конфиге, особо не искал, сделал через bash.
Для создания нового проекта, надо сначала через консоль создать папку, зайти в нее и выполнить ino init. Далее уже через geany можно создать файл проект (или открыть по умолчанию созданный sketch.ino). При первой сборке нужно выполнить команду «Полная сборка», далее уже можно использовать «Скомпилировать». В принципе на этом все. Работает все идеально, при этом если есть желание geany можно полностью настроить под себя. Записал маленькое видео работы для наглядности.
Примечание: в ino есть баг с парсингом библиотеки wifi, которая входит в стандартную поставку arduino ide. Перед запуском ino -d /путь надо удалить ее из каталога /libraries.
Материалы, которые использовались для статьи: