Всем привет. Я Джереми Блум. Рад представить вам новую серию туториалов по Arduino.
Arduino – это потрясная open-source платформа с микроконтроллером, которую можно использовать для создания электронных проектов. Для автоматизации вещей, в которых есть входы-выходы, прерывания, и т.п. Мы поговорим обо всем этом в этой серии туториалов.
Это должно быть очень увлекательно. Неважно, новичок ли вы, который никогда не связывался с электроникой до этого или вы «ветеран», который плотно работал с микроконтроллерами, но никогда не использовал Arduino. Должен получится отличный цикл гайдов. Первые смогут начать с изучения основ Arduino: как это работает, как устанавливать софт, собирать простые схемы типа мигающих светодиодов и т.п., а затем и более сложные вещи. Давайте начнем.
Вещи, которые могут вам понадобится в нашем цикле уроков и для того, чтобы работать с Arduino
- Конечно же, вам понадобится сама плата Arduino.
- Вам понадобится USB-кабель, для того, чтобы программировать Arduino. Так же через него идет питание от вашего компьютера. Если вы хотите использовать Arduino не подключенным к компьютеру, после того, как вы закончили с программированием, вам понадобится блок питания.
- Вам также понадобится (breadboard) (доска для прототипирования, макетная плата, монтажная плата). Брэдборды крайне удобны для сборки прототипов электронных схем. Мы соберем несколько различных схем, которые вы сможете использовать для управления светодиодами, динамиками, моторами и всякими такими вещами.
- Вам понадобятся светодиоды и резисторы (220 Ом, 1 кОм, 10 кОм, 100 кОм) для тестов, которые мы будем проводить.
- Вам может понадобиться динамик или парочка, чтобы вы могли извлекать звук из Arduino.
- Моторы. Мы будем использовать постоянные моторы, сервоприводы и, если хватит времени, шаговые моторы.
- Еще несколько сенсоров по ходу дела. Я буду говорить о них по ходу дела. Но для затравки скажу, что, возможно, мы будем использовать датчики изгиба, сенсоры давления и датчики света.
Что же такое Arduino?
Arduino – это open-source платформа для прототипирования устройств,которые основаны на микроконтроллерах ATmega Atmel. Вы можете программировать их сами по себе через штуковину, называемую ISP-программатор. И программировать их на языке С. Этим способом я сделал несколько проектов в лабораторном классе в универе. И это круто на самом деле. Вы можете сделать много забавных вещей с их помощью.
ПЕРВАЯ СХЕМА НА АРДУИНО [Уроки Arduino #4]
Но для среднестатистического человек С-код может быть зануден и запутан. И это может создавать трудности при создании интересных устройств, которые позволяют делать микроконтроллеры. Что делает Arduino – это абстрагирует путь, через который вы все это делаете.
Вы получаете среду программирования Arduino, которая значительно проще С. Это работает через небольшую программку, прошитую в микропроцессоре. Прошивка Arduino зашита в ATmega чип, который установлен на плату Arduino. И вы программируете на языке Arduino, о котором мы будем говорить на протяжении этой серии уроков. Итак, это Arduino UNO:
FLProg — система визуального программирования плат Arduino
В настоящее время в мире начался бум по использованию микроконтроллеров в различных самоделках и стартапах. Действительно, цены на микроконтроллеры упали, а возможности их постоянно растут. Да и наши друзья, китайцы, научились изготавливать периферию к ним, и продают её к тому же по смешным ценам. Но вот с программированием микроконтроллеров всё не так радужно…
С чего всё началось и как развивалось
С самого момента появления микропроцессоров развитие принципов работы с ними идет по пути роста абстракции. Первый этап представлял программирование непосредственно в машинных кодах. Программирование было сложным, долгим и требовало очень специфичного склада ума. Поэтому программистов было очень мало.
Но человек существо ленивое, а лень, как известно, двигатель прогресса. Придумали первый уровень абстракции – ассемблер. Писать программы стало проще и веселее. Количество программистов возросло. Но все равно ассемблер не очень сильно отличался от машинных кодов.
Поэтому появился следующий уровень абстракции. Языки высокого уровня. Основной целью этих языков была возможность объяснить машине, что от нее хотят, на языке максимально приближенном к человеческому. Это позволяло заниматься программированием людям с менее специфичным складом ума. Поэтому с развитием языков высокого уровня количество программистов росло, и соответственно росло количество полезных программ, которые они создавали.
Как дела обстоят сейчас
Конечно, для начала работы непосредственно с контроллером требуется определенная подготовка. То есть, необходимы программатор, настроенная среда для программирования на компьютере, ну и, естественно, знание языка программирования. Кроме того, требуется умение в работе с паяльником, разработке печатных плат, знания в электротехнике и электронике. Так что порог вхождения в область создания собственных устройств на микроконтроллерах остается высоким.
Кроме того, для такой работы требуется сочетание навыков, которые достаточно редко встречаются вместе. Программисты редко дружат с паяльником, а электронщики не часто являются программистами. Для программистов проблему решили созданием платы Arduino, которая позволяет собирать устройства без использования инструментов.
Для электронщиков и электриков все хуже. До последнего времени для того, чтобы создать свое устройство с применением микроконтроллера, у них было два пути. Либо самим изучать язык программирования «С», либо просить помощи у программиста. Оба пути не самые лучшие.
Для того что бы стать программистом, необходим определенный склад ума, не всегда совместимый с опытом чтения электрических схем. А знакомого программиста может не оказаться под рукой.
В то же время давно существуют среды программирования адаптированные под обычного инженера – электронщика, ну или просто электрика. Я имею в виду среды программирования промышленных контроллеров. ПЛК. Они позволяют создавать программное обеспечение для контроллеров на языках FBD и LAD. Собственно говоря, как таковыми языками они не являются.
Это, скорее, графические среды для рисования принципиальных или логических схем.
FBD (Function Block Diagram)
– графический язык программирования стандарта МЭК 61131-3. Программа образуется из списка цепей, выполняемых последовательно сверху вниз. При программировании используются наборы библиотечных блоков. Блок (элемент) – это подпрограмма, функция или функциональный блок (И, ИЛИ, НЕ, триггеры, таймеры, счётчики, блоки обработки аналогового сигнала, математические операции и др.).
Каждая отдельная цепь представляет собой выражение, составленное графически из отдельных элементов. К выходу блока подключается следующий блок, образуя цепь. Внутри цепи блоки выполняются строго в порядке их соединения. Результат вычисления цепи записывается во внутреннюю переменную либо подается на выход контроллера.
Ladder Diagram (LD, LAD, РКС)
– язык релейной (лестничной) логики. Синтаксис языка удобен для замены логических схем, выполненных на релейной технике. Язык ориентирован на инженеров по автоматизации, работающих на промышленных предприятиях.
Обеспечивает наглядный интерфейс логики работы контроллера, облегчающий не только задачи собственно программирования и ввода в эксплуатацию, но и быстрый поиск неполадок в подключаемом к контроллеру оборудовании. Программа на языке релейной логики имеет наглядный и интуитивно понятный инженерам-электрикам графический интерфейс, представляющий логические операции, как электрическую цепь с замкнутыми и разомкнутыми контактами.
Протекание или отсутствие тока в этой цепи соответствует результату логической операции (истина – если ток течет; ложь – если ток не течет). Основными элементами языка являются контакты, которые можно образно уподобить паре контактов реле или кнопки. Пара контактов отождествляется с логической переменной, а состояние этой пары – со значением переменной. Различаются нормально замкнутые и нормально разомкнутые контактные элементы, которые можно сопоставить с нормально замкнутыми и нормально разомкнутыми кнопками в электрических цепях.
Такой подход оказался очень удобным для легкого вхождения в разработку систем АСУ инженеров-электриков и электронщиков. Разрабатывая проекты установок, они могли легко привязать работу этих установок к алгоритмам работы контроллера.
В обслуживании этих установок на объекте также лучше, когда существующий обслуживающий персонал может легко проверить работу системы АСУ, найти проблему. И при этом нет необходимости вызывать по каждому пустяку программиста из «Центра». И это подход себя оправдал. На сегодняшний день почти все системы промышленной автоматики созданы с помощью таких средств разработки.
Такая среда разработки есть у Siemens, ABB, Schneider Electric… да и практически у всех производителей ПЛК. Казалось бы, идеальное решение для любителей самоделок. Но, как всегда есть «но». Все эти среды программирования привязаны к промышленным контроллерам определённого производителя. И цены на эти контроллеры мало вдохновляют.
Очень редко какой семейный бюджет позволит приобрести контроллер ценой в несколько десятков тысяч рублей.
Зато платы Arduino идеально подходят для самодельщиков и кулибиных, на которых наша страна всегда была, есть и будет богата. Но, опять «но». Программируются эти платы на языке C. Для большинства этих умнейших людей, с очень прямыми руками, растущими из положенного места, язык С. это китайская азбука.
Они могут придумать, нарисовать, собрать, отладить и запустить сложнейшие схемы, но If, For, Case, Void и т.п. — это не для них. Конечно, можно почитать инструкции в интернете, поиграться какое-то время, помигать светодиодом с помощью примера. Но для более серьезного применения необходимо детальное изучение языка. А зачем им это?
Они не собираются быть профессиональными программистами. У них другой путь. Они что-то придумали. Да, это проще и красивее собрать с помощью микроконтроллера, но становится для этого программистом, потратив месяцы на изучение языка? Нет, конечно.
Собирают по старинке, попроще, конечно, но в своей области.
На основании всех этих выкладок и был создан проект FLProg. Основная идея проекта – совместить принципы промышленного программирования с дешевизной и удобством Arduino. Проект предлагает новый уровень абстракции с довольно смелым заявлением –
Чтобы программировать микроконтроллеры не обязательно знать языки программирования!
В результате получился инструмент, позволяющий создавать свои проекты на Arduino любому человеку, знакомому с электротехникой и электроникой, позволяющий создать свое изделие с использованием данных плат.
Проект состоит из двух частей.
Первая часть -это десктоп-приложение FLProg, представляющее собой графическую среду программирования плат Arduino.
Во-вторых, это сайт FLProg.ru, с помощью которого члены сообщества пользователей программы могут пообщаться между собой, узнать последние новости проекта, скачать последнюю версию программы, ну и найти необходимую информацию по работе с приложением.
Начнем по порядку
Программа FLProg позволяет создавать прошивки для плат Arduino с помощью графических языков FBD и LAD, которые являются стандартом в области программирования промышленных контроллеров. При создании программы я постарался максимально использовать наработки программистов Siemens, ABB, Schneider Electric в их средах программирования.
Я немного расширил классический функционал этих языков, добавив функциональные блоки, отвечающие за работу с внешними устройствами. Они являются «обертками» над библиотеками, предназначенными для работы с ними. Программа работает на компьютере под управлением OS Windows. Но энтузиастами из сообщества пользователей программы была опробована возможность запуска программы по ОС Linux. Этому посвящена статья на сайте проекта, которую можно прочитать по ссылке:
При создании нового проекта вам предложат выбрать язык программирования, на котором вы будете создавать проект, и контроллер, на котором этот проект будет реализован.
Вот список плат Arduino, поддерживаемых программой на сегодняшний день:
В скором времени ожидается пополнение в семействе поддерживаемых плат. Arduino Due уже в пути, а плату Intel Galileo (gen.2) обещал предоставить руководитель лаборатории интернета вещей при Санкт-Петербургском Государственном университете телекоммуникаций им. проф. М.А. Бонч-Бруевича. Со временем, по мере приобретения, планируется поддержка плат основанных на контроллерах STM.
Проект в FLProg представляет собой набор плат, на каждой из которых собран законченный модуль общей схемы. Для удобства работы каждая плата имеет наименование и комментарии. Так же каждую плату можно свернуть (для экономии места в рабочей зоне, когда работа над ней закончена) и развернуть. Красный индикатор в наименовании платы указывает на то, что в схеме платы есть ошибки.
![]() |
Вид окна программы в режиме языка FBD. |
![]() |
Вид окна программы в режиме языка LAD. |
В правой части рабочей зоны расположена библиотека элементов. В схему элементы переносятся простым перетаскиванием. При двойном клике по элементу будет показана информация о нём.
Вот список блоков доступных на сегодняшний день.
FBD:
Базовые элементы
Специальные блоки
Триггеры
Таймеры
Счетчики
Математика
Сравнение
Com –порт
Send
SendVariable
ReceiveVariable
Переключатель
Моторы
Часы реального времени
[Alarm]
[GetTime]
[SetTime]
Дисплеи
Дисплей на чипе НD44780
Подсветка дисплея на чипе НD44780 I2C
Блок декодирования семисегментного индикатора
Строки
Датчики
[Ultrasonic HC-SR04]
[DHT11, DHT21, DHT22]
[DS18x2x]
[IR Ressive] [BMP-085]
SD карта
Запись переменной на SD карту
Выгрузка файла с SD карты
Конвертация типов
Преобразование строк
Преобразование Float в Integer
Микросхемы расширений
Расширитель выводов 74HC595
Операции с битами
Шифратор
Дешифратор
Чтение бита
Запись бита
Разное
Матричная клавиатура
Пьезодинамик
EEPROM
Запись в EEPROM
Чтение из EEPROM
Коммуникации
SendVariableFromCommunication
RessiveVariableFromCommunication
WebServerPage
WebClient
LAD:
Базовые блоки
Контакт
Катушка
Защита от дребезга
Выделение переднего фронта
Специальные реле
Двустабильное реле
Реле времени
Генератор
Реле сравнения
Алгебра
Аналоговые блоки
Масштабирование
Математика
Счетчик
Аналоговый переключатель
Переключатель много к одному
Переключатель один ко многим
Аналоговый вход контроллера
Аналоговый выход контроллера
Вход аналогового соединителя
Выход аналогового соединителя
Скоростной счетчик
CommPort
Передача в ComPort
Передача переменной через Comm port
Прием переменной через Comm port
Моторы
Сервомотор
Шаговый двигатель
Часы реального времени
Получить данные
Будильник
Установка времени
Дисплеи
Дисплей на чипе HD44780
Блок управления подсветкой дисплея на чипе HD4480 I2C
Блок декодирования семисегментного индикатора
Строки
Датчики
Ультразвуковой дальномер HC-SR04
Датчик температуры и влажности DHT11 (DHT21, DHT22)
Датчик температуры DS18x2x
IR Ressive
BMP-085
SD карта
Запись переменной на SD карту
Выгрузка файла с SD карты
Конвертирование типов
Конвертация строк
Преобразование Float в Integer
Микросхемы расширений
Расширитель выводов 74HC595
Операции с битами
Шифратор
Дешифратор
Чтение бита
Запись бита
Разное
Матричная клавиатура
Пьезодинамик
EEPROM
Запись в EEPROM
Чтение из EEPROM
Коммуникации
Блок отправки переменной через коммуникации
Прием переменной через коммуникации
Страница Web сервера
Web клиент
В настоящее время ведется разработка функциональных блоков для работы с трехосевым гироскопом, люксометром, и другими датчиками и сенсорами. Также ведется работа над организацией обмена данными через блютуз, радиоканал, и интерфейс RS-485. В дальнейших планах. разработка SCADA-системы для организации интерфейса систем, разработанных в программе FLProg на персональном компьютере или графических дисплеях.
Список периферийного оборудования, поддерживаемого программой, доступен на сайте проекта по ссылке:
![]() |
Датчики температуры и влажности DHT11, DHT21, DHT22. |
Для части оборудования в разделе на сайте присутствуют обзорные статьи, облегчающие понимание применения его в программе.
В верхней части рабочей зоны расположен список тэгов (переменных и входов выходов) (FBD) или установленного оборудования (LAD). Тэги или оборудование переносятся на схему простым перетаскиванием.
![]() |
![]() |
После завершения работы над проектом производится его компиляция. После компиляции автоматически откроется программа «Arduino 1.5.7» с загруженным скетчем вашего проекта. В программе «Arduino IDE 1.5.7» вам необходимо будет указать номер COM порта, к которому подключен ваш контроллер, выбрать его тип, и произвести заливку скетча в контроллер. Подробнее о программе «Arduino IDE 1.5.7» можно почитать на сайте Arduino.ru.
Где скачать FLProg?
В рамках проекта существует сайт http://flprog.ru. Основная задача сайта – дать возможность пользователям скачать последнюю версию программы, узнать о нововведениях и изменениях.
Скачать программу можно без регистрации на сайте, но для зарегистрированных пользователей функционал сайта заметно расширяется. Регистрация очень проста и требует только подтверждения электронной почты. Никаких других данных при этом вводить не требуется.
На странице загрузки программы всегда доступны две версии: инсталлятор и портативная версия, не требующая установки. Если возможно, то я также выкладываю файл обновления значительно меньшего размера, позволяющий обновить предыдущую версию.
Также на странице загрузки можно посмотреть список нововведений и исправленных ошибок для данной версии и перейти в архив предыдущих версий.
Источник: www.rlocman.ru
FLProg — система визуального программирования для Arduino
Используя программную среду Arduino IDE, можно, основываясь лишь на знаниях C++, решать самые разные творческие задачи, связанные с программированием и моделированием.
На сегодняшний день с помощью Arduino конструируют всевозможные интерактивные, обучающие, экспериментальные, развлекательные модели и устройства.
Интерфейс сравнительно простой в освоении, его основой является язык C++, поэтому освоить инструментарий могут даже начинающие программисты.
Как работает Arduino IDE?
Работа с Arduino IDE практически ничем не отличается от работы в любой другой среде разработки программного обеспечения за исключением того, что создаваемые программы выполняются не на компьютере, а на специальной плате:
- Создаваемый пользователем код программы компилируется в двоичный файл-прошивку (скетч).
- Путем вызова соответствующей функции компилятора прошивка переносится (записывается) на плату, подключенную к компьютеру через USB-интерфейс (или другой — зависит от платы).
- Загруженная на плату микропрограмма сразу же начинает работать — процесс программирования на этом заканчивается.
Программа Arduino IDE самостоятельно инсталлирует на компьютер все необходимые драйверы, определяет модель подключенной к компьютеру платы, устанавливает с ней соединение для передачи/чтения информации, т.е. пользователю ничего не нужно настраивать для начала программирования и последующего переноса микропрограммы.
Где скачать Arduino IDE
Скачать нужную версию можно в таблице выше. Выберите нужную операционную систему и файл для инсталляции.
Сама программа предоставляется с открытым исходным кодом. Все базовые инструменты распространяются бесплатно — достаточно выбрать версию, соответствующую операционной системе. С описаниями (на английском языке) можно ознакомиться на странице официального сайта https://www.arduino.cc/en/main/software, а сами ссылки на нужную версию смотрите в таблице выше.
После выбора нужной операционной системы и нужного файла установки вы попадете на страницу скачивания (см. ниже), где вам просто нужно будет нажать «Just Download» для начала скачивания.
Arduino IDE на русском языке
Изначально инструментарий поставляется на английском. И хотя команды меню довольно просты, программу легко можно перевести на нужный язык.
Полный список выпущенных локализаций представлен на этой странице: https://playground.arduino.cc/Main/LanguagesIDE. Русский язык входит в список.
Русский язык входит в список языков Arduino IDE.
Чтобы включить русскоязычный интерфейс, нужно воспользоваться командой:
File → Preferences → Language(Файл → Настройки → Язык)
и выбрать русский язык в списке.
Установка Arduino IDE Windows / Linux
После скачивания установочного файла .exe программа сама создаст необходимые папки для хранения скетчей и библиотек в папке пользователя Мои документы. Изначально Arduino IDE 1.8.6 содержит только стандартные библиотеки. Для работы с отдельными модулями вам дополнительно потребуется скачивать и устанавливать необходимые файлы библиотек для подключения модулей к плате Arduino.
Видео. Установка Arduino IDE в Windows 7 / Win 10
Видео. Установка Arduino IDE в Ubuntu / Debian / Mint
Установка среды
Установка программной среды Ардуино довольно несложный процесс. После того как вы выбрали и скачали нужную версию необходимо запустить установку через файл arduino.exe.
Как всегда — сначала надо согласиться с Лицензионным соглашением, несмотря на то, что сама среда распространяется бесплатно.
Следующим шагом выбираем действия, которые должен сделать установщик. Можно поставить все галочки.
Далее выбираем папку для установки.
Если установщик предложит установить USB-to-serial драйвер — жмем Установить.
FLProg — система визуального программирования для Arduino
Начав статью с обзора существующих средств разработки программ для нашедших широкое применение в профессиональных и любительских разработках микроконтроллерных модулей Arduino, автор подробно рассказывает об одной из них — FLProg, предназначенной для пользователей, специализирующихся в электротехнике и электронике, но не владеющих языками программирования. Все предписанные программе действия изображают в этой системе наглядными и привычными для таких специалистов условными графическими обозначениями.
Официальную среду разработки программ для модулей Arduino предлагают пользователям под названием Arduino IDE (рис. 1).
Программирование в ней происходит на языке ProcesSing/Wiring — диалекте языка С (скорее, C++). Среда представляет собой, по сути, обычный текстовый редактор с возможностью трансляции текста программы в машинные коды и их загрузки в микроконтроллер модуля. Альтернатива Arduino IDE — предназначенная для микроконтроллеров семейства AVR интегрированная среда AVR Studio (рис. 2). Она служит для разработки и отладки программ на языке ассемблера, но к ней можно подключить и компилятор языка С. В 2006 г. она сменила название на Atmel Studio.
С появлением визуальных языков программирования на них охотно переключились не только радиолюбители, но и многие профессионалы. Существующие средства разработки этого типа условно можно разделить на три вида:
- Средства расширенного Форматирования обычного исходного текста разрабатываемой программы. Её по-прежнему пишут на языке С, но в более наглядном формате. Сейчас таких средств очень много. Самые яркие примеры: Scratch, S4A, Ardublock. Они хороши для начального обучения программированию на языке С, поскольку отлично показывают структуру и синтаксис этого языка. Но большие серьезные программы получаются громоздкими. На рис. 3. показан пример программы на языке Scratch.
Рис. 3
- Средства, скрывающие текст и заменяющие его графическими символами. В них также повторяется структура языка программирования высокого уровня, формируются циклы, переходы, условия. Эти средства тоже очень хороши для первоначального обучения построению алгоритмов с последующим переходом к программированию на классических языках. Но они плохо подходят для построения больших проектов ввиду громоздкости получаемых структур. Примеры таких средств — miniBloq, Algorithm Builder, Flowcode. На рис. 4 показан пример программы, разработанной в среде miniBloq.
Рис. 4 - Средства, основанные на языках FBD и LAD, применяемых в промышленной автоматике. Строго говоря, языки программирования, как таковые, в них не используются. Это, скорее всего, визуальные среды для рисования принципиальных и логических схем проектируемых устройств. Примеры схем вычислительных алгоритмов, построенных с помощью сред проектирования Horizon и FLProg, показаны соответственно на рис. 5 и рис. 6. Тем, кто привык работать с цифровой техникой, больше понравится работать в этих средах, чем разрабатывать программы на классических языках программирования. Подобные средства хорошо подходят как для изучения импульсной и релейной техники, так и для создания серьёзных проектов. В них сконцентрирован многолетний опыт разработчиков программ для промышленных контроллеров. Но начальный уровень знаний, требующийся для использования таких средств, значительно выше. Нужно владеть основами электротехники и принципами построения электрических схем. Эти средства хороши для инженеров-электриков и электронщиков, которые хотят использовать микроконтроллеры в своих разработках, не изучая для этого классические языки программирования.
Рис. 5
Рис. 6
Рассматриваемая далее программа FLProg основана на языках программирования FBD и LAD.
FBD (Function Block Diagram) — графический язык программирования стандарта МЭК 61131-3. Программа представляет собой список цепей, заполняемый последовательно сверху вниз. Цепи образуют из библиотечных блоков. Блок (элемент) — это подпрограмма, функция или функциональный блок (И, ИЛИ, НЕ, триггер, таймер, счётчик, блок обработки аналогового сигнала, математическая операция и т. д).
Каждую цепь составляют из отдельных блоков, подключая на экране компьютера к выходу каждого блока вход следующего. Внутри цепи программа выполняет блоки строго в порядке их соединения. Результат, полученный на выходе последнего блока цепи, программа записывает во внутреннюю переменную или подаёт на выход контроллера. Пример визуального представления программы на языке FBD показан на рис. 7.
LAD (Ladder Diagram) — язык релейной (лестничной) логики, известный также под названиями LD и РКС.
Синтаксис этого языка удобен для описания логических узлов, выполненных на релейной технике. Язык ориентирован на специалистов по автоматике, работающих на промышленных предприятиях.
Он обеспечивает наглядное отображение логики работы контроллера, облегчающее не только собственно программирование и ввод системы в эксплуатацию, но и быстрый поиск неполадок в подключаемом к контроллеру оборудовании. Программа на языке релейной логики имеет наглядный и интуитивно понятный инженеру-электрику вид, представляя логические операции в виде электрических цепей с замкнутыми и разомкнутыми контактами. Протекание или отсутствие тока в такой цепи соответствует результату логической операции (ток течёт — истина, ток не течёт — ложь). Пример схемы на языке LAD представлен на рис. 8.
Основные элементы языка LAD — контакты, которые можно уподобить контактным парам реле или кнопок. Контактная пара отождествляется с логической переменной, а состояние этой пары — со значением переменной. Различают нормально замкнутые и нормально разомкнутые контактные элементы. Их можно сопоставить с нормально замкнутыми и нормально разомкнутыми кнопками в электрических цепях.
Такой подход оказался очень удобным для лёгкого вхождения инженеров-электриков в разработку систем автоматики. Разрабатывая проекты установок, они могут легко привязать их функционирование к алгоритмам работы контроллера. При обслуживании установок на объекте очень важно, чтобы обслуживающий персонал мог легко проверить работу системы, найти и устранить проблему, не вызывая при этом по каждому пустяку программиста из «центра». Сегодня с помощью подобных средств разработки создают почти все системы промышленной автоматики.
Построенная на этих представлениях система разработки программ FLProg работает с микроконтроллерными модулями Arduino. Эти модули очень удобны для быстрой разработки и отладки устройств, что важно не только радиолюбителям, но и весьма полезно, например, в школьных кружках и в учебных лабораториях. Одно из преимуществ — не требуется программатор. Достаточно подключить модуль Arduino к компьютеру и загрузить подготовленную программу непосредственно из среды разработки.
В настоящее время существует богатый выбор как различных вариантов микроконтроллерных модулей Arduino (рис. 9), так и дополняющих их модулей, например, датчиков и исполнительных устройств. Кроме того, в Интернете (например, на сайте https://robocraft.ru/) можно найти огромное число готовых проектов на основе этих модулей и адаптировать их под свои нужды.
В настоящее время система FLProg работает со следующими версиями модулей: Arduino Diecimila, Arduino Duemila-nove, Arduino Leonardo, Arduino Lilypad, Arduino Mega 2560, Arduino Micro, Arduino Mini, Arduino Nano (ATmega168), Arduino Nano (ATmega328), Arduino Pro Mini, Arduino Pro (ATmega168), Arduino Pro (ATmega328), Arduino UNO. Недавно в списке появилась и плата Intel Galileo gen2. В дальнейшем предполагается пополнение и этого списка, возможно, и добавление модулей, основанных на микроконтроллерах STM.
Для создания FLProg был использован опыт программистов фирм Siemens, ABB, Schneider Electric и наработки в их средах программирования. При этом был несколько расширен классический функционал языков для работы с промышленными контроллерами путём добавления функциональных блоков, отвечающих за работу с внешними устройствами. Программа работает на компьютерах под управлением ОС Windows и Linux.
Пользовательский интерфейс FLProg устроен так, что проект представляет собой набор виртуальных плат, на каждой из которых собран законченный модуль разрабатываемой системы. Каждая плата имеет наименование и снабжена комментариями. Для экономии места в рабочей зоне её можно свернуть, если работа над ней закончена, а при необходимости вновь развернуть и внести коррективы.
Красный индикатор у наименования платы на рис. 10 указывает на то, что в её схеме обнаружены ошибки. После исправления ошибок индикатор станет зелёным. Стрелка рядом с комментарием предназначена для свёртки изображения.
Правое окно рабочей области (рис. 11) отведено для библиотеки элементов. Добавить компонент в проект можно простым перетаскиванием, а двойной щелчок покажет информацию об элементе программы. Перечень блоков, предусмотренных в программе, их описание и помощь по работе с программой можно найти на интернет-странице [1].
На интернет-странице [2] имеется перечень периферийного оборудования, поддерживаемого программой. Эти списки постоянно пополняются.
По мере развития программы планируется организация обмена информацией по Bluetooth, радиоканалу и интерфейсу RS-485, работа с трехосевым гироскопом, люксметром и другими датчиками. В дальнейших планах есть разработка SCADA-системы для доступа к системам, разработанным с помощью среды FLProg, с персонального компьютера или мобильного устройства.
Разработанную «принципиальную схему» FLProg переводит на язык Processing/Wiring. По завершении компиляции автоматически открывается программа Arduino IDE с загруженным скетчем проекта. В Arduino IDE необходимо указать COM-порт компьютера, к которому подключён микроконтроллерный модуль, выбрать тип модуля и загрузить программу в его микроконтроллер.
Среду программирования FLProg можно адаптировать к программируемым логическим контроллерам, отличающимся от модулей Arduino, что позволит применять для работы с ними российское программное обеспечение.
ЛИТЕРАТУРА
- Создание Help-а для программы FLProg. — URL https://flprogwiki.ru/wiki/index.php?title=%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5Help-%DO%BO%D0%B4%D0%BB%D1%8F_%D0%8F%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D1%8BFLProg (23.06 15).
- Применяемое в проекте оборудование. — URL https://flprog.ru/FLProg/pid218088913/vdi194000369 (23.06 15).
Настройка IDE
Для соединения платы с компьютером используется USB-порт. Программирование не требует специального оборудования, сама плата компактна и имеет малый вес.
Шаг 1
Соединяем плату Arduino с компьютером.
Шаг 2
Пуск → Панель управления → Диспетчер устройств
Находим «Порты COM и LPT» и видим нашу плату на COM2.
Вполне вероятно, что вы ничего не увидите. В большинстве случаев проблема в том, что вы купили плату на чипе CH340G. В таком случае нужно воспользоваться решением из нашей статьи.
Шаг 3
Запускаем Arduino IDE и переходим в:
Инструменты → Порт
Выбираем порт COM2 (или тот, который получился у вас на шаге выше).
Шаг 4
На этом с настройкой закончено. Теперь у вас настроена Arduino IDE и вы можете приступить к разработке своих проектов.
Источник: inodroid.ru