Полные альтернативы Arduino IDE? [закрыто]

Я не большой поклонник официальной IDE Arduino (с точки зрения визуальных эффектов), поэтому я начал искать более приятные альтернативы. Однако большинство проектов, которые я нашел, находятся в стадии альфа/бета и, как правило, не завершены.

Я на 100% новичок в программировании печатных плат и никогда раньше не использовал Arduino, но из того, что я понял, Arduino IDE — это просто оболочка для библиотеки avr, которая выполняет фактическую запись на плату. Возможны ли другие IDE для «arduino-подобных устройств»?

Опять же, я очень новичок в этом, поэтому удобство использования было бы неплохо.

О боже это. Я привык к полнофункциональным IDE, и переход от чего-то вроде Wing IDE (для Python) или Visual Studio к тому, что люди из Arduino имеют наглость называть «IDE», был похож на удар кулаком в лицо. Вдобавок ко всему, значительная часть процесса сборки Arduino выполняется в исходном коде java, а не в том, чтобы сделать что-то разумное, например, создать make-файл, поэтому управление собственным процессом сборки — это кошмар.
Я использовал Eclipse с Arduino (ознакомьтесь с arduino.cc/playground/Code/Eclipse и robertcarlsen.net/2009/10/31/arduino-in-eclipse-989 , это работает очень хорошо - это быстро, чисто и отличные ярлыки) Единственным недостатком является то, что первая настройка может занять некоторое время :)
Если вы занимались программированием до TextMate, достаточно avr-libc, make и screen. Я считаю себя новичком в программировании AVR, но это все, чем я пользуюсь. Сначала сбивает с толку чтение таблиц данных.
@VisualMicro Нет, это не единственная полная альтернатива. Смотрите мой комментарий ниже о Stino.
Плагин Arduino для Visual Studio Pro и Atmel Studio 6.1 — это полная альтернатива Arduino Ide, поддерживающая стандартное или специальное оборудование, компиляцию, загрузку, запись загрузчиков, программаторов, редактирование библиотеки в экспертном режиме, несколько последовательных мониторов, intellisense и многие другие опции. как для новичков, так и для продвинутых пользователей. Установка менее 10 минут. Также включает проводник примеров Arduino и дополнительный USB-отладчик Arduino.

Ответы (17)

Предупреждение, скоро будет пространное объяснение. Я хотел бы развеять некоторые заблуждения, которые, как я думаю, у вас возникли.

Arduino на самом деле состоит из двух вещей.

  1. Коллекция библиотек C/C++, скомпилированных с помощью avr-gcc и
  2. Небольшая программа прошивки загрузчика, которая предварительно была запрограммирована на чип с завода.

Да, Arduino IDE в основном является оболочкой avr-gcc — компилятора AVR C. Ваши проекты или «эскизы» включают упомянутые библиотеки Arduino и компилируются с помощью avr-gcc. Однако ничто из этого не имеет ничего общего с тем, как что-либо записывается на доске. То, как эти эскизы развертываются, немного отличается от обычного.

Arduino IDE связывается с вашим Arduino через микросхему USB-to-serial на плате и инициализирует режим программирования, который понимает загрузчик, и отправляет вашу новую программу на микросхему, где загрузчик поместит ее в известное место, а затем запустит. . Не существует «библиотеки avr, которая на самом деле пишет» — это просто среда разработки Arduino, которая открывает последовательный порт и общается с загрузчиком — именно так ваши отладочные сообщения также печатаются в среде IDE во время выполнения.

Любая альтернативная IDE должна иметь возможность осуществлять такую ​​же последовательную связь с загрузчиком. Arduino прост из-за всех библиотек, которые они уже предоставили вам, а также из IDE одним касанием. Честно говоря, я не думаю, что это станет проще или удобнее для пользователя. Они абстрагировались от всех деталей микроконтроллера AVR и процесса сборки/развертывания.

Альтернативой может быть что-то вроде avr-studio (которая также использует avr-gcc для своего компилятора) и программатор ICSP (который является дополнительным аппаратным обеспечением, которое вы должны купить). Вам не предоставляется ничего, кроме некоторых заголовочных файлов определений регистров и некоторых полезных макросов. Вам также не предоставляется загрузчик на вашем чипе AVR, это просто чистый лист. Все, что вы хотите сделать с микроконтроллером, вам придется углубиться и изучить его аппаратную периферию и регистры, а также перемещать байты в C. Хотите распечатать отладочное сообщение обратно на ПК? Сначала напишите процедуру UART для print() и откройте терминал на своем компьютере.

На шаг ниже вы пишете код в текстовом редакторе и вызываете avr-gcc и avr-dude (инструмент командной строки для программирования) из Makefile или командной строки.

На шаг ниже вы пишете ассемблер в текстовом редакторе и вызываете avr-assembler и avr-dude.

Я не уверен, к чему я клоню, я просто думаю, что существующие IDE и Arduino абсолютно гениальны и идеально подходят для новичков — их претензия на известность заключается в удобстве для пользователя. Возможно, это не тот ответ, который вы ищете, изучите рабочий процесс и сделайте с его помощью что-нибудь классное.

Не тот ответ, которого я ожидал, но действительно прояснил мое понимание устройства. Спасибо
Arduino IDE на самом деле состоит из трех вещей. Библиотеки C(++), аппаратное обеспечение и куча java-кода, который каким-то образом встраивает библиотеки в ваш написанный код непосредственно перед компиляцией.
Процесс сборки Arduino великолепен . Тем не менее, он (на данный момент) безвозвратно связан с пылающей кучей дерьмового текстового редактора Arduino. Я считаю, что OP хочет (и я бы тоже не возражал), так это способ вызвать процесс сборки arduino из другой IDE. Как и сейчас, единственный способ выполнить сборку Arduino — нажать кнопку в IDE. Это не по сценарию.
Этот ответ немного ошибочен. Arduino ide не предоставляет собственной возможности для загрузки через загрузчик на чипе, вместо этого он использует для этого инструмент командной строки под названием avrdude. Как и в случае с avr-gcc, avrdude не является продуктом Arduino и полностью доступен для использования другими IDE или простыми файлами Makefile.
@ChrisStratton, не стесняйтесь редактировать, чтобы исправить ошибки/незнание.
добавление автозаполнения и документации в IDE сделало бы ее более удобной для пользователя. Или как отладчик? Всегда есть способы сделать что-то лучше.
@ConnorWolf Это уже неправда, если это когда-либо было. Существуют инструменты командной строки и модули Arduino для других редакторов (SublimeText, Eclipse), которые могут вызывать эти инструменты.
@MarnenLaibow-Koser - Это, безусловно, было правдой более года назад, когда я опубликовал этот комментарий. Хорошо, что он изменился.
@ConnorWolf Очевидно, это было даже неправдой, когда вы это опубликовали. На странице player.arduino.cc/Learning/CommandLine самым первым на странице находится Makefile от 13 июля 2011 года (или, возможно, ранее), который позволит вам создавать сборки Arduino из командной строки.
@MarnenLaibow-Koser - С этой страницы: Here is a Makefile for compiling and uploading Arduino programs from the command line without the use of the Arduino environment- Так что нет, вы все еще не правы. Многое из того, что делает arduino доступным, — это куча кода, сделанного в java. Использование make-файла означает, что вы не получаете всего этого манипулирования кодом, который включает в себя множество вещей, которые значительно упрощают C/C++ для начинающих.
@ConnorWolf Если я не прочитал эту страницу неправильно, Makefile автоматизирует подгонку кода, не так ли?
@MarnenLaibow-Koser - я просмотрел make-файл, и похоже, что это не так. Они прямо говорят, что обработка кода выполняется в java, а в makefile вообще нет вызовов java. Все, что он делает, это добавляет заголовки библиотеки arduino и файлы C в сборку.
@ConnorWolf Я посмотрю еще раз, но очень сомневаюсь в этом. Где вы нашли конкретную информацию о подделке кода?
@MarnenLaibow-Koser — arduino.cc/ru/Hacking/BuildProcess The Arduino environment performs a few transformations to your main sketch file (the concatenation of all the tabs in the sketch without extensions) before passing it to the avr-gcc compiler. Next, the environment searches for function definitions within your main sketch file and creates declarations (prototypes) for them.
@ConnorWolf Да, я думаю, вы правы, хотя в верхней части Makefile есть простые инструкции для выполнения манипуляции. Обратите внимание, что это просто, и, вероятно, было бы несложно написать сценарий для выполнения действий, которые может вызвать Makefile. На самом деле вполне вероятно (хотя мне не удалось это подтвердить), что инструмент для обработки Java доступен из командной строки; Makefile был разработан, чтобы не зависеть от Java.
@MarnenLaibow-Koser - я, конечно, не стал бы утверждать, что невозможно делать то, что инструменты Arduino делают за пределами среды Arduino, просто это гораздо больше боли в заднице, чем просто их использование.

