Разработки ecoins

Библиотеки для разных контроллеров

Аватара пользователя
Dryundel
Полковник
Сообщения: 2401
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 783
Откуда: Ярославль
Имя: Андрей
Контактная информация:

Разработки ecoins

#401

Сообщение Dryundel » 30.10.2019{, 22:06}

Rovki писал(а):
30.10.2019{, 21:41}
Так может как то совместно идти на пользу всем и помогать делать то что лучше можешь ...
Так кто же против. Но в такой свалке даже понять бывает сложно какой вопрос к какому блоку относится и работает ли данный блок с последней библиотекой и как это определить. Только и слышно не компилируется, не компилируется. Свежие и рабочие пары версий блок-библиотека раскиданы по всей ветке. Очень тяжело даже тестировать что то в такой ситуации. А еще разобраться же надо со всеми хиртосплетениями этой серии блоков. Для этого перелопатить четыре сотни разношерстых постов. Как то руки опускаются.
.
Rovki писал(а):
30.10.2019{, 21:41}
Тяжело АВТОРУ в режиме цейтнота думать о всех ...
Если бы дело только в этом было. Увы. Автор как то не особо заинтересован в обучении кого бы то ни было.
Вот же его слова из крайнего поста:
.
ecoins писал(а):
30.10.2019{, 20:32}
Спасибо за содержательное обсуждение.
Много полезного. При этом придерживаюсь иного мнения.
ecoins писал(а):
30.10.2019{, 20:32}
По "поправка для тех для кого создана FLProg" - видимо подразумеваются не опытные пользователи.
Не знаю - от разработчика не было утверждений, что продукт только для этой категории пользователей.

ecoins
Полковник
Сообщения: 2930
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

Разработки ecoins

#402

Сообщение ecoins » 31.10.2019{, 01:54}

Из поста «397: «Прикладываем и будем прикладывать усилия для доступности разработок.
А пока отвечаем и будем отвечать всем заинтересованным сторонам.»
——-
Готовы отвечать и отвечаем на любые вопросы по работе блоков и библиотек. На текущий момент вопросов, на которые не дан ответ, отсутствуют.
——-
По конкретному блоку mcp2307 - его основные свойства:
1. Быстрый - на Nano в тесте (с блоками для логического анализатора) период 13 МИКРОсекунд!!! В цикле обмена данными - 50мкс.
2. Позволяет горячее переподключение, быстро и надежно восстанавливает работу при обрыве линии связи и/или питания.
3. Выполнен автономно с использованием только одной библиотеки, предыдущие блоки требовали несколько библиотек.
4. При масштабировании (одновременное использование нескольких блоков) размер кода остаётся неизменным, меняется только размер оперативной памяти (не сильно).
———
За положительные оценки блока - отдельное спасибо пользователям Dryundel и bsn.

Аватара пользователя
RedSky
Лейтенант
Сообщения: 574
Зарегистрирован: 19.12.2016{, 20:07}
Репутация: 72
Откуда: Днепропетровск
Имя: Алексей

Разработки ecoins

#403

Сообщение RedSky » 01.11.2019{, 19:30}

ecoins, а не тестировали на esp8266 одновременную работу точки доступа, клиента и модбаса? Интересует возможность хотя бы попеременной работы точки доступа и клиента одновременно с коммуникациями. Хочется иметь возможность изменять настройки сети из вебинтерфейса (к примеру мост для cloud сможет работать в разных сетях).

ecoins
Полковник
Сообщения: 2930
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

Разработки ecoins

#404

Сообщение ecoins » 01.11.2019{, 19:38}

Сейчас плотно занимаемся этим. Анализируем что и как сделано в FLProg, как расширить функциональность на ESP32, что можно улучшить, работа c облаком KaScada и в режиме простого байт-ориентированного моста. Есть промежуточные результаты, но выкладывать их еще рано.

