Как стать автором
Обновить

Альтернативная среда разработки для Arduino

Время на прочтение4 мин
Количество просмотров49K

      В мире 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борка → Установить команды сборки
  1. Скомпилировать — cd .. && ino build -d /home/user/arduino-1.0.5 && find . -name 'firmware.hex' ! -path './.build/uno/*' -print -exec cp -f {} .build/uno \;
  2. Зарузка в МК — cd .. && ino upload
  3. Полная сборка — 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 \;
  4. Выполнить — ino serial

Картинка с настройками

Видео пример работы

     В данных командах есть немного магии, связанной с особенностью работы ino. А именно то, что после сборки ino создает папку ./build/название_МК_рандомное_число, а при загрузке в МК ищет ее в папке ./build/название_МК. Возможно, данные моменты можно исправить флагами для ino или настройками в конфиге, особо не искал, сделал через bash.

     Для создания нового проекта, надо сначала через консоль создать папку, зайти в нее и выполнить ino init. Далее уже через geany можно создать файл проект (или открыть по умолчанию созданный sketch.ino). При первой сборке нужно выполнить команду «Полная сборка», далее уже можно использовать «Скомпилировать». В принципе на этом все. Работает все идеально, при этом если есть желание geany можно полностью настроить под себя. Записал маленькое видео работы для наглядности.

Примечание: в ino есть баг с парсингом библиотеки wifi, которая входит в стандартную поставку arduino ide. Перед запуском ino -d /путь надо удалить ее из каталога /libraries.
Материалы, которые использовались для статьи:
Теги:
Хабы:
Всего голосов 21: ↑19 и ↓2+17
Комментарии16

Публикации

Истории

Ближайшие события

15 – 16 ноября
IT-конференция Merge Skolkovo
Москва
22 – 24 ноября
Хакатон «AgroCode Hack Genetics'24»
Онлайн
28 ноября
Конференция «TechRec: ITHR CAMPUS»
МоскваОнлайн
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань