Визуальная среда программирования

Ladder Diagram (LD, LAD, РКС)

– язык релейной (лестничной) логики. Синтаксис языка удобен для замены логических схем, выполненных на релейной технике. Язык ориентирован на инженеров по автоматизации, работающих на промышленных предприятиях. Обеспечивает наглядный интерфейс логики работы контроллера, облегчающий не только задачи собственно программирования и ввода в эксплуатацию, но и быстрый поиск неполадок в подключаемом к контроллеру оборудовании. Программа на языке релейной логики имеет наглядный и интуитивно понятный инженерам-электрикам графический интерфейс, представляющий логические операции, как электрическую цепь с замкнутыми и разомкнутыми контактами. Протекание или отсутствие тока в этой цепи соответствует результату логической операции (истина – если ток течет; ложь – если ток не течет). Основными элементами языка являются контакты, которые можно образно уподобить паре контактов реле или кнопки. Пара контактов отождествляется с логической переменной, а состояние этой пары – со значением переменной. Различаются нормально замкнутые и нормально разомкнутые контактные элементы, которые можно сопоставить с нормально замкнутыми и нормально разомкнутыми кнопками в электрических цепях.

Такой способ программирования оказался очень удобным для легкого вхождения в разработку систем АСУ инженеров-электриков и электронщиков. Разрабатывая проекты устройств, они могут легко привязать работу этих установок к алгоритмам работы контроллера.

Построенная на этих представлениях программа FLProg работает с Arduino.
Плата очень удобна для быстрой разработки и отладки своих устройств, что важно не только радиолюбителям, но весьма полезно, например, и в школьных кружках, и в учебных лабораториях колледжей. Одно из преимуществ – вам не нужен программатор. Вы подключаете плату Arduino к компьютеру и готовую программу загружаете из среды разработки. В настоящее время существует богатый выбор модулей Arduino, дополнительных модулей, работающих с Arduino, датчиков и исполняющих устройств.

В настоящее время программой поддерживаются следующие версии Arduino: Arduino Diecimila, Arduino Duemilanove, 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.

Приведу простейший пример программы – мигание светодиодом, подключенным к pin13 на двух языках.

FBD

Запускаем FLProg, создаем новый проект. В появившемся окне выбираем язык программирования – FBD, контроллер – Arduino Uno и жмем на кнопку «Готово»:

Далее в дереве проекта добавляем выход:

Зададим имя выходу – Led, тип — цифровой и выберем номер контакта, в нашем случае – это 13 контакт:

Затем добавим этот контакт, перетащив его зажатой левой кнопкой мыши в поле редактора схемы. В библиотеке функциональных блоков найдем Generator и тоже добавим его к проекту:

Щелкнув два раза на генераторе откроется окно его свойств, в котором выставим следующие параметры как на рисунке:

Затем проведем линию от вывода Q генератора до прямоугольника Led. Должно получиться как на рисунке:

На этом написание программы окончено. Теперь её можно загрузить в плату Arduino нажав на кнопку «Компилировать проект»:

Откроется программа Arduino 1.8.1, хорошо знакомая тем, кто хоть раз программировал платы Arduino из которой и производится прошивка платы Arduino.

Код, который сгенерировала программа FLProg:

bool _gen1I = 0; bool _gen1O = 0; unsigned long _gen1P = 0UL; void setup() { pinMode(13, OUTPUT); } void loop() { //Плата:1 if (0) { if (! _gen1I) { _gen1I = 1; _gen1O = 1; _gen1P = millis(); } } else { _gen1I = 0 ; _gen1O= 0;} if (_gen1I) { if ( _isTimer ( _gen1P , 500 )) { _gen1P = millis(); _gen1O = ! _gen1O;}} digitalWrite(13, _gen1O); } bool _isTimer(unsigned long startTime, unsigned long period ) { unsigned long currentTime; currentTime = millis(); if (currentTime>= startTime) {return (currentTime>=(startTime + period));} else {return (currentTime >=(4294967295-startTime+period));} }

Может код и не совсем оптимизирован, но он полностью рабочий.

LAD

При создании проекта необходимо выбрать язык LAD и контроллер Arduino Uno как в прошлом примере. Далее необходимо добавить из библиотеки функциональных блоков генератор к нашему проекту:

Свойства генератора установить как показано на рисунке:

И нарисовать следующее соединение:

На этом написание программы окончено. Аналогичным предыдущему примеру образом скомпилируем проект:

Получившийся код программы:

bool _gen1I = 0; bool _gen1O = 0; unsigned long _gen1P = 0UL; void setup() { pinMode(13, OUTPUT); } void loop() { //Плата:1 if (1) { if (! _gen1I) { _gen1I = 1; _gen1O = 1; _gen1P = millis(); } } else { _gen1I = 0 ; _gen1O= 0;} if (_gen1I) { if ( _isTimer ( _gen1P , 500 )) { _gen1P = millis(); _gen1O = ! _gen1O;}} if(_gen1O) {digitalWrite (13, 1); } else {digitalWrite (13, 0); } } bool _isTimer(unsigned long startTime, unsigned long period ) { unsigned long currentTime; currentTime = millis(); if (currentTime>= startTime) {return (currentTime>=(startTime + period));} else {return (currentTime >=(4294967295-startTime+period));} }

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

alex-day ›
Блог ›
Arduino: Программирование без программирования

На сегодняшний день Ардуино является одним из самых простых способов освоить микроконтроллеры: благодаря простому интерфейсу, простоте (можно сказать даже примитивности) «языка Ардуино» программирование микроконтроллеров становится доступно даже школьникам. Однако всегда находятся энтузиасты старающиеся улучшить даже то, что и так кажется простым. В данном случае речь идет о «визуальном программировании», т.е. графических средах позволяющих не писать программы, а рисовать их.
Итак встречаем: Scratch, ArduBloсk и FLProg — три попытки сделать так, чтобы программирование стало доступно даже дошкольникам 🙂

Scratch
Страница проекта — s4a.cat/
В 2003 году группа исследователей под руководством Митчела Резника из MIT Media Lab решила сделать общедоступный язык программирования. В результате через 4 года появился Scratch — «среда для обучения школьников программированию».
В этой среде можно создавать и играть с различными объектами, видоизменять их вид, перемещать их по экрану, устанавливать формы взаимодействия между ними. Это объектно-ориентированная среда, в основе которой лежит принцип конструктора LEGO и в которой программы собираются из разноцветных блоков-кирпичиков команд точно так же, как собираются из разноцветных кирпичиков конструкторы Лего.
Среда русифицирована, для нее есть много инструкций и руководств на русском языке. Проекты, создаваемые в Scratch, выкладываются на сайте проекта scratch.mit.edu/, все они доступны для скачивания и использования. Среда доступна для работы ребенка с раннего возраста, немного умеющего читать и пользоваться мышью.
Основа среды – блоки команд, разделенные на несколько групп: движение, внешность, звук, перо, контроль, сенсоры, операторы, переменные. Встроенная «рисовалка» позволяет нарисовать нужный объект, а блоки команд (их нужно перетаскивать мышью) – задать программу действий, в том числе с применением условных операторов и циклов. Конечно, у Scratch отсутствует масса функций реального языка программирования, но и имеющихся достаточно для создания довольно сложных программ и игр. В самой программе имеется довольно большая база уже готовых нарисованных животных, домов, предметов и так далее, а кроме того, в качестве образца можно использовать любой из тысяч опубликованных в сети интернет программ примеров, сделанных взрослыми и детьми.
В 2008 году появился проект Scratch для Arduino (в оригинале: Scratch For Arduino или сокращённо — S4A) — это модификация Scratch, которая предоставляет возможность простого визуального программирования контроллера Arduino, а так же содержит новые блоки для управления датчиками и исполнительными механизмами, подключаемыми к Arduino.
S4A представляет собой скетч прошивки s4a.cat/downloads/S4AFirmware15.ino, которая загружается в Ардуино, делает его исполнительным устройством, программа выполняется на компьютере, Ардуино её физически выполняет, передавая сигналы на выходы платы. Ардуино в этом случае через Serial-соединение получает от Скретча команды какие порты в какой уровень установить и передает на ПК измеренные уровни с входов.
Более подробно можно узнать либо на странице проекта, либо посмотрев видео от Амперки — www.youtube.com/playlist?…OzZQGDFdoRfldtqbmNU6a-PIp

ArduBloсk
Страница проекта -blog.ardublock.com/
Имен разработчиков и их локализации мне найти не удалось, но данный проект активно продвигается разработчиком плат sparkfun, поэтому ИМХО это их проект.
Ardublock это графический язык программирования для Arduino, предназначенный для непрограммистов и простой в использовании. В отличии от Скретча ArduBloсk встраивается в среду Arduino IDE и генерит программый скетч, загружаемый в МК. Причем, после закачки в платформу, исполнение кода будет происходить автономно, т.е. не требуется непосредственное управление с компьютера по проводной или беспроводной связи.
Среди руссоязычного сообщества проект известен благодаря учителю-энтузиасту из Лабинска Александру Сергеевичу Аликину — geektimes.ru/post/258834/

FLProg
Страница проекта — flprog.ru/
Проект развивается силами одного человека — Сергея Глушенко. Основная идея заключается в том, чтобы адаптировать применяющиеся в области программирования промышленных контроллеров языки FBD и LAD к Ардуино.

FBD (Function Block Diagram) — графический язык программирования стандарта МЭК 61131-3. Программа образуется из списка цепей, выполняемых последовательно сверху вниз. При программировании используются наборы библиотечных блоков. Блок (элемент) — это подпрограмма, функция или функциональный блок (И, ИЛИ, НЕ, триггеры, таймеры, счётчики, блоки обработки аналогового сигнала, математические операции и др.). Каждая отдельная цепь представляет собой выражение, составленное графически из отдельных элементов. К выходу блока подключается следующий блок, образуя цепь. Внутри цепи блоки выполняются строго в порядке их соединения. Результат вычисления цепи записывается во внутреннюю переменную либо подается на выход контроллера.

Ladder Diagram (LD, LAD, РКС) — язык релейной (лестничной) логики. Синтаксис языка удобен для замены логических схем, выполненных на релейной технике. Ориентирован на инженеров по автоматизации, работающих на промышленных предприятиях. Обеспечивает наглядный интерфейс логики работы контроллера, облегчающий не только задачи собственно программирования и ввода в эксплуатацию, но и быстрый поиск неполадок в подключаемом к контроллеру оборудовании. Программа на языке релейной логики имеет наглядный и интуитивно понятный инженерам-электрикам графический интерфейс, представляющий логические операции, как электрическую цепь с замкнутыми и разомкнутыми контактами. Протекание или отсутствие тока в этой цепи соответствует результату логической операции (истина — если ток течет; ложь — если ток не течет). Основными элементами языка являются контакты, которые можно образно уподобить паре контактов реле или кнопки. Пара контактов отождествляется с логической переменной, а состояние этой пары — со значением переменной. Различаются нормально замкнутые и нормально разомкнутые контактные элементы, которые можно сопоставить с нормально замкнутыми и нормально разомкнутыми кнопками в электрических цепях.
Результатом работы FLProg является конечный код, который может быть подгружен в МК.

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

Визуальное программирование с VISUINO

Visuino — это визуальная графическая среда разработки CONTROLLINO. Она позволяет создавать сложные промышленные системы автоматизации и решения IoT (Internet of Things — интернет вещей), просто перемещая и соединяя несколько графических блоков. Visuino автоматически сгенерирует необходимый код CONTROLLINO. Visuino также имеет встроенную визуализацию данных Scope и Gauges, что позволяет легко подключать и отслеживать данные, передаваемые CONTROLLINO.

Программирование с Visuino — это просто: выбираем компоненты (модули) с Панели Компонентов, перемещаем их в Область Визуального Проектирования, соединяем их и настраиваем свойства с помощью Инспектора Объектов. Обзор обеспечивает легкую навигацию по крупным проектам. Visuino включает в себя встроенный Коммуникационный Терминал, Scope, Gauges и другие визуальные инструменты для мониторинга и отображения данных, отправленных CONTROLLINO. После того, как ваш проект будет готов, нажав одну кнопку, Visuino создаст все необходимые коды для Arduino и откроет Arduino IDE (среду разработки Arduino), где вы сможете компилировать и загружать код в CONTROLLINO.

. Visuino содержит большой набор компонентов для: Математических функций / Компараторов — Аналоговых, Цифровых, Даты / Времени и Цвета / Логических функций — ИЛИ, И, Исключающих ИЛИ, НЕ / Flip Flops (Триггеры) — T, RS, D, J-K / Свичей (Переключателей) — Аналоговых , Цифровых , Даты / Времени и Цвета / Генераторов — Часы, Пульс, Синусоида, Треугольная волна, Прямоугольник, Случайные / Таймеров — периодических или одиночных импульсов / Счетчиков — Вверх и Вниз, и Направленных / Двигателей — Шаговых двигателей, Постоянного тока или Сервопривода (Серво) / Дисплеев — ЖК-дисплея, 7 сегментных, сенсорных экранов, матриц, Смарт Пикселей и ТВ-выходов / Датчиков — Температуры, Давления, Веса, Расстояния, Компаса, Акселерометра, Угловых кодеров / Пультов дистанционного управления — Серво или PS2-совместимые(PS -источник питания) / ПИД-контроллеры (регуляторы) / Связи — Последовательной,RS 485, Проводной и Беспроводной Wi-Fi Ethernet или GSM / и многое другое.

Как только CONTROLLINO запрограммирован, Visuino предлагает простой способ подключения к нему через Последовательный порт, RS 485, Ethernet, Wi-Fi или GSM и отслеживание нескольких каналов данных в Terminal (Терминале), Scope или Визуальных Инструментах. Не позволяйте программированию (кодированию) стоять на пути получения необходимых вам решений для контроля промышленного процесса. Visuino будет программировать для вас!

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.

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

Вот список блоков доступных на сегодняшний день.

Базовые элементы

Специальные блоки

Триггеры

Таймеры

Счетчики

Математика

Алгебра

Сравнение

Com –порт

Send
SendVariable
ReceiveVariable

Переключатель

Моторы

ServoMotor
StepMotor

Часы реального времени

Дисплеи

Дисплей на чипе НD44780
Подсветка дисплея на чипе НD44780 I2C
Блок декодирования семисегментного индикатора

Строки

Сложение строк

Датчики

SD карта

Запись переменной на SD карту
Выгрузка файла с SD карты

Конвертация типов

Преобразование строк
Преобразование Float в Integer

Микросхемы расширений

Расширитель выводов 74HC595

Операции с битами

Шифратор
Дешифратор
Чтение бита
Запись бита

Разное

Матричная клавиатура
Пьезодинамик

Запись в EEPROM
Чтение из EEPROM

Коммуникации

SendVariableFromCommunication
RessiveVariableFromCommunication
WebServerPage
WebClient

Базовые блоки

Контакт
Катушка
Защита от дребезга
Выделение переднего фронта

Специальные реле

Двустабильное реле
Реле времени
Генератор
Реле сравнения

Алгебра

SIN
COS
TAN
ABS
MAX
MIN
SQ
SQRT
POW
RANDOM

Аналоговые блоки

Масштабирование
Математика
Счетчик
Аналоговый переключатель
Переключатель много к одному
Переключатель один ко многим
Аналоговый вход контроллера
Аналоговый выход контроллера
Вход аналогового соединителя
Выход аналогового соединителя
Скоростной счетчик

Передача в 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

Коммуникации

Блок отправки переменной через коммуникации
Прием переменной через коммуникации
Страница 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. Основная задача сайта – дать возможность пользователям скачать последнюю версию программы, узнать о нововведениях и изменениях.

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

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

Также на странице загрузки можно посмотреть список нововведений и исправленных ошибок для данной версии и перейти в архив предыдущих версий.