- PVSM.RU - https://www.pvsm.ru -
В предыдущем посте [1] я рассказал о предыстории появления проекта FLProg. Сейчас я хочу поподробнее рассказать о проекте и его состоянии на сегодняшний день.
Основной целью проекта является включение в круг пользователей плат Arduino людей незнакомых с программированием. Это возможно благодаря опыту промышленного программирования, который накапливался годами производителями промышленных контроллеров.
Проект состоит из двух частей. Первая часть это десктоп приложение FLProg представляющее собой графическую среду программирования плат Arduino. Во вторых, это сайт FLProg.ru [2], с помощью которого члены сообщества пользователей программы могут пообщаться между собой, узнать последние новости проекта, скачать последнюю версию программы, ну и найти необходимую информацию по работе с приложением.
Начнем по порядку.
Программа FLProg позволяет создавать прошивки для плат Arduino с помощью графических языков FBD и LAD, которые являются стандартом в области программирования промышленных контроллеров.
Я немного расширил классический функционал этих языков, добавив функциональные блоки, отвечающие за работу с внешними устройствами. Они являются обертками, над библиотеками, предназначенными для работы с ними.
Проект в FLProg представляет собой набор плат, на каждой, из которой собран законченный модуль общей схемы. Для удобства работы каждая плата имеет наименование и комментарии. Так же каждую плату можно свернуть (для экономии места на рабочей зоне, когда работа над ней закончена), и развернуть. Красный индикатор в наименовании платы указывает на то, что в схеме платы есть ошибки.
Вид окна программы в режиме языка FBD
Вид окна программы в режиме языка LAD
Схема каждой платы собирается из функциональных блоков в соответствии с логикой работы контроллера. Большинство функциональных блоков имеют возможность настройки, с помощью которой их работу можно настроить в соответствии с необходимыми в данном конкретном случае требованиями.
Так же для каждого функционального блока есть развернутое описание, которое доступно в любой момент и помогает разобраться в его работе и настройках.
При работе с программой пользователю нет необходимости заниматься написанием кода, контролем за использованием входов – выходов, проверкой уникальности имен и согласованностью типов данных. За всем этим следит программа. Так же она проверяет корректность проекта целиком и указывает на наличие ошибок.
Для работы с внешними устройствами создано несколько вспомогательных инструментов. Это инструмент инициализации и настройки часов реального времени, инструменты для чтения адресов устройств на шинах OneWire и I2C а так же инструмент для чтения и сохранения кодов кнопок на ИК пульте. Все определённые данные можно сохранить в виде файла и в последующем использовать в программе.
[XOR]
[AND]
[OR]
[Bounce]
[Scale]
[SR]
[TT]
[RS]
[Rtrig]
[Generator]
[Timer]
[Counter]
[SpeedCounter]
[SUM(+)]
[MUL(*)]
[DIV(/)]
[SUB(-)]
[SIN]
[COS]
[TAN]
[ABS]
[SQ]
[SQRT]
[MIN]
[MAX]
[POW]
[RANDOM]
[Comparator]
Send
SendVariable
ReceiveVariable
[SWITCH]
[MUX]
[DMS]
ServoMotor
StepMotor
[Alarm]
[GetTime]
[SetTime]
Дисплей на чипе НD44780
Подсветка дисплея на чипе НD44780 I2C
Блок декодирования семи сегментного индикатора
Сложение строк
[Ultrasonic HC-SR04]
[DHT11, DHT21, DHT22]
[DS18x2x]
[IR Ressive]
[BMP-085]
Запись переменной на SD карту
Выгрузка файла с SD карты
Преобразование строк
Преобразование Float в Integer
Расширитель выводов 74HC595
Шифратор
Дешифратор
Чтение бита
Запись бита
Матричная клавиатура
Контакт
Катушка
Защита от дребезга
Выделение переднего фронта
Двустабильное реле
Реле времени
Генератор
Реле сравнения
SIN
COS
TAN
ABS
MAX
MIN
SQ
SQRT
POW
RANDOM
Масштабирование
Математика
Счетчик
Аналоговый переключатель
Переключатель много к одному
Переключатель один ко многим
Аналоговый вход контроллера
Аналоговый выход контроллера
Вход аналогового соеденителя
Выход аналогового соединителя
Скоростной счетчик
Передача в ComPort
Передача переменной через ComPort
Прием переменной через ComPort
Сервомотор
Шаговый двигатель
Получить данные
Будильник
Установка времени
Дисплей на чипе HD44780
Блок управления подсветкой дисплея на чипе HD4480 I2C
Блок декодирования семи сегментного индикатора
Сложение строк
Ультразвуковой дальномер HC-SR04
Датчик температуры и влажности DHT11 (DHT21, DHT22)
Датчик температуры DS18x2x
IR Ressive
BMP-085
Запись переменной на SD карту
Выгрузка файла с SD карты
Конвертация строк
Преобразование Float в Integer
Расширитель выводов 74HC595
Шифратор
Дешифратор
Чтение бита
Запись бита
Матричная клавиатура.
Датчик температуры и влажности DHT11 [5]
Датчик температуры и влажности DHT21
Датчик температуры и влажности DHT22
Ультразвуковой дальномер HC-SR04 [6]
Датчики температуры DS18B20 [7]
Датчики температуры DS18S20 [7]
Датчики температуры DS1822 [7]
Датчик давления BMP085
Датчик движения (PIR Motion sensor) HC-SR501 [8]
Датчик газа MQ2 (углеводородные газы, дым). [9]
Шаговый двигатель [10]
Сервопривод [11]
Дисплей на чипе HD44780 с параллельным управлением [12] и управлением по шине I2C
Семи сегментные индикаторы
SD картридер. [13]
Сдвиговые регистры 74HC595
Матричная клавиатура
В следующих публикациях я расскажу о сайте проекта и перспективах развития проекта.
Автор: totuin
Источник [14]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/arduino/73602
Ссылки в тексте:
[1] посте : http://habrahabr.ru/company/flprog/blog/242151/
[2] FLProg.ru: http://flprog.ru
[3] DS1307: http://flprog.ru/FLProg/pid144781676/vpi55329600
[4] DS3231: http://flprog.ru/FLProg/pid144781676/vpi138017590
[5] Датчик температуры и влажности DHT11: http://flprog.ru/FLProg/pid144781676/vpi164972250
[6] Ультразвуковой дальномер HC-SR04: http://flprog.ru/FLProg/pid144781676/vpi107624037
[7] Датчики температуры DS18B20: http://flprog.ru/FLProg/pid144781676/vpi141024639
[8] Датчик движения (PIR Motion sensor) HC-SR501: http://flprog.ru/FLProg/pid144781676/vpi224423694
[9] Датчик газа MQ2 (углеводородные газы, дым).: http://flprog.ru/FLProg/pid144781676/vpi170258348
[10] Шаговый двигатель: http://flprog.ru/FLProg/pid144781676/vpi88312140
[11] Сервопривод: http://flprog.ru/FLProg/pid144781676/vpi225364273
[12] с параллельным управлением: http://flprog.ru/FLProg/pid144781676/vpi122936421
[13] SD картридер.: http://flprog.ru/FLProg/pid144781676/vpi160215134
[14] Источник: http://habrahabr.ru/post/242335/
Нажмите здесь для печати.