Flprog — визуальное программирование arduino и других микроконтроллеров
Содержание:
- FLProg + Nextion HMI. Урок 1
- FLProg + nooLite
- Как я познакомился с программой FLProg
- FLProg — объединение плат Arduino в информационное кольцо
- Создание проектов в программе FLProg. Урок первый +4
- FLProg + RemoteXY = Беспроводная клавиатура для компьютера на Вашем телефоне
- FLProg – Создание пользовательских блоков на языке С (Урок вне очереди)
- Лаба 1. Среда разработки.
- FLProg – Новая реализация обмена по Modbus RTU
FLProg + Nextion HMI. Урок 1
Tutorial
Добрый день.
Хочу рассказать об одном очень интересном проекте компании ITEAD STUDIO — цветной ЖК дисплей + резистивный сенсор касаний с собственным контроллером, управляемые по UART “Nextion HMI”. Данный проект появился на краудфандинговой платформе Indiegogo и при заявленных 20000 долларах проект собрал более 45000 долларов.
Один из пользователей программы FLProg прислал мне образец такой панели для ознакомления. Начав работать с ней, я был восхищён её возможностями, при очень демократичной цене. По возможностям она очень близко подходит к промышленным HMI панелям, а её редактор представляет собой практически полноценную SCADA систему. Поэтому я интегрировал управление этой панелью в проект FLProg.
В этой серии уроков я расскажу, как работать с этой панелью, и управлять ею из программы FLProg. Первый урок будет посвящён программе Nextion Editor и созданию проекта визуализации в ней.
FLProg + nooLite
Tutorial
В первую очередь я хочу предупредить, что это не рекламный пост, я не имею никакого отношения к фирме – производителю оборудования описанного в статье и не имею никаких печенек от неё кроме предоставленного для интеграцию в программу оборудования. Это обучающий пост, который показывает, как с помощью программы FLProg управлять этим оборудованием. Естественно будет небольшой обзор имеющихся у меня блоков и моего личного отношения к этим устройствам.
Теперь небольшая предыстория. Один из пользователей программы обратился в фирму «Ноотехника» с предложением создать пользовательский блок (в то время в программе уже была такая возможность) для работы с производимым ими оборудованием через программу FLProg. Руководитель предприятия пошёл другим путём. Он связался со мной и предложил предоставить мне образцы своей продукции для интеграции их в программу. Изучив предложение, я согласился, поскольку на сайте была библиотека для работы с модулем передатчика, в наличии было хорошее описание, и проблем я не видел. Посылка пришла очень быстро (что странно для почты России) даже с учетом пересечения границы.
Как я познакомился с программой FLProg
Как я познакомился с флопцами.
Это история началась в момент моего рождения. Я родился в «День Энергетика», 22 декабря. Пожалуй, нет! Слишком рано. Оставим этот момент истории, для написания автобиографии. Так, пропускаем и момент, когда я на спор, лет в двенадцать залез рукой в подъездный щиток электроснабжения. Типа этот провод не ударит током. Не ударило.
Калейдоскопом пролетают важные вехи жизни. Обучение монтажником радиоаппаратуры. Работа в горах на передающем центре. Армия, тайга, сапоги, радиостанция на спине. Жизнь, каруселью крутится дальше. Работа электриком, крутым электриком. Вот я уже мастер.
Белой вьюгой пролетает работа на крайнем севере. Жизнь катится в гору. Работа энергетиком. Автокад. Проекты, проекты. Много проектов по ночам. Успех, опыт. Покупка квартиры, машины, семья дети. Дача. Стоп. Дача. Вот отсчёт. При монтаже кровли, падение со второго этажа. Компрессионный перелом позвоночника, перелом тазобедренного сустава, и очень сложный перелом левой ноги.
FLProg — объединение плат Arduino в информационное кольцо
Tutorial
Начиная с версии 1.10.5, программа FLProg позволяет объединять несколько плат Arduino в кольцевую UART сеть. Сначала рассмотрим, как это происходит. Платы соединяются между собой в соответствии со схемой, изображённой на заглавной иллюстрации. Предположим, что плата 1 отсылает через UART пакет данных содержащий идентификаторы платы, переменной, а так же значение переменной. Плата 2 принимает данный пакет и если данные из этой переменной ей не нужны, то просто отправляет этот пакет дальше. Если в соответствии с программой значение данной переменной необходимо контроллеру, то значение из пакета копируется во внутреннюю переменную, и пакет так же отправляется дальше по кольцу.
Когда таким образом пакет, пройдя всё кольцо, вернётся к плате, отправившей его, передача пакета прекратится.
Таким образом, данные из пакета доступны любой плате подключённой к кольцу, и инициатором отправки пакета так же может быть любая из плат.
Создание проектов в программе FLProg. Урок первый +4
- 27.01.16 03:03
•
totuin
•
#269946
•
Гиктаймс
•
Tutorial
•
•
4600
Железо, DIY или Сделай сам, Умный дом, Arduino, Блог компании FLProg
В предыдущей статье я представил проект FLProg. Теперь я хочу рассказать, как работать в этой программе.
У программистов в качестве первого урока принято использовать “Hello World”, у программистов микроконтроллеров помигать светодиодом, ну а у электриков и электронщиков собрать схему управления контактором. Поскольку основными пользователями программы как раз они и являются, собирать на первом уроке будем как раз данную схему.
Стандартная схема управление контактором
Заменим эту схему контроллером Ардуино. Оставим в стороне вопросы помехозащищённости и экранировки. Эта тема для отдельного и очень большого разговора. Наша цель — создать в программе FLProg соответствующую логику. Поэтому накидаем тестовую схему подключения.
Роль контактора в данной тестовой схеме выполняет светодиод «Контактор». Теперь попробуем запрограммировать контроллер.
Запускаем программу FLProg, нажимаем кнопку «Создать новый проект».
Откроется окно выбора контроллера и языка программирования проекта.
Для создания проекта можно использовать любой из двух языков программирования (FBD и LAD) являющимися стандартами в области программирования промышленных контроллеров
В этом уроке мы создадим проекты на обоих языках.Обратите внимание, что после создания проекта на одном из языков сменить его будет невозможно!
При нажатии кнопки выбора контроллера откроется соответствующее окно, в котором будут представлены поддерживаемые программой платы.
В данном списке выбираем нужный контроллер. Выбранный для проекта контроллер можно сменить в любой момент.
Для начала создадим проект на языке LAD
- Основное меню программы
- Дерево проекта (в данном уроке оно не используется, его рассмотрим в последующих уроках)
- Дерево установленного оборудования. В нём представлено оборудование (промежуточные реле, реле времени, генераторы…), которое используется в проекте. В новом проекте в нём присутствуют только входы и выходы контроллера.
- Библиотека блоков. В ней находится оборудование, которое возможно применить в проекте. В данном уроке нас будет интересовать только папка «Базовые блоки»
- Область схемы, в которой и будет собственно рисоваться схема. Схема в FLProg представляет собой набор плат с оборудованием.
- Перетащить соответствующий вход из папки «Свободные входы–выходы контроллера» дерева установленного оборудования на область схемы
- Перетащить блок «Контакт» из папки «Базовые элементы» библиотеки блоков.
- Дважды кликнув на контакт и выбрав нужное состояние в редакторе блока
- Кликнуть правой кнопкой по контакту и в выпавшем меню выбрать нужный пункт.
ИЛИИЛИ
FLProg + RemoteXY = Беспроводная клавиатура для компьютера на Вашем телефоне
У меня дома сложилась интересная ситуация. Телевизор в спальне подключен к компьютеру расположенному в другой комнате, и для того что бы жена могла посмотреть очередную серию сериала (хотя у меня есть андроидная приставка, которая стоит рядом с телевизором, она предпочитает смотреть с компа), приходится приложить достаточно много усилий. В виду присутствия детей, беспроводные мыши и клавиатуры у нас не приживаются. Я давно с интересом присматривался к возможности Arduino Leonardo прикидываться мышкой и клавиатурой, и когда эта плата пришла ко мне, реализовал данную возможность в программе FLProg версии 2.2. В паре с возможностями проекта RevoteXY получилась очень интересная штука. Для начала видео работы получившегося устройства.
FLProg – Создание пользовательских блоков на языке С (Урок вне очереди)
Tutorial
Проект FLProg в последнее время обрёл достаточно большую популярность, и мне перестало хватать времени на создание блоков для той периферии, которая необходима пользователям. В то же время среди пользователей сайта нашлось достаточное количество людей, которые неплохо разбираются в языке C и могли бы мне помочь в развитии программы. Я решил дать им соответствующий инструмент. Таким образом, в версии 1.10.3 появилась возможность создавать пользовательские блоки с интегрированным кодом на С. Это привело к довольно неожиданным результатам. Этим инструментом заинтересовались не только разбирающиеся в программировании пользователи, но и те, кто до этого ни писал не сточки кода. Они начали писать сначала простенькие блоки (например, получение логарифма – среди стандартных у меня такого блока не было), заканчивая уже серьёзными блоками с применением библиотек. Поэтому я хочу немного поломать задуманную последовательность уроков по работе с программой, и вне очереди расскажу, как создавать подобные блоки.
Лаба 1. Среда разработки.
Материал по
главе 1. Изучение IDE (NetBeans,
VStudio). IDE, компилятор,
среда исполнения. Режим командной строки. Консольное приложение. Проект, модуль
(файл), решение (solution) в VS.
Создание пустого проекта для консольного приложения. Структура проекта: исходные
тексты, заголовочники, объектные модули, программный (исполняемый модуль)
модуль, где лежат, что содержат. (cprog 1.7).
Компиляция, исполнение, ошибки, предупреждения. Включение сторонних файлов в
проект. Последовательное погружение на примере рукописной (на доске) программы:
от пустого void main(){}. Простая программа: ввод
массива по предварительно заданной размерности, «красивый» вывод (аналогично
1.8, но без функций в одном main). Стандартный
ввод-вывод (stdio, cprog
4.5), объектная библиотека iostream, базовые типы,
переменные, массивы, размерность, инициализация (1.2), форматированный красивый
вывод, выражения, операторы (условные, цикл). Отладчик: пошаговое исполнение,
точка останова, слежение за переменными. Не оценивается.
FLProg – Новая реализация обмена по Modbus RTU
Tutorial
Ранее ещё на хабре я рассказывал о реализации поддержки протокола Modbus в программе FLProg. К сожалению как показала практика его использования, реализация получилась не очень удачная. Если Slave работал ещё более менее уверенно, то мастер работал очень неустойчиво. Кроме того задание адресов регистров было возможно только в виде непрерывного массива, и не было разделения на области памяти. Мастер в той реализации мог обращаться только к Holding Registers слейвов, что очень ограничивало возможности его применения. Достаточно долго я искал нормально реализованную библиотеку Modbus RTU для Arduino, но поиски не привели к успеху. Поэтому было принято решение написать реализацию обмена по Modbus RTU самостоятельно. И вот в недавно вышедшей версии программы FLProg с номером 1.12 это сделано. Что изменилось:
- Реализация Modbus RTU полностью совместима с промышленным стандартом.
- Реализованы четыре таблицы переменных – Coils, Discrete Inputs, Input Registers, Holding Registers. Для каждой переменной, можно задавать любой адрес (не обязательно последовательно).
- Реализована возможность задания адреса слейва, скорости порта и отключения/включения опроса конкретного слейва мастером программным путём с запоминанием этих данных в EEProm.
- Реализована возможность одновременной работы мастера и слейва на одном контроллере (на разных портах).
- Реализована возможность применять в качестве порта SoftwareSerial
- Благодаря динамически генерируемому коду одновременная работа мастера и слейва возможна даже на плате Pro-Mini.
- Реализована прямая совместимость со старыми версиями – ранее созданные проекты будут работать на новой версии без переделки.