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


      В мире 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.
Материалы, которые использовались для статьи:
Share post
AdBlock has stolen the banner, but banners are not teeth — they will be back

More
Ads

Comments 16

    +3
    sublime + arduino plugin не пробовали?
      –3
      Не пробывал, но посмотрел по описанию в прицнипе делают тем же методом! Должен быть хороший вариант!
        +1
        Вариант суперский, с подсветкой и автодополнением, проверкой/загрузкой на железку, ну и всеми прелестями самого Sublime Text
        0
        Я пытался, не очень долго, правда, прикрутить плагин для Arduino к NetBeans. Для меня это был бы лучший вариант. Но всё застопорилось на том, что там Make-файлах было что-то странное, а я с ними не работал.
        Насколько я понял, плагин к NetBeans работает немного на другом уровне и приходится часть работы, которую делала официальная среда, доделывать за него.
          0
          Вот тут есть ссылки на гайд по установке и настройке code.google.com/p/arduino-netbeans/ для винды и линуксов. По сути настраиваем IDE, указывая пути до avr-gcc и прочих утилит и добавляем ардуиновские библиотеки для автокомплита (вот это несколько нудновато, но сделать это надо один раз и можно добавлять только нужные на текущий момент). В новой версии плагина в дефолтном makefile правки которые надо сделать совсем не большие. Указываем порт, путь до ардуиновской директории, что-то там платформозависимое (по умолчанию стоит винда) и перечисляем нужные библиотеки. После этого получаем отличную IDE для ардуино с автокомплитом, сборкой и загрузкой на девайс в одну кнопку. Наверное это не самый простой вариант, но netbeans моя основная среда разработки и поэтому наличие такого плагина не может не радовать.
            0
            Да. У меня NB — тоже основная среда. Однако, выполнив инструкции, я получил ошибки, с которыми не разобрался. Попробую позже еще раз. Может быть, в новых версиях что-то изменилось.
        +2
        Ещё хороший вариант плагин Visual Micro — www.visualmicro.com/
        Его можно подключить в бесплатный Atmel Studio, основанный на VS 2010 Shell — www.visualmicro.com/page/Arduino-for-Atmel-Studio.aspx
        Там есть отладка, ну и кому-то тоже может быть привычно использовать VS
          0
          только, к сожалению, он не бесплатный, что может оказаться важным для многих людей
            0
            Сам плагин бесплатный. Платным является «модуль» отладки.
            0
            Пользуюсь плугином для VS от Visual Micro с превеликим удовольствием уже почти год. На первых порах, пока был совсем нуб и плохо понимал, что происходит, — юзал и отладку (оплатил, что уж таить, такую возможность). Хотя как сейчас посмотрю ничем она не лучше простого вывода в Serial всего, что нужно посмотреть.
            Зато в комплект идут все вкусности IDE от мелкомягких.
            0
            не корысти ради, но правды для:
            подсветка в Аrduino IDE есть, для этого есть keywords.txt
            автодополнения — да, нету
              +1
              Можно еще Netbeans c плагином plugins.netbeans.org/plugin/46054/
                0
                Я, к сожалению, как написал выше, не осилил.
                Я так понял, это работает на уровень ниже — gcc-avr + make-файлы. То, что официальная среда делает за тебя. Вот там у меня (скорее всего, из-за недостатка опыта) не сложилось.
                0
                для меня оптимальной пока есть Arduide — ставится без проблем и работать вполне комфортно.
                  0
                  github.com/queezythegreat/arduino-cmake и использовать любую ide, которая поддерживает cmake.
                    0
                    Похоже перечислили почти все… Я пользуюсь Eclipse+avr плагины. Ну и уверен что это же можно прикрутить к Qt Creator :)

                    Only users with full accounts can post comments. Log in, please.