Статьи

Разработка Arduino с использованием среды IDE NetBeans

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

Несмотря на удобство, в Arduino IDE отсутствуют некоторые ключевые функции, которые есть в большинстве современных IDE. Чтобы назвать несколько, Arduino IDE еще не поддерживает автозаполнение , свертывание кода и контекстную помощь . И у встроенного синтаксического анализатора иногда возникают проблемы с анализом сложных структур кода, и они не дают адекватной информации об обнаруженных ошибках. Хотя это не имеет большого значения для написания простых программ, недостатки очевидны при разработке более сложных приложений. Поскольку я являюсь разработчиком программного обеспечения, я лично предпочитаю более продвинутую среду разработки.

Если вы используете Eclipse , то для разработки AVR уже есть плагин , хотя я лично не пробовал его, я видел других людей, регулярно его использующих. Глядя на инструкции Arduino для этого плагина , кажется, что его довольно просто настроить. Но если вы используете NetBeans , в настоящее время поддержка Arduino пока отсутствует.

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

Для тех, кто нетерпелив и знает свой путь в среде NetBeans, вы можете загрузить и установить ArduinoPlugin_v1.0.tar.gz (Инструменты -> Плагины на вкладке Скачанные, выберите Добавить плагины) и сразу приступить к работе. Вам необходимо настроить среду NetBeans для поддержки цепочки инструментов avr-gcc, прежде чем вы сможете начать использовать модуль Arduino. Если вы не знаете, как это сделать, читайте дальше.

необходимое условие

Этот плагин требует функциональной среды разработки Arduino. Поскольку этот плагин использует для компиляции кода базовые библиотеки Arduino, сначала необходимо установить Arduino. Вы можете обратиться к руководству Начало работы с Arduino на официальном сайте Arduino о том, как установить среду программирования Arduino.

Инструкции в этой статье предполагают, что вы используете Arduino под Linux, но я думаю, что вы можете адаптировать его к среде Windows с относительно небольшими изменениями. Вот список версий программного обеспечения, которые я установил на свой компьютер.

Ubuntu 10.04 (64bit)
avr-gcc 4.3.4
avrdude 5.10
RXTX-2.2pre2
NetBeans 6.8
arduino-0018

В зависимости от ваших конкретных настроек (например, путь установки arduino-0018 не находится в вашем домашнем каталоге или он установлен под другим именем каталога), могут потребоваться незначительные изменения шаблона.

Настройте AVR Tool Chain

Чтобы настроить среду NetBeans, нам нужно сначала настроить цепочку инструментов AVR. Для этого сначала запустите NetBeans, перейдите в «Инструменты -> Параметры» и нажмите «Добавить» в разделе «Инструменты C / C ++ / Build» (см. Снимок экрана ниже), и оттуда мы можем создать новую цепочку инструментов под названием Arduino и настроить пути в правая панель соответственно. Вот скриншот конфигурации цепочки инструментов в моей системе:

Базовый каталог: / usr / bin
C Компилятор: / usr / bin / avr-gcc
C ++ Компилятор: / usr / bin / avr-g ++
Ассемблер: / usr / bin / avr-as
Отладчик: / usr / bin / gdb (это не важно, так как мы все равно не запускаем приложения Arduino в NetBeans)

Настройка цепочки инструментов avr-gcc в NetBeans

Настройка цепочки инструментов avr-gcc в NetBeans

Чтобы функция автозаполнения работала с заголовочными файлами Arduino / AVR, нам также необходимо настроить пути на вкладке «Ассистент кода». Для начала вам необходимо настроить следующие пути:

~/arduino-0018/hardware/arduino/cores/arduino (assuming that you installed Arduino 0018 under your home directory)
~/arduion-0018/libraries/
/usr/lib/gcc/avr/4.3.4/include

 

Если вы используете библиотеки, расположенные в других местах, вам также необходимо добавить эти пути на вкладку помощи кода компилятора C / C ++.

Установите плагин Arduino

Чтобы установить плагин, сначала загрузите модуль NetBeans ( ArduinoPlugin_v1.0.tar.gz ). Используйте следующую команду для извлечения модуля NetBeans (ArduinoPlugin_v1.0.nbm):

    tar zxf ArduinoPlugin_v1.0.tar.gz 

 

