FLProg – Самостоятельная интеграция в программу кастомных контроллеров / Хабр

FLProg – Самостоятельная интеграция в программу кастомных контроллеров / Хабр Машинки

Flprog – альтернативная среда программирования arduino. описание проекта

FLProg – Самостоятельная интеграция в программу кастомных контроллеров / Хабр

На предыдущем

посте

Вот некоторые подробности о проекте FLProg. Позвольте мне немного подробнее рассказать о проекте и его состоянии на данный момент.

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

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

FLProg.ru

Узнайте последние новости о проекте, скачайте последнюю версию программы, а также найдите информацию о работе с приложением.

Начнем по порядку.
Программа FLProg позволяет создавать прошивки для плат Arduino с помощью графических языков FBD и LAD, которые являются стандартом в области программирования промышленных контроллеров.

Описание языка FBD

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

Описание языка LAD

Лестничная диаграмма (LD, LAD, RCS) представляет собой релейную или лестничную логику. Синтаксис языка позволяет заменять логические схемы, выполненные по релейной технологии. Ориентирован на инженеров по автоматизации, работающих на промышленных предприятиях. Обеспечивает простой интерфейс к логике контроллера, как для программирования и ввода в эксплуатацию, так и для поиска и устранения неисправностей подключенного оборудования. Используя графический интерфейс, Relay Logic представляет логические операции в виде схемы с замкнутыми и разомкнутыми соединениями. Согласно логике, протекание или отсутствие тока в этой цепи соответствует истинному или ложному результату (если ток течет; если нет). Контакты являются основными элементами языка, их можно сравнить с контактами на реле или кнопке. Каждая пара контактов описывается логической переменной, а состояние пары контактов описывается значением переменной. В электрических цепях нормально замкнутые и нормально разомкнутые контактные элементы можно уподобить нормально замкнутым и нормально разомкнутым кнопкам.

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

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

Вид окна программы в режиме языка FBD
FLProg – Самостоятельная интеграция в программу кастомных контроллеров / Хабр

Вид окна программы в режиме языка LAD
FLProg – Самостоятельная интеграция в программу кастомных контроллеров / Хабр

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

FLProg – Самостоятельная интеграция в программу кастомных контроллеров / Хабр

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

FLProg – Самостоятельная интеграция в программу кастомных контроллеров / Хабр

При работе с программой пользователю нет необходимости заниматься написанием кода, контролем за использованием входов – выходов, проверкой уникальности имен и согласованностью типов данных. За всем этим следит программа. Так же она проверяет корректность проекта целиком и указывает на наличие ошибок.
Для работы с внешними устройствами создано несколько вспомогательных инструментов. Это инструмент инициализации и настройки часов реального времени, инструменты для чтения адресов устройств на шинах OneWire и I2C а так же инструмент для чтения и сохранения кодов кнопок на ИК пульте. Все определённые данные можно сохранить в виде файла и в последующем использовать в программе.

В следующей публикации я расскажу о веб-сайте проекта и перспективах его развития.

14 . flprog. arduino без написания кода. радиоуправление по nrf24l01 2 мотора и 2 кнопки.

Войдите на сайт, чтобы использовать все возможности RUTUBE

Flprog – самостоятельная интеграция в программу кастомных контроллеров

Проект FLProg уже давно не описывался на страницах Хабра. Это связано с нехваткой времени на написание статей и моими личными проблемами. Однако проект не умер, а скорее жив и развивается. В среднем новая версия программы выходит раз в месяц. Сайт

последней публикации

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

Смотрите про коптеры:  Записи с тэгом “аэроглиссер” — Паркфлаер

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

Вторая проблема – платы контроллеров – теперь требует решения.

Недавно была выпущена бета-версия программы под номером 6.0. В этой версии реализован редактор описаний пользовательских контроллеров. Описания, как и пользовательские блоки, также можно группировать в библиотеки, сохранять по отдельности или все вместе в виде файлов и обмениваться ими.