Ecomat
Рядовой
Сообщения: 35
Зарегистрирован: 02.07.2019{, 08:47}
Репутация: 0
Имя: Александр

Разработки ecoins

#405

Сообщение Ecomat » 01.11.2019{, 20:49}

Dryundel писал(а):
30.10.2019{, 21:18}
Дополнительная пара, тройка строчек в описании да примерчик простой типа такого:
Ваш пример то же не много прояснил. При подключении шифратора на прямую к описываемому блоку выдает ошибку компилирования. Получается только через переменную, как у автора. Поясните пожалуйста, как непосредственно управлять выходами отдельно, так же как это было в штатном блоке для микросхемы расширения MCP23017? И как быть с описанием шифратора "Если высокий уровень будет присутствовать на нескольких входах, на выходе блока будет значение соответствующее выходу с высоким уровнем имеющему самый большой номер."

Ingwar
Полковник
Сообщения: 1929
Зарегистрирован: 28.10.2015{, 22:47}
Репутация: 223
Откуда: Ленобласть
Имя: Игорь

Разработки ecoins

#406

Сообщение Ingwar » 01.11.2019{, 21:15}

Ecomat писал(а):
01.11.2019{, 20:49}
как
Это значит, что если на входе 7 и 8 будут единицы, то на выходе будет цифра 8
Люди в своем большинстве живо интересуются всем на свете, за исключением того, что действительно стоит знать.

ecoins
Полковник
Сообщения: 2930
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

Разработки ecoins

#407

Сообщение ecoins » 01.11.2019{, 22:45}

Шифратор там не к месту.
На входе можно поставить блок bit->byte, на выходе наоборот byte->bit.
В описании блока указано, что каждый из регистров mcp2307(А и В) могут работать только как входной или выходной регистр.
Раздельные режимы для отдельных битов в блоке не предусмотрено - за счёт этого удалось существенно увеличить быстродействие блока.

Аватара пользователя
Dryundel
Полковник
Сообщения: 2401
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 783
Откуда: Ярославль
Имя: Андрей
Контактная информация:

Разработки ecoins

#408

Сообщение Dryundel » 02.11.2019{, 00:09}

Ecomat писал(а):
01.11.2019{, 20:49}
Ваш пример то же не много прояснил. При подключении шифратора на прямую к описываемому блоку выдает ошибку компилирования.
Извиняюсь. В горячке не то ляпнул, перепутав назначение блоков.
Конечно же требуется блоки конвертации бит и байт (Bits <-> Byte) они в той же папке "Операции с битами"
Вот три возможных варианта применения штатных блоков:
.
MCP_IO.jpg
Отправлено спустя 6 минут 6 секунд:
Ecomat писал(а):
01.11.2019{, 20:49}
Поясните пожалуйста, как непосредственно управлять выходами отдельно, так же как это было в штатном блоке для микросхемы расширения MCP23017?
Dryundel писал(а):
30.10.2019{, 19:13}
Блок выдает на выходах, а так же принимает на вход значения от 0 до 255, что в двоичном коде соответствует состоянию выходов MCP23017
Пример: 67 = 01000011 и это означает что на выходы IO2(GPA1), IO7(GPA6), IO8(GPA7) будет подан высокий уровень, на других выходах будет низкий, в случае если вы работаете с регистром "А", аналогично и по регистру "B". Варианты настройки входов выходов MCP23017 смотри в описании автора (внутри блока).
Отправлено спустя 29 минут 31 секунду:
ecoins писал(а):
01.11.2019{, 22:45}
На входе можно поставить блок bit->byte, на выходе наоборот byte->bit.
С этого и надо было начинать описание. Спасибо.

Ecomat
Рядовой
Сообщения: 35
Зарегистрирован: 02.07.2019{, 08:47}
Репутация: 0
Имя: Александр

Разработки ecoins

#409

Сообщение Ecomat » 02.11.2019{, 04:57}

Dryundel писал(а):
02.11.2019{, 00:44}
Конечно же требуется блоки конвертации бит и байт (Bits <-> Byte)
,j

Большое спасибо, все действительно летает. Еще бы разобраться с пунктом Управлением временем и задачами. Я для экспериментов с ESP32 подключил 0,96 OLED. Он I2C тормозит. Но это автор и решает. Со временем разберемся, зима длинная.

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Разработки ecoins

#410

Сообщение Sancho » 02.11.2019{, 08:43}

ecoins писал(а):
01.11.2019{, 22:45}
Раздельные режимы для отдельных битов в блоке не предусмотрено - за счёт этого удалось существенно увеличить быстродействие блока.
После этого все прелести микрухи насмарку. Поставить две 8574 или одну 8575 - будет результат один в один. Пройдено и работает одновременный ввод вывод на порту. PCF8575 0,45 usd за корпус
Одно отличие - выход как открытый коллектор, единица макс 100мкА. Кому-то может быть критично.
Описание линейки микрух.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

ecoins
Полковник
Сообщения: 2930
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

Разработки ecoins

#411

Сообщение ecoins » 02.11.2019{, 12:10}

Sancho писал(а):
02.11.2019{, 08:43}
После этого все прелести микрухи насмарку. Поставить две 8574 или одну 8575 - будет результат один в один. Пройдено и работает одновременный ввод вывод на порту. PCF8575 0,45 usd за корпус
Одно отличие - выход как открытый коллектор, единица макс 100мкА. Кому-то может быть критично.
Описание линейки микрух.
----
Не готов согласиться:
1. При побайтовом обмене на PC8574 будет медленнее , поскольку на два байта придется выполнять две раздельных транзакции на шине i2c (вместо одной).
2. При побитовом обмене работает неплохо и штатный блок FLProg mcp23017.
3. Выходы mcp23017 имеют не только приличную нагрузочную способность (20ма), но и возможность работать как обычный выход и как открытый выход.
4. Входы можно подтягивать к питанию внутренними резисторами.
5. На mcp23017 доступны дешевые и удобные модули.
6. ПБ ecoins написан насколько возможно аккуратно и потому работает достаточно быстро.
----
Применение разных решений - блок mcp23017 из FLProg, или блок ecoins, или PC8574 - зависит от вкуса и обстоятельств.
----
Сам по себе ПБ ecoins это одно из многих рядовых решений, а вот МЕТОДы его создания и МЕТОДЫ его использования, в том числе совместное использование с ДИСПЕТЧЕРОМ ЗАДАЧ ecoins -->в среде Arduino и FLProg является особенным.
Эти МЕТОДЫ позволяют добиваться конкретных результатов при создании проектов средней и большой сложности.

Ecomat
Рядовой
Сообщения: 35
Зарегистрирован: 02.07.2019{, 08:47}
Репутация: 0
Имя: Александр

Разработки ecoins

#412

Сообщение Ecomat » 03.11.2019{, 18:27}

Пытался подключить UART в базовой версии Ecoins к ESP32. Но штатный UART просто не работает а софтовый не компелируется. Перепробовал все возможные входы. UART нужен для Nextion. Пытаюсь перенести старый проект с MEGA на ESP32. Это возможно в FlProg - базовый ecoins - ESP32? Или подождать соответствующего модуля в продолжении темы?

ecoins
Полковник
Сообщения: 2930
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

Разработки ecoins

#413

Сообщение ecoins » 03.11.2019{, 18:46}