Затем перейдите в Инструменты -> Плагины, на вкладке Скачанные выберите Добавить плагины. Перейдите туда, где вы сохранили файл .nbm, и нажмите «ОК».

После установки плагина экран настроек плагина должен выглядеть следующим образом:

Плагин Arduino установлен

Плагин Arduino установлен

Как использовать

Чтобы создать проект Arduino, перейдите к проекту new и выберите шаблон проекта Arduino.

Создать проект Arduino

Создать проект Arduino

После создания проекта вы должны увидеть два файла (main.pde и makefile) в папке «Исходные файлы», а main.pde содержит скелет кода:

#define __AVR_ATmega328P__

#include <binary.h>
#include <HardwareSerial.h>
#include <pins_arduino.h>
#include <WConstants.h>
#include <wiring.h>
#include <wiring_private.h>
#include <WProgram.h>
#include <EEPROM/EEPROM.h>

void setup()
{

}

void loop()
{

}

 

Я старался, чтобы структура кода выглядела как можно ближе к Arduino IDE, но для автоматического завершения кода требуется дополнительное включение. Кроме того, обратите внимание, что я включил определение MCU (#define __AVR_ATmega328P__), чтобы получить специфическую работу MCU для осмысления. Вы можете изменить это на тип MCU, на который вы нацелены.

Автозаполнение

Автозаполнение

Чтобы создать свой проект, щелкните правой кнопкой мыши на make-файле и выберите make или make clean. Если ваша сборка прошла успешно, вы должны увидеть файл HEX, встроенный в каталог апплета в корне вашего проекта. И вы можете использовать опцию Make Target -> upload для загрузки HEX-файла на плату Arduino.

Сборка и загрузка

Сборка и загрузка

За кулисами

Плагин Arduino для NetBeans разработан как пример модуля проекта NetBeans . Makefile адаптирован из файла make, используемого в среде Arduino, и обсуждается здесь .

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

    #Note that if your program has dependencies other than those
#already listed below, you will need to add them accordingly.
C_MODULES = \
$(ARDUINO)/wiring_pulse.c \
$(ARDUINO)/wiring_analog.c \
$(ARDUINO)/pins_arduino.c \
$(ARDUINO)/wiring.c \
$(ARDUINO)/wiring_digital.c \
$(ARDUINO)/WInterrupts.c \
$(ARDUINO)/wiring_shift.c \

CXX_MODULES = \
$(ARDUINO)/Tone.cpp \
$(ARDUINO)/main.cpp \
$(ARDUINO)/WMath.cpp \
$(ARDUINO)/Print.cpp \
$(ARDUINO)/HardwareSerial.cpp \
$(ARDUINO_LIB)/EEPROM/EEPROM.cpp \

 

Кроме того, я следовал методике, используемой в Arduino IDE для сборки скетча с другой необходимой информацией и основной программой во время компиляции (см. Часть make-файла ниже), чтобы максимально упростить main.pde. Единственная проблема заключается в том, что ошибки компиляции ссылаются на собранный исходный код, а не на код, который вы пишете в main.pde. Первоначально я думал о том, чтобы поместить весь необходимый код в main.pde и, следовательно, не потребовал слияния кода во время компиляции, но это сделало бы код менее совместимым со средой Arduino IDE.

#applet_files: main.pde
applet/$(TARGET).cpp: main.pde
# Here is the “preprocessing”.
# It creates a .cpp file based with the same name as the .pde file.
# On top of the new .cpp file comes the WProgram.h header.
# and prototypes for setup() and Loop()
# Then the .cpp file will be compiled. Errors during compile will
# refer to this new, automatically generated, file.
# Not the original .pde file you actually edit…
test -d applet || mkdir applet
echo ‘#include “WProgram.h”‘ > applet/$(TARGET).cpp
echo ‘void setup();’ >> applet/$(TARGET).cpp
echo ‘void loop();’ >> applet/$(TARGET).cpp
cat main.pde >> applet/$(TARGET).cpp

 

Будущее улучшение

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

Скачать

Плагин Arduino для NetBeans: ArduinoPlugin_v1.0.tar.gz

С http://www.kerrywong.com/2010/05/16/arduino-development-using-netbeans/