Посетите эту страницу http://www.arduino.cc/playground/Main/DevelopmentTools . Там есть несколько IDE и даже плагин для Visual Studio.

Я использую SublimeText в качестве основного текстового редактора, поэтому я был очень рад найти Stino , который представляет собой плагин Arduino для SublimeText. Это полная замена Arduino IDE (хотя вам нужна копия Arduino IDE, чтобы Stino мог найти библиотеки). В нем есть несколько ошибок, но он вполне пригоден для использования. Я почти не прикасался к Arduino IDE с тех пор, как открыл для себя Stino.

@clabacchio Когда я получаю комплимент, но не голосую, я обычно предполагаю, что люди не знакомы с концепцией голосования. И я ничего не помечал, поэтому я не знаю, о чем вы здесь говорите.
Извините, я получил отметку на этот комментарий, и почему-то подумал, что это вы отмечаете свой собственный пост. Ничего :)
Я просто хочу добавить еще один голос к этому чувству. SublimeText действительно хорош, и это дополнение Stino — настоящая сделка.
Это абсолютно сделано потрясающе. Я уже использую возвышенный текст, а это значит, что я могу полностью отказаться от приложения Arduino.
А еще есть mcduino для Atom.

По совпадению, несколько дней назад я услышал об этой новой IDE под названием MariaMole: http://dalpix.com/mariamole .


Любопытно, что Мария-Моле — это название очень популярной в Бразилии конфеты:

введите описание изображения здесь

Прохладно! Я с нетерпением жду возможности попробовать это, когда будет доступна версия для Mac.

Изображение плагина
(источник: visualmicro.com )

Бесплатный плагин Microsoft Visual Studio и Atmel Studio прост в использовании и обладает всеми полезными функциями Arduino IDE.

Код Sketch остается полностью совместимым с Arduino Ide. Плагин использует тот же процесс сборки и цепочку инструментов, что и Arduino Ide. Вы выбираете, какие версии Arduino Ide вы хотите использовать в своих проектах.

Предоставляет множество дополнительных функций, таких как детализация ошибок компилятора, дизассемблированный вид (с детализацией), завершение кода, загрузка через программатор или USB.

Поддерживает несколько версий Arduino в одной среде. Версия Visual Studio также поддерживает Intel Galileo.

Оба IDE поддерживают загрузку Arduino Yun Wifi/веб-сервера. Существует также дополнительный отладчик Usb/Serial/Wifi Arduino.

Atmel Studio основана на Visual Studio. Atmel Corp. — компания, производящая микроконтроллеры Arduino. Это означает, что Atmel Studio Ide знает о микроконтроллерах Arduino и создан для них.

Atmel Studio также предоставляет другие инструменты, такие как симулятор.

Документация и бесплатный форум

Да, создание «Arduino IDE» в основном заключается в размещении внешнего интерфейса перед avr-gcc и avrdude. На самом деле, помимо «официальной среды разработки Arduino IDE», существует довольно много других вариантов. Одна из них, которая может представлять интерес, — это среда AVR на основе Eclipse:

http://avr-eclipse.sourceforge.net/wiki/index.php/Plugin_Download

Есть еще Эклипс. Все начинается с поддержки AVR, упомянутой кем-то другим, но вы можете загрузить библиотеку Arduino, чтобы писать код Arduino. См. arduino.cc/playground/Code/Eclipse .

Недавно я переключился с шутки о Arduino IDE на code::blocks-arduino. Он лучше подходит для более сложных проектов с несколькими исходными файлами. У вас есть полный контроль над флагами компилятора, целью сборки и многими другими вещами, которые либо отсутствуют, либо плохо написаны в официальной IDE. По работе он очень похож на плагин eclipse, но не такой раздутый, как eclipse code::blocks-arduino a автономная сборка. Он поставляется с несколькими полезными инструментами для загрузки и отладки, такими как СУПЕР КРУТОЙ И ПОЛЕЗНЫЙ последовательный монитор с некоторыми действительно приятными функциями, такими как прямая отладка i2c (twi, как бы вы это ни называли), последовательный захват и вывод csv и т. д.

скомпилировано для Windows, исходники для Linux доступны http://www.arduinodev.com/codeblocks/

«Средним» подходом может быть MariaMole, который, к сожалению, предназначен только для Windows, но имеет большую простоту официальной IDE, но с множеством функций «классической» IDE. заметная разница между ними заключается в том, что MariaMole использует файлы .cpp и .h, а code::blocks-arduino использует .ino, как официальная IDE.

только окна;( http://hackaday.com/2012/11/29/mariamole-an-alternate-arduino-ide-aimed-at-advanced-users/

Несмотря на все происходящие здесь нападки на Arduino IDE, люди забывают, что цель «Arduino» (IDE, загрузчик/библиотеки, аппаратное обеспечение) состояла в том, чтобы «отупить» людей, которые только начинают заниматься такими вещами! Для этого Arduino отлично поработал. Однако, как только люди переходят начальный этап сладкого лизания (как это делает большинство), avr-gcc, avr-libc, makefile, simavr, gdb и простой редактор, такой как nano, vi или даже emacs, могут доставить бесконечное удовольствие от работы с Ардуино. Или с простым 8-битным uC AVR без операционной системы на собственных разработанных (или, по крайней мере, собранных) платах. Итак, Code::blocks, пожалуй, хороший вариант, хотя и один из многих.
Проблема не в том, что Arduino IDE проста и удобна в использовании; это нормально. Проблема в том, что его пользовательский интерфейс плохо разработан. Альтернативы, такие как Stino, такие же простые, но имеют лучший пользовательский интерфейс. (Я имею в виду пользовательский интерфейс Arduino, каким он был в 2013 году. Похоже, с тех пор были внесены некоторые улучшения.)

Лично я рекомендую (так как я это написал ;)) UECIDE . Первоначально он был основан на MPIDE для плат chipKIT, который сам был основан на версии 0023 Arduino IDE, но сейчас от исходного кода осталось немного, он весь был переписан.

Он поддерживает все платы Arduino, а также платы chipKIT, Launchpad, Maple и многое другое.

введите описание изображения здесь

Выглядит многообещающе...
С тех пор UECIDE прошел долгий путь. Вы должны проверить последнюю бета-версию ...

Кроме того, вы можете попробовать браузерные/онлайновые IDE для Arduino, такие как Codebender .

Аккуратный! С ними стоит поиграть.
+1 за рассказ о Codebender. Но не могли бы вы исправить ошибку 404 на ссылке Wifino?
@davidcary: обновленный ответ, спасибо за примечание.

Ответчик Jon L:s довольно хорошо резюмирует Arduino, и, поскольку он просто затрагивает альтернативы, я мог бы прояснить их немного больше.

  1. Arduino с загрузчиком.
  2. ПК с Windows, загруженный avr-studio и WinAVR (gcc) , и, возможно, jtag для прошивки устройства ( AVR JTAGICE mkII )
  3. Цепочка инструментов gnu (в Linux или Windows), использующая WinAVR и AVR JTAGICE mkII.