В другой ветке viewtopic.php?f=18&t=5810 возник вопрос об очередях.
Напишу здесь о подходе реализуемые ecoins в своих проектах с использованием своих библиотек.
------------
Немного определений.
1. ПРОЕКТ - совпадает с понятием "проект" в FLProg (совокупность плат, спроектированных с учетом применяемых контроллеров).
2. ЗАДАЧА - одна или несколько обычно последовательного расположенных плат, выполняемых по условию.
3.ЗАДАЧА_RT - задача спроектированная из одной или нескольких ЗАДАЧ с учетом требований МНОГОПОТОЧНОСТИ. Принцип простой - если при выполнении задачи требуется ожидания выполнения какого-то условия (состояние датчика, состояния буфера приема UART, завершение временной паузы, тайм-аут и т.п.), осуществляется выход из задачи по программному прерыванию. При следующем входе в ЗАДАЧУ_RT управление передается в прерванную точку.
4. ДАННЫЕ - все переменные и константы используемые в проекте. Это могут быть тэги, структуры, контакты. ДАННЫЕ должны быть доступны
каждой из задач и при необходимости проинсталлированны. Обычно это делается в первой плате, которая по условию выполняется ТОЛЬКО ОДИН РАЗ. На этой плате размещаются и текстов описание используемых ДАННЫХ - это важно, ДАННЫЕ рекомендуется отделить от ЗАДАЧ.
5.СОБЫТИЕ - не нулевое значение одной из специально определенных в проекте переменных, которые используются при определении условий вызова ЗАДАЧ. В один момент времени только одно из событий может быть отлично от нуля. Значения всех событий в начале очередного цикла Arduino IDE loop() обнуляются.
6.ДИСПЕТЧЕР - генерит "правильно" события. Обычно это "Номер оперативной задачи", Номер быстрой задачи", "Номер медленной задачи", "Номер фоновой задачи" - названия расставлены по приоритету, самая приоритетная оперативная задачи.
События генерятся периодически с учетом настройки диспетчера.
Обычно это так: каждые 10 мс меняются номера оперативной задачи от 1 до 5; (т.е. каждые 50 мс новая оперативная задача)
каждые 25 мс меняются номера быстрых задач от 1 до 4; (т.е. каждые 100 мс новая быстрая задача)
каждые 250 мс меняются номера быстрых задач от 1 до 4; (т.е. каждые 1 сек новая медленная задача).
Если не наступило время одной из перечисленных задач, меняется номер фоновой задачи - обычно от 1 до 5 (иногда удобно делать и большие значения. например от 1 до 100).
-------------
Использование ДИСПЕТЧЕРА ЗАДАЧ - это всегда отдельная плата (обычно вторая), которая выполняется без условий. Благодаря "правильно" генерируемым событиям в каждый цикл loop() выполняется только одна ЗАДАЧА_RT.
Правильно спроектированные задачи занимают немного процессорного времени - для Arduino Nano:
1. Обычный цикл до 100 мкс.
2. Если в задаче запущен процесс обмена транзакциями по UART или i2c - такая задача добавляет 1-3 мс (в зависимости от размера транзакций).
3. Датчики DHT21 и DS18B20 при чтении данных отнимают примерно 4.5мс. Но это один раз в 2сек.
-------------
Таким образом гарантируется периодический вызов нужных задач. А там уже пользователь может делать многое...
-------------
Ранее выложенные примеры используют изложенные подходы.

Аватара пользователя
Dryundel
Полковник
Сообщения: 2401
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 783
Откуда: Ярославль
Имя: Андрей
Контактная информация:

Разработки ecoins

#414

Сообщение Dryundel » 03.11.2019{, 19:28}

ecoins, ну и как внешним фактором (нажатием кнопки) поставить задачу в очередь?
Ссылку на тему с вопросом Вы дали. Нагнали пурги. А вот ответа чего то не видно. Даже очки надевал и между строк смотрел.
Вероятно я тупой. Так объясните убогому на пальцах что к чему.

Пожалуйста.

ecoins
Полковник
Сообщения: 2930
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

Разработки ecoins

#415

Сообщение ecoins » 03.11.2019{, 20:45}

