Материал: 2155

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

1.2. Общие сведения о средах разработки

Для создания программ, которые носят название скетчи, и программирования плат Ардуино используется среда разработки и отладки программ (IDE – integrated development environment), которую можно бесплатно скопировать с сайта сообщества разработчиков www.arduino.cc (рис. 2).

Рис. 2. СтартовоеСибАДИокно программы для разработки программ для Ардуино

Скетч пишется в текстовом редакторе. На рис. 3 на светлом фоне выведена заготовка для нап сания программы. Здесь используется язык Processing, близкий по синтаксису к языку С. Окно вывода сообщений расположено ниже. Здесь на темном фоне печатаются сообщения о результатах компиляции программы, включающие полные отчеты об

ошибках и другую информацию.

Рис. 3. Окно текстового редактора для разработки программ для Ардуино

6

Кнопки панели инструментов позволяют проверить и записать программу, создать, открыть и сохранить скетч, открыть мониторинг последовательной шины. Дополнительная функциональность может быть добавлена с помощью библиотек. Существует множество специализированных библиотек, их можно скачать с сайтов разработчиков.

Обычно библиотеки пишутся так, чтобы упростить решение той или иной задачи и скрыть от разработчика детали программно-аппаратной реализации. Программы библиотек пишутся на языке С++.

Среда Arduino IDE поставляется с набором стандартных библиотек:

Serial, EEPROM, SPI, Wire и др.

Atmel Studio 7 – бесплатная интегрированная среда разработки приложений на микроконтроллерах семейств Atmel SMART и AVR и

Веб-платформы, которую можно скачать с сайта фирмы. Atmel START – мощный инструмент для создания и настройки встроенных приложений, драйверов и типовых проектов, позволяет разработчикам создавать собственные программные платформы. Atmel Studio 7 позволяет использовать скетчи, созданные в Arduino IDE, и конвертировать их в С++ проекты. Также эта среда позволяет разрабатывать и отлаживать

программы

на

языке Ассемблер для микроконтроллеров AVR [5]

(рис. 4, 5).

 

 

СибАДИ

Рис. 4. Стартовое окно программы Atmel Studio 7

7

РисСибАДИ. 5. Окно Atmel Studio 7, в котором выбирается среда для разработки программ для Ардуино

Рис. 6. Окно программы UnoArduSim

8

Написать программу для Arduino Uno и отладить её в режиме реального времени может помочь бесплатный симулятор (программа для моделирования) UnoArduSim [6], который позволяет испытать разрабатываемое устройство без наличия каких-либо фактических аппаратных средств. Устройство собирается из виртуальных деталей: платы Arduino Uno, серводвигателей, цифровых и аналоговых генераторов формы сигнала, пьезоэлементов, светодиодов, кнопок, резисторов подтягивания, переменных потенциометров, устройств ввода/вывода с возможностью подключения устройств с использованием последовательных интерфейсов (UART, I2C и SPI) с выбираемой скоростью передачи данных. Поддерживаемые библиотеки: Servo.h,

SoftwareSerial.h, Wire.h, SPI.h и eeprom.h.

Таким образом, имея в наличии только компьютер, можно выполнить разработку устройства управления на базе Ардуино и проверить его

работу.

СибАДИ

 

 

1.3.

Примеры проектов

В IDE – среде разработки программ Ардуино есть примеры (образцы). Один из них обычно предлагается начинающим. Этот пример, который находится в Файл → Образцы → 01.Basics → Blink, демонстрирует управление светодиодом LED, находящимся на плате и подключенным к цифровому выводу 13. Новая плата Ардуино (приобретенная в магазине) запрограммирована этим примером для демонстрации её исправности. Итак, пр мер Blink позволяет мигать светодиодом,

между включением

выключен ем которого секундная задержка.

Для выдержки

паузы между вкл/выкл LED в 1 с

использована

функция delay(). В это время контроллер не может выполнять другие команды в функции loop().

Возьмем для примера плату Ардуино «Жук» («Beetle») (рис. 7) и попробуем перепрограммировать её флеш-память программ.

Светодиод

синего

цвета

Рис. 7. Плата Адруино «Жук»

9

Плату необходимо подключить к компьютеру с помощью кабеля USB, имеющего один из разъемов микроUSB.

Код исходной программы: /* Мигание LED

* ------------

*Включает и выключает светодиод (LED), подсоединенный

*к выходу 13, с интервалом в 2 секунды

*/

int ledPin = 13; // LED подсоединен к выводу 13 void setup()

{

pinMode(ledPin, OUTPUT);

// устанавливаем вывод 13 как выход

}

 

 

void loop()

 

 

{

 

 

digitalWrite(ledPin, HIGH);

// включаем LED

delay(1000);

// пауза 1 секунда

digitalWrite(ledPin, LOW);

// выключаем LED

delay(1000);

// пауза 1 секунда

}

 

 

Внесем изменение в программу, не изменяя её функциональность:

вместо установки на выводе 13 состояния HIGH, а затем обратно LOW будем инвертировать текущее значение ledPin. Т.е. если оно было HIGH, то станет LOW, и наоборот.

Теперь взаменСибАДИdelay() используем функцию millis(). Данная функция возвращает количество миллисекунд, прошедшее с момента запуска или сброса (нажатием на кнопку Reset) текущей программы. Функция переполнится (вернется в нуль) приблизительно через 50 суток работы программы.

Код, реализующ й те же функции:

void loop()

{ digitalWrite(ledPin, !digitalRead(ledPin)); // включаем/выключаем LED

delay(1000);

// задержка 1 сек.

}

 

Альтернативной функцией является micros(), которая возвращает количество микросекунд, прошедшее с момента запуска текущей программы. Функция переполнится (вернется в нуль) приблизительно через 70 мин работы программы.

Код:

/* Мигание LED Версия 2

*Включает и выключает светодиод (LED), подсоединенный

*к выходу 13, с интервалом в 2 секунды, используя функцию millis().

10

Источник: https://studfile.net/preview/16408212/