Но обратите внимание, что, как утверждает Джон Л., Alt1 является простым и простым, поскольку он удаляет большую часть вещей с вашего лица. Включите светодиод, вызовите функцию turnOnLED в lib.

Альт2. Вы получите некоторую помощь по поводу чипа и более классической IDE, но большую часть вещей вам придется делать самостоятельно.

Альт3. Вы должны делать все сами, но вы получаете максимальную власть над своим окружением.

Так что теперь вы можете выбрать, какую разработку вы хотели бы сделать, одна хорошая вещь с материалом AVR заключается в том, что такие инструменты, как jtag, вполне доступны, поэтому это довольно дешевая платформа для работы независимо от того, какой уровень вы используете.

И поскольку это AVR на Arduino, если у них есть разъем jtag, вы можете использовать alt1,2 и 3 на платах Arduino.

Вы можете использовать emacs (или аналогичный) для написания кода и make для его сборки и развертывания. Пакеты arduino поставляются с образцами make-файлов и заглушками для выполнения всего.

EngBlaze только что сделал учебник по использованию Atmel Studio (ранее AVR Studio), чтобы сделать именно это. Учебное пособие: Использование Atmel Studio 6 с проектами Arduino

Eclipse — отличная альтернатива, и теперь с подключаемым модулем eclipse, который вы можете найти на eclipse.baeyens.it , он устанавливается менее чем за 15 минут на Windows, Mac и Linux. У него даже есть последовательный монитор.

Вам действительно нужны отдельные вещи:

  1. Редактор кода.
  2. Набор инструментов и компилятор.
  3. Загрузчик.

Стандартная интегрированная среда разработки Arduino «все в одном» поставляется с безумно простым редактором, который вы быстро перерастете. Рекомендую сначала заменить редактор, дальше отвечать на шаг 2 и 3 из базового пакета.

Когда вы будете готовы пойти дальше, посетите http://playground.arduino.cc/Main/DevelopmentTools , чтобы найти инструменты, которые могут выполнять все три основные функции.

Основные редакторы постепенно добавляют поддержку Arduino, например, смотрите youtrack.jetbrains.com/issue/CPP-364 .

Что сказал Дэн (в комментарии к вопросу): Eclipse — это полнофункциональная IDE, которая очень хорошо работает с Arduino. (Однако и его комментарий к настройке тоже). Но самый простой способ настроить это может состоять в том, чтобы перенести чужую рабочую установку на свой компьютер, чтобы получить рабочую конфигурацию, и начать настройку оттуда.

Я использовал этот Makefile . Он позаботится о большей части процесса за вас. Затем вы просто пишете простой локальный make-файл, чтобы предоставить конкретные сведения о плате. Там действительно отличная документация о том, как его использовать. Затем я просто использую предпочитаемый мной текстовый редактор для написания кода на C или C++, компилирую его с помощью моего простого локального make-файла. Загрузкой также занимается makefile, который я связал: просто вызовите «make upload».

Это хорошее решение, потому что вы можете использовать любой текстовый редактор, какой захотите. Это позволяет вам легко связать все библиотеки Arduino, а также любые локальные библиотеки, которые у вас есть.

Это старая идея, которую я нашел очень быстрой и гибкой. Он может программировать Arduino, а также клоны Arduino, такие как Paperduino или tinyUSB. Вы также можете легко проверить USB или последовательные порты, проверить предохранители и многое другое.

https://code.google.com/archive/p/avr-project-ide/

Это не очень хорошая рекомендация — проект не обновлялся с 2011 года и не будет работать со многими новыми платами Arduino. (В частности, он не будет поддерживать платы ATmega32U4, такие как Arduino Leonardo или Micro, и не будет поддерживать платы ARM, такие как Arduino Due или Zero.)