Вы умный.Тема простая, но устоявшиеся представления обычно препятствуют возможности увидеть проблему иначе.
Насчет пурги. Вы наверное имеете ввиду что-то неясное?
Попробую пояснить... Опасаюсь что еще эмоции заплестнут - а ведь может лучше попробовать понять не понятное?
Шарлатан я, "пургист", и еще что-то такое, или за мной может стоять что-то содержательное - решать Вам.
В первых случаях все просто - дальше не читаете, потраченное время можно компенсировать заслуженными наградами - ярлыки , негатив и т.п. :smile453: К этому я равнодушен.
Если тема интересна, то готов последовательно и насколько получится подробно рассказывать о подходах к проектированию.
--------------
Еще немного простой теории о проектировании программного обеспечения - он получил название системный подход к проектированию "Сверху вниз". Возможно он известен, но по моим наблюдениям в среде Ардуинщиков не очень.
Суть подхода. Часто в начале проектируют исполнительные блоки, а затем их связывают между собой. Для этого приходится вводить условия, согласующие блоки, конвекторы и т.п. Проект разрастается, разрастается, много связей - один блок следует за другим и т.д.
В результате получается очень сложная схема, которую и прочитать порой сложно - такой подход иногда называют "спагетти" - переплетенные макароны.
Системный подход подразумевает, что всегда есть один главный блок, который вызывает подчиненные блоки. Подчиненные блоки могут вызывать другие блоки вниз, но ВСЕГДА управление возвращается в точку ВЫЗОВА. Требование к проектируемым блокам - ограниченное кол-во входных и выходных параметров.
Если блок не понятен и сложен, или нет времени, то вместо него проектируется ЗАГЛУШКА, которая имеет зафиксированные входы/выходы, но не выполняет действий.
Из этого, вроде простого подхода, вытекает важное следствие - все значимые ДАННЫЕ должны быть отделены от блоков, строго описаны, модификация их как правило осуществляется только в одном блоке.
---------------
При таком подходе в начале определяются ДАННЫЕ, БЛОКИ, а решение проблемы достигается последовательностью выполнения спроектированных блоков. Для этого используются флаги, семафоры, диспетчеры и другие вспомогательные средства для реализации нужной последовательности, которая может меняться в зависимости от ДАННЫХ.
Таким образом реализуется МНОГОПОТОЧНОСТЬ при выполнения проектов.
--------------
Для реализации гибкой последовательности выполнения ЗАДАЧ_RT ecoins и разработало ДИСПЕТЧЕР и еще набор дополнительных блоков.
-------------
По кнопкам. Особо не вникал в алгоритм, но он просто разрешится при проектировании сверху вниз.
------------
Возможно разочаровал не конкретностью решения задачи - но ведь сложные задачи так и решаются. Через применяемые МЕТОДЫ - после этого и сложность задач воспринимается иначе.
-----------
Спасибо, если дочитали до конца.

Отправлено спустя 2 минуты 12 секунд:
---
P.S. а какие у Вас очки? У меня -4. :smile427:

Аватара пользователя
bsn
Лейтенант
Сообщения: 347
Зарегистрирован: 22.07.2018{, 07:24}
Репутация: 90
Откуда: Ростовская обл.
Имя: Сергей

Разработки ecoins

#416

Сообщение bsn » 04.11.2019{, 05:26}

ecoins писал(а):
03.11.2019{, 20:48}
Еще немного простой теории о проектировании программного обеспечения - он получил название системный подход к проектированию "Сверху вниз".
Уважаемый ecoins!
И я, и уверен, многие пользователи Flprog, будут Вам очень благодарны если Вы к этой теории прикрепите конкретный пример некого демонстрационного устройства на файлике flp. Подразумевается что там будут: Главный блок, Подчиненные блоки, Диспетчер задач, Заглушка и т.д. и т.п. Очень важно наличие там на схемах, в разных платах, Ваших пояснительных текстов - "этот блок для того", "этот для этого" и т.д.
Так же очень важно, при публикации этого демонстрационного примера, опубликовать ссылки на скачивание Ваших последних действующих библиотек, используемых в данном примере.
Абсолютно уверен, что это значительно упростит порог вхождения в Ваши разработки для очень многих пользователей Flprog.
Заранее благодарен.
Спасибо за все Ваши разработки.