Этой статьей я начинаю серию из как минимум двух постов, посвященных тому, чтобы показать пользователям, как пользоваться этим редактором. В первой статье я попытаюсь описать плату ShIoTiny от shiotiny с его разрешения. Затем во второй статье я опишу виртуальный аналог реального промышленного контроллера.

Итак, начнём.

Откройте программу FLProg. Выберите пункт “Редактор пользовательских описаний контроллеров” в меню “Инструменты”.

FLProg – Самостоятельная интеграция в программу кастомных контроллеров / Хабр

Откроется окно редактора описаний.

Пользовательские описания можно вложить в библиотеку с любой глубиной вложенности. Сначала нам нужно создать библиотеку описаний.

FLProg – Самостоятельная интеграция в программу кастомных контроллеров / Хабр

Устанавливает название библиотеки.

FLProg – Самостоятельная интеграция в программу кастомных контроллеров / Хабр

Затем описание контроллера создается в библиотеке.

FLProg – Самостоятельная интеграция в программу кастомных контроллеров / Хабр

Дайте ему имя:

FLProg – Самостоятельная интеграция в программу кастомных контроллеров / Хабр

Когда мы создаем описание контроллера, мы переходим непосредственно к ветке General Parameters.

FLProg – Самостоятельная интеграция в программу кастомных контроллеров / Хабр

Здесь можно изменить имя, тип процессора, размер EEPROM, номер версии описания.

Плата ShloTiny основана на контроллере ESP8266, поэтому мы решили использовать именно его. Емкость EEPROM выбирается автоматически при выборе контроллера. При необходимости это значение можно изменить. Новые описания имеют номер версии 1.

Если в будущем вы измените существующие описания, пожалуйста, измените их в сторону увеличения. Как только это описание будет использовано в проекте, программа сравнит версию в проекте и в библиотеке. Если описание описания в библиотеке выше, чем в проекте, то в меню “Проект” программы появится надпись “Проект”. Если нажать в противоположную сторону, то появится пункт обновления описания в библиотеке. Ну а если в библиотеке не найдено описание контроллера, используемого в проекте, – в том же меню появится возможность импортировать описание из проекта в библиотеку.

В этой ветке можно также создать описание контроллера, чтобы помочь в его выборе.

Перед переходом к другой ветви параметров контроллера необходимо нажать кнопку “Применить”. В противном случае изменения не будут сохранены.

Давайте сейчас рассмотрим схему платы ShloTiny.

FLProg – Самостоятельная интеграция в программу кастомных контроллеров / Хабр

В плату включены три цифровых входа, три цифровых выхода, аналоговый вход и вход датчика. На плате имеется восемь выводов.

Задайте количество выходов, затем нажмите кнопку “Apply” в ветке “Controller outputs” в редакторе.

FLProg – Самостоятельная интеграция в программу кастомных контроллеров / Хабр

Программа сгенерирует необходимое количество выходов. Перейдите к первому из них.

FLProg – Самостоятельная интеграция в программу кастомных контроллеров / Хабр

С помощью этой ветки можно написать имя пина, которое будет выводиться в программе. При его отсутствии программа выведет надпись PinN, где N обозначает номер вывода. В поле альтернативного имени вы можете добавить надпись к плате. Так будет проще идентифицировать, к какому выводу идет обращение. Для описанной платы напишем там значение Input1 в соответствии с принципиальной схемой. Здесь можно описать вывод более подробно, например, отметить особенности его применения. В качестве альтернативы можно задать псевдоним для вывода, который будет отображаться в программе в скобках после его имени.

После внесения изменений не забудьте нажать кнопку “Применить”. Давайте назовем другие выходы аналогичным образом.

FLProg – Самостоятельная интеграция в программу кастомных контроллеров / Хабр

Добавьте функции, которые он выполняет, в ту же ветвь основных параметров вывода.

FLProg – Самостоятельная интеграция в программу кастомных контроллеров / Хабр

Выходам можно присвоить следующие функции.

FLProg – Самостоятельная интеграция в программу кастомных контроллеров / Хабр

Функция ввода/вывода для вывода 1 является цифровой. Когда выводу назначается новая функция (которая еще не была сконфигурирована), в дереве контроллера появится ветвь “Ошибки”, а весь путь к неправильной функции будет окрашен в красный цвет. На ветке “Ошибки” можно просмотреть список ошибок, найденных в описании контроллера.

FLProg – Самостоятельная интеграция в программу кастомных контроллеров / Хабр

Число не установлено в качестве цифрового входа на входе 1 в функции “Цифровой ввод/вывод”. – Перейдите к правильной ветке (в будущем я буду переходить непосредственно к нужной ветке при нажатии на ошибку).

FLProg – Самостоятельная интеграция в программу кастомных контроллеров / Хабр

G Контакт PIO2 контроллера подключен к контакту “Input1” на принципиальной схеме платы. В качестве этого значения вводится “Количество цифровых входов”. Во время компиляции это значение будет вставлено в код. Если этот вход не может быть использован в качестве выхода, то снимите флажок “Can be used as output”. Снова нажмите “Применить”, как обычно. Два других цифровых входа конфигурируются аналогичным образом. В этом случае к выходу аналогового входа “ADC1” нужно добавить “Функциональный аналоговый вход”.

Смотрите про коптеры:  АКПП Easytronic: особенности, обслуживание и ремонт — Статьи

FLProg – Самостоятельная интеграция в программу кастомных контроллеров / Хабр

В настройках этой функции необходимо указать номер этого выхода как аналогового входа. На схеме он представляет собой ноль (в ESP8266 он представляет собой единицу).

FLProg – Самостоятельная интеграция в программу кастомных контроллеров / Хабр

Теперь мы установим выход “1WIRE”. Эта функциональность добавлена здесь, но она не может быть использована ни как вход, ни как выход. Поэтому она будет доступна только при создании датчиков, но не при создании входов или выходов.

FLProg – Самостоятельная интеграция в программу кастомных контроллеров / Хабр

Настройка выходов “K1” – “K3” аналогична настройке входов “Input1” – “Input3”, только мы запрещаем использовать их в качестве входов.

FLProg – Самостоятельная интеграция в программу кастомных контроллеров / Хабр

FLProg – Самостоятельная интеграция в программу кастомных контроллеров / Хабр

Перейдите в ветку “Фотографии”. Здесь мы можем добавить фотографии, которые будут загружены в описание контроллера, например, показывающие его внешний вид, выводы и т.д.

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

Нажатие кнопки “Добавить изображение” добавляет изображение.

FLProg – Самостоятельная интеграция в программу кастомных контроллеров / Хабр

Для каждого изображения в дереве создается отдельная ветвь после выбора и загрузки загруженного изображения (поддерживается только формат PNG). Используя эту ветвь, вы можете дать имя загруженному изображению, которое будет отображаться в информации контроллера.

FLProg – Самостоятельная интеграция в программу кастомных контроллеров / Хабр

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

FLProg – Самостоятельная интеграция в программу кастомных контроллеров / Хабр

FLProg – Самостоятельная интеграция в программу кастомных контроллеров / Хабр

Перейдите к разделу “Устройства по умолчанию”.

FLProg – Самостоятельная интеграция в программу кастомных контроллеров / Хабр

Согласно текущим настройкам программы, в этой ветке отображаются блоки, которые могут быть представлены в библиотеке стандартных блоков программы. Что это означает. В программе есть блоки, которые разработаны специально для определенных типов компьютеров. Их наличие определяется выбранным вами процессором. Кроме того, блоки с поддержкой SPI, I2C или UART появятся в этом списке только в том случае, если соответствующие им функции будут добавлены на выходы контроллера. Эти блоки появляются только в том случае, если размер EEPROM больше нуля или функция I2C добавлена к выводам контроллера. Поведение по умолчанию – отказ от использования всех блоков в библиотеке (отмечены оранжевым цветом). Вы можете разрешить использование отдельного блока или целой папки блоков, выделив нужную ветку и выбрав “Разрешить” из контекстного меню.

FLProg – Самостоятельная интеграция в программу кастомных контроллеров / Хабр

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

То же самое касается отдельных папок или блоков.

FLProg – Самостоятельная интеграция в программу кастомных контроллеров / Хабр

Блоки, которые не могут быть помещены во все папки, отмечены тремя звёздочками.

Двигатели, часы реального времени, дисплеи, ИК-блоки управления, датчики (кроме датчиков DS18B20 и DHT22, в поддержке которых разработчики платы только признались), микросхемы расширения и пьезодинамики – запрещены.

FLProg – Самостоятельная интеграция в программу кастомных контроллеров / Хабр

Сделайте то же самое с языком LAD.

FLProg – Самостоятельная интеграция в программу кастомных контроллеров / Хабр

Убедитесь, что вы применили их после внесения изменений.

Пока что текущих настроек достаточно для работы с данной конкретной платой FLProg. Остальные ветви описания контроллера мы рассмотрим в следующем посте.

Скажем лишь, что ветвь “Специальные блоки” используется для загрузки описаний пользовательских блоков, которые отображаются в библиотеке стандартных блоков в программе при использовании контроллера. Ветвь “Специальный код” используется для записи кода, который всегда будет вставлен в скомпилированный код, а ветвь “Специальные библиотеки”, используется для загрузки в описание контроллера библиотек, которые будут загружены в папку libraries ArduinoIDE, с которой работает программа.

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

FLProg – Самостоятельная интеграция в программу кастомных контроллеров / Хабр

Теперь попробуем использовать созданное нами описание контроллера.
В программе FLProg создаем новый проект для контроллера.

FLProg – Самостоятельная интеграция в программу кастомных контроллеров / Хабр

В окне выбора выберите контроллер.

FLProg – Самостоятельная интеграция в программу кастомных контроллеров / Хабр

И мы выбираем описание, которое мы создали.

FLProg – Самостоятельная интеграция в программу кастомных контроллеров / Хабр

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

FLProg – Самостоятельная интеграция в программу кастомных контроллеров / Хабр

FLProg – Самостоятельная интеграция в программу кастомных контроллеров / Хабр

Также можно просмотреть другие параметры

FLProg – Самостоятельная интеграция в программу кастомных контроллеров / Хабр

После выбора контроллера подтвердите выбор:

FLProg – Самостоятельная интеграция в программу кастомных контроллеров / Хабр

Откроется основное рабочее окно проекта, сконфигурированное в соответствии с выбранным контроллером.

FLProg – Самостоятельная интеграция в программу кастомных контроллеров / Хабр

В этом посте я не буду учить вас, как использовать FLProg. На сайте проекта и на форуме проекта это хорошо описано в моих предыдущих сообщениях. Кроме того, есть много каналов на YouTube, где вы можете найти учебники по использованию программы. Очень хороший канал YouTube, “Key to Arduino”, только что выпустил серию уроков, хорошо отображающих материал.

Поэтому для примера мы просто создадим простенький проект и попробуем его скомпилировать.
Сначала добавим вход контроллера.

FLProg – Самостоятельная интеграция в программу кастомных контроллеров / Хабр

Наши выходы в этом качестве могут быть выбраны в качестве входных данных только в том случае, если мы дали им на это разрешение.

FLProg – Самостоятельная интеграция в программу кастомных контроллеров / Хабр

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

FLProg – Самостоятельная интеграция в программу кастомных контроллеров / Хабр

Собираем схему что бы при нажатии кнопки на Input1 (Вход 1) включалось реле К1 (Реле1).
Так же вытаскиваем на схему в отдельную плату блок для чтения информации с датчика DS18B20.

Смотрите про коптеры:  Дрон своими руками: Урок 4. Полётный контроллер.

FLProg – Самостоятельная интеграция в программу кастомных контроллеров / Хабр

Переходим к настройкам устройства. При создании новой шины OneWire могут быть выбраны все цифровые входы/выходы. Это недоработка версии 6.0. Поскольку эта версия все еще находится в стадии бета-версии, это допустимо. В версии 6.1 пины можно будет отключить от использования в качестве датчиков, сенсоров или микросхем расширения. На следующей неделе я расскажу и о другом способе решения этой проблемы. На данный момент мы выбираем пин 1WIRE.

FLProg – Самостоятельная интеграция в программу кастомных контроллеров / Хабр

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

FLProg – Самостоятельная интеграция в программу кастомных контроллеров / Хабр

Снимите блок “OneWire Bus Scan” с новой платы и поместите его перед первой платой.

FLProg – Самостоятельная интеграция в программу кастомных контроллеров / Хабр

Настройте его на ту же шину OneWire и массив, что и специальный считыватель DS18B20.

FLProg – Самостоятельная интеграция в программу кастомных контроллеров / Хабр

Используя блок R-триггера (выбор переднего фронта), создайте схему, которая запускает сканирование шины один раз при старте контроллера.

FLProg – Самостоятельная интеграция в программу кастомных контроллеров / Хабр

На плате с блоком считывания датчиков DS18B20 смонтируйте схему включения/выключения реле с гистерезисом. При такой схеме реле 2 включается, когда температура опускается ниже 10 градусов, и выключается, когда температура поднимается выше 20 градусов.

FLProg – Самостоятельная интеграция в программу кастомных контроллеров / Хабр

Составьте схему составления.

FLProg – Самостоятельная интеграция в программу кастомных контроллеров / Хабр

Таким образом, вы сможете открыть полученный код в Arduino IDE. Вы также можете использовать плату ShloTiny, которая имеет тот же чип, что и NodeMCU. Проверка кода показывает, что он корректен и может быть загружен.

FLProg – Самостоятельная интеграция в программу кастомных контроллеров / Хабр

Код, полученный в результате компиляции
#include <OneWire.h>
extern "C" {
#include "user_interface.h";
}
OneWire  _ow13(13);
byte _FLPArray133289689[9];
unsigned long _d18x2x1Tti = 0UL;
float _d18x2x1O = 0.00;
bool _trgr1 = 0;
bool _bounseInputD2S = 0;
bool _bounseInputD2O = 0;
unsigned long _bounseInputD2P = 0UL;
bool _trgrt1 = 0;
bool _trgrt1I = 0;
bool _sowb1_needScan = 0;
bool _sowb1_ost = 0;
bool _sowb1_Out_1 = 0;

void setup()
{

  pinMode(2, INPUT);
  pinMode(12, OUTPUT);
  pinMode(14, OUTPUT);

  _bounseInputD2O =  digitalRead(2);

}
void loop()
{


  bool  _bounceInputTmpD2 =  (digitalRead (2));

  if (_bounseInputD2S)
  {
    if (millis() >= (_bounseInputD2P   40))
    {
      _bounseInputD2O = _bounceInputTmpD2;
      _bounseInputD2S = 0;
    }
  }
  else
  {
    if (_bounceInputTmpD2 != _bounseInputD2O )
    {
      _bounseInputD2S = 1;
      _bounseInputD2P = millis();
    }
  }




  //Плата:1
  if (1) {
    if (_trgrt1I) {
      _trgrt1 = 0;
    } else {
      _trgrt1 = 1;
      _trgrt1I = 1;
    }
  } else {
    _trgrt1 = 0;
    _trgrt1I = 0;
  };
  if (_sowb1_needScan) {
    if ( _oneWireSeach (_FLPArray133289689, _ow13)) {
      _sowb1_Out_1 = 1;
    }
    _ow13.reset_search();
    _sowb1_needScan = 0;
  }
  if (_trgrt1) {
    if (! _sowb1_ost) {
      _sowb1_ost = 1;
      _sowb1_needScan = 1;
      _sowb1_Out_1 = 0;
    }
  } else {
    _sowb1_ost = 0;
  }

  //Плата:2
  digitalWrite(12, !(_bounseInputD2O));

  //Плата:3
  if (_isTimer(_d18x2x1Tti, 1000)) {
    _d18x2x1Tti = millis();
    _d18x2x1O =  _readDS18_ow13(_FLPArray133289689, _FLPArray133289689[8]);
  }
  if (((_d18x2x1O)) > (20)) _trgr1 = 0;
  if (((_d18x2x1O)) < (10)) _trgr1 = 1;
  digitalWrite(14, _trgr1);






}

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));
  }
}
float _convertDS18x2xData(byte type_s, byte data[12])
{
  int16_t raw = (data[1] << 8) | data[0];
  if (type_s)
  {
    raw = raw << 3;
    if (data[7] == 0x10) {
      raw = (raw & 0xFFF0)   12 - data[6];
    }
  }
  else
  {
    byte cfg = (data[4] & 0x60);
    if (cfg == 0x00) raw = raw & ~7;   else if (cfg == 0x20) raw = raw & ~3;  else if (cfg == 0x40) raw = raw & ~1;
  }
  return  (float)raw / 16.0;
}
float _readDS18_ow13(byte addr[8], byte type_s)
{ byte data[12];
  byte i;
  _ow13.reset();
  _ow13.select(addr);
  _ow13.write(0xBE);
  for ( i = 0; i < 9; i  ) {
    data[i] = _ow13.read();
  }
  _ow13.reset();
  _ow13.select(addr);
  _ow13.write(0x44, 1);
  return _convertDS18x2xData(type_s, data);
}
bool _oneWireSeach (byte array[], OneWire ow )
{
  byte temp[8];
  byte i;
  if ( !ow.search(temp)) {
    return false;
  }
  if (OneWire::crc8(temp, 7) != temp[7]) {
    return false;
  }

  switch (temp[0]) {
    case 0x10:
      array[8] = 1;
      break;
    case 0x28:
      array[8] = 0;
      break;
    case 0x22:
      array[8] = 0;
      break;
    default:
      return false;
  }

  for ( i = 0; i < 8; i  ) {
    array[i] = temp[i];
  }
  return true;
}

Описание контроллера ShloTiny для программы FLProg

В следующем посте мы опишем нечто более серьезное и близкое к тому, что делают “настоящие” промышленные контроллеры.

Последние новости проекта flprog

С помощью этой программы можно запрограммировать контроллер не зная текстовых языков программирования, а выглядит это как рисование электронной или электрической схемы.

Наша команда

Популяризатор проекта FLProg
ВКонтактеКанал YouTubeArduino-prom

Справка — flprog

Здравствуйте Сергей.

В первую очередь я благодарю вас за отличную программу. У вас отличная среда для создания моего проекта как инженера.

После этого у меня возник вопрос, на который я не могу найти ответ: Я создаю проект с несколькими контроллерами ESP8266 NodeMCU, оснащенными OLED-дисплеями. Контроллеры должны взаимодействовать друг с другом в режиме реального времени, выполняя различные действия и обмениваясь данными. Кроме того, радиус действия WiFi сети каждого модуля не должен влиять на передачу данных между конечными контроллерами. В результате контроллеры самостоятельно конфигурируются и записывают в память входные данные для всех контроллеров сети WIFI, чтобы обеспечить постоянное соединение по цепочке (от начального до конечного контроллера). Возможно ли в вашей среде создать подобный алгоритм связи между контроллерами в сети?

С искренним уважением, Аркадий.

Войдите, чтобы ответить

Оцените статью
Радиокоптер.ру
Добавить комментарий

Adblock
detector