ecoins
Полковник
Сообщения: 2930
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

Разработки ecoins

#417

Сообщение ecoins » 04.11.2019{, 07:08}

Хорошо.
Подготовим демонстрационный пример и обновим библиотеки.
Он будет выполнен на Мега 2560 с возможностью запускa на ESP и STM32.

Аватара пользователя
bsn
Лейтенант
Сообщения: 347
Зарегистрирован: 22.07.2018{, 07:24}
Репутация: 90
Откуда: Ростовская обл.
Имя: Сергей

Разработки ecoins

#418

Сообщение bsn » 04.11.2019{, 08:28}

ecoins писал(а):
04.11.2019{, 07:08}
Подготовим демонстрационный пример и обновим библиотеки.
Он будет выполнен на Мега 2560 с возможностью запускa на ESP и STM32.
Отлично.
И совсем великолепно будет - если этот пример Вы опубликуете, например, в разделе «Пректы различных устройств на Ардуино». Это будет Ваша отдельная тема по конкретному демонстрационному примеру, с Вашими специализированными библиотеками. Что-то вроде «Демонстрационное устройство на базе библиотек ecoins», или назовёте по иному. Главное, что будет всем понятно о чём это, и тема не затеряется.
Если всё выложете здесь, в этой же теме, где мы сейчас – через неделю, месяц найти эту жемчужину станет очень затруднительно.
К примеру, для уроков KeyArduino сейчас выделен целый раздел – «Ключ к Arduino». Каждый пример в отдельной теме. И это хорошо, кому нужно могут поюзать по этой теме, найти нужное для себя описание. Так и должно быть.
Ваши разработки давно уже заслужили отдельную тему для конкретного описания демонстрационного примера. Тогда он будет легко находиться, можно будет скачать рабочие библиотеки и т.д. А общие рассуждения пусть останутся здесь.
Я лично, когда дождусь этого важного для себя события, попробую оценить, что из Вашего примера можно будет применить в разработке своей системы Умный Дом (головной контроллер Мега 2560, с LSD 2004 – связан по modbus с кучей периферийных Arduino Pro Mini, а они непосредственно связанны с датчиками и исполнительными устройствами). Если получится разобраться с Вашим демонстрационным примером – попробую, по возможности, применить что-либо из него и в своей системе УМД.

ecoins
Полковник
Сообщения: 2930
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

Разработки ecoins

#419

Сообщение ecoins » 04.11.2019{, 09:10}

Проблема не в том, что тема не затерялась, а в том чтобы она вызывала практический интерес у пользователей. Пока это не так.
А сложности поиска решаются по разному... Всегда можно написать ecoins. :smile469:
---
P.S. Демонстрационный пример готовится. :smile37:

Аватара пользователя
bsn
Лейтенант
Сообщения: 347
Зарегистрирован: 22.07.2018{, 07:24}
Репутация: 90
Откуда: Ростовская обл.
Имя: Сергей

Разработки ecoins

#420

Сообщение bsn » 04.11.2019{, 09:48}

ecoins писал(а):
04.11.2019{, 09:10}
Всегда можно написать ecoins.
И получить сотню ссылок... Мне лентяю неохота долго искать. :yes:
Подозреваю, что не я один такой...
ecoins писал(а):
04.11.2019{, 09:10}
...чтобы она вызывала практический интерес у пользователей. Пока это не так.
Хотя 14 тысяч просмотров Вашей темы говорят о другом.
Рискну предположить, что у многих как раз затянулось ожидание описания реальных практичечских устройств, с примерами и пояснениями.
Лично я, бегло просматривая все эти несколько сотен постов, всё ждал когда же появится нечто конкретное. Теперь предвкушаю, возможно таки дождусь... :smile469: :)

Закрыто

Вернуться в «Команда ecoins»