Разработки ecoins

ecoins
Полковник
Сообщения: 4005
Зарегистрирован: 12 фев 2016, 11:40
Откуда: Шатура
Имя: Энвер
Благодарил (а): 137 раз
Поблагодарили: 153 раза

Разработки ecoins

Сообщение ecoins »

Dryundel писал(а): 31 июл 2019, 16:32 #280 Сообщение Dryundel » 24 минуты назад
ecoins писал(а): ↑35 минут назад
Библиотеки ecoins, в т.ч. MCP23017. От 31.07.19.
Пожалуйста, помещайте новые библиотеки еще и в первый пост. Желательно с датой обновления.
Возможно так и надо делать. Мы пока это делаем по мере существенных изменений.

Отправлено спустя 28 минут 21 секунду:
olddolin писал(а): 31 июл 2019, 16:38 Те же грабли и тот же лоб, всё один к одному. Библиотеки менял, блоки из последних выложенных в №274 ДЮАИР. Попробовал на есп, компилируется, но не проверял пока работу
1. Проверял, фото о работе выложил вчера. По приведенному Вами листингу видно, что библиотеке RT_HW_Main.h что-то не так с функцией "Счетчик" - у Вас была старая библиотека.
2. Проверял на Nanо, на ESP8266 вчера не проверял и не не писал об этом. Есть некоторые различия в компиляторах С++ для AVR и ESP8266. В данном случае не большие.
3. 30.07. 12:23 - выложил материал по mcp23017
31.07 9:29 - olddolin разместил замечания
31.07 11:06 - увидел замечания (был в дороге) и ответил.
31.07 16:20 - выложил новый материал, поблагодарил olddolin.
31.07 16:45 - olddolin дал понять, что раздражен доставленным ему дискомфортом....
-----------------
Уважаемый olddolin!
Примите мои извинения за доставленный Вам дискомфорт.
Работы было сделано не мало и по ESP8266 была допущена неточность.
При этом горжусь (это для команды ecoins) созданным продуктом. Ничего подобного сделанным нами где-либо не было обнаружено - ни по содержанию методов и свойств, ни по стилю оформления.
Вы не написали результатов проверки последнего поста - предполагаю, что Вам это не очень и нужно. Если иначе, то полагаю сообщили о Вашей заинтересованности, попросили бы быстрее поправить. Иногда нас еще просто благодарят за работу.
Поскольку Вы уже разобрались с тем, что в команда ecoins это не безошибочно работающие роботы (в ней живые разработчики электроники, программного обеспечения и проектов реального времени), то возможный для Вас путь не торопиться использовать наработки ecoins. На них нет клейма "Завершено окончательно".
Последний раз редактировалось ecoins 31 июл 2019, 18:16, всего редактировалось 1 раз.
Аватара пользователя
olddolin
Сержант
Сообщения: 245
Зарегистрирован: 08 сен 2017, 19:47
Откуда: Тверь
Имя: Вадим

Разработки ecoins

Сообщение olddolin »

[ref]ecoins[/ref], Вы меня не правильно поняли, я вообще не конфликтный человек, может не так написал. У меня сейчас нет напряжения, в деревне живу, тестить на контроллере нет возможности. Так что не обижайтесь, уважаю всех творческих людей к коим и вас отношу.А то что плаваю иногда в библиотеках и прочем, здесь согласен, не программист я, больше с силовой электроникой дело имел.
Электронщик как врач, ему нужно постоянно учиться чтобы соответствовать времени.
eric25
Рядовой
Сообщения: 34
Зарегистрирован: 14 фев 2017, 14:43
Имя: Андрей

Разработки ecoins

Сообщение eric25 »

Пример вывода данных с дальномера SR04 и датчика DHT22 переменных типа float и int, вывод переменных типа string на LCD HD44780 с использование блоков и библиотек ecoins. Дальномер работает по прерываниям на pin2.

https://youtu.be/vzoyb9IZnGg
0300_Простой вывод на Lcd_Сенсоры _v4_31.07.19.flp
У вас нет необходимых прав для просмотра вложений в этом сообщении.
________________________________________________________-
Участник "нашей команды" ecoins)
ecoins
Полковник
Сообщения: 4005
Зарегистрирован: 12 фев 2016, 11:40
Откуда: Шатура
Имя: Энвер
Благодарил (а): 137 раз
Поблагодарили: 153 раза

Разработки ecoins

Сообщение ecoins »

[ref]olddolin[/ref], Спасибо. Успехов в работе. Будут вопросы - пишите.
Последний раз редактировалось ecoins 31 июл 2019, 18:49, всего редактировалось 1 раз.
ecoins
Полковник
Сообщения: 4005
Зарегистрирован: 12 фев 2016, 11:40
Откуда: Шатура
Имя: Энвер
Благодарил (а): 137 раз
Поблагодарили: 153 раза

Разработки ecoins

Сообщение ecoins »

По блоку SR04 viewtopic.php?p=73881#p73881.
Это совершенно уникальный блок. Библиотека написанная с нуля с учетом некоторых идей библиотек NewPing и iArduino, но сильно от них отличающихся. Положительный результат получен на основе аппаратных и программных исследований ecoins модулей HC-SR04 и его контроллера :
1. Блок(библиотека) работает и по прерыванию (если пин контроллера обладает таким свойством) и без него. Библиотека самостоятельно выбирает режим. Перевести в режим без прерывания может пользователь через параметры.
2.При работе без прерываний библиотека гарантировано ограничивает время занятия процессорного времени (в отличие от стандартной, где она случайным образом может подвисать на секунды) задаваемым максимальным расстояние - для 60см - это 6мс, для 100см - это 10мс и т.д.
3.При работе с прерываниями - затрачиваемое процессорное время только на правильный запуск -10 микросекунд.
4.Блоки могут работать с самостоятельным периодическим вызовом - по умолчанию для пинов с прерываниями - 50мс, без прерываний - 200мс. Эти параметры настраиваемые.
5. Блок может работать через один пин Echo(в этом случае он соединяется с Trig через резистор 510 ом), или как обычно через два пина.
6. Блок может выдавать результат в миллисекундах, мм, см и тоже самое с усреднением.
7. Блок отбрасывает случайные измерения, связанные с особенностями SR04.
8. Минимальное расстояние 2 см. Если меньше, возможные ошибки измерения - это связанное со свойствами самого SR04.
9. Может быть неограниченное кол-во сонаров в любом сочетании (с прерываниями и без) - код остается неизменным, увеличивается только область выделяемых данных для сонара - для каждого своя область.
10. Если номер пина <0, действия блоком не производятся.
11. В отличии от библиотеки NewPing - таймер не используется и соответственно не занимается.
12. Проводились длительные испытания на Nano,Mega, STM32, DUE, ESP8266, ESP32. На трех последних соединяли через согласователь уровней. Сейчас получили HC-SR04+ - вероятнее всего он будет работать и непосредственно от 3.3в и соответственно можно будет обойтись без согласования уровней.
Аватара пользователя
Dryundel
Полковник
Сообщения: 2422
Зарегистрирован: 22 май 2017, 23:15
Откуда: Ярославль
Имя: Андрей
Поблагодарили: 29 раз

Разработки ecoins

Сообщение Dryundel »

[ref]ecoins[/ref], будьте добры, поясните параметр ДЕЛИТЕЛЬ.
В блоке "Управление lcd" в описании нашел следующее:
ДЕЛИТЕЛЬ - (default=25) для управления (разрешение работы) дополнительными блоками, используется событие
равное кол-во вхождению в данный блок/ ДЕЛИТЕЛЬ. Это позволяет сушественно сократить затраты на время
работы дополнительных блоков.
Ну с падежами беда это ладно. Не понятно в принципе что это такое.
eric25
Рядовой
Сообщения: 34
Зарегистрирован: 14 фев 2017, 14:43
Имя: Андрей

Разработки ecoins

Сообщение eric25 »

Dryundel писал(а): 01 авг 2019, 15:20 [ref]ecoins[/ref], будьте добры, поясните параметр ДЕЛИТЕЛЬ.
В блоке "Управление lcd" в описании нашел следующее:
ДЕЛИТЕЛЬ - (default=25) для управления (разрешение работы) дополнительными блоками, используется событие
равное кол-во вхождению в данный блок/ ДЕЛИТЕЛЬ. Это позволяет сушественно сократить затраты на время
работы дополнительных блоков.
Ну с падежами беда это ладно. Не понятно в принципе что это такое.
Работа RT_LCD с делителем
делитель_крупно.jpg
делитель.bmp
Шина i2c практически свободна (0 и 1 строка).
Обновление на LCD происходит не каждый цикл (сигнал с переменной Blink 3 (оранжевая строка) на анализаторе), а каждый 25 цикл (2 строка-красная), то есть в остальные 24 цикла могут выполняться другие задачи, контроллер не будет тратить время на отображение параметров в LCD(хотя там и так измеряется все МИКРОсекундами(4,5мкс)).

Работа стандартной библиотеки LCD в Flprog
делитель_lcd.bmp
Шина i2c просто "забита" данными (0 и 1 строка), вывод идет на LCD каждый цикл, время длительности цикла(Loop) выросло до МИЛЛИсекунд(4,5 мс)
У вас нет необходимых прав для просмотра вложений в этом сообщении.
________________________________________________________-
Участник "нашей команды" ecoins)
ecoins
Полковник
Сообщения: 4005
Зарегистрирован: 12 фев 2016, 11:40
Откуда: Шатура
Имя: Энвер
Благодарил (а): 137 раз
Поблагодарили: 153 раза

Разработки ecoins

Сообщение ecoins »

Dryundel писал(а): 01 авг 2019, 15:20 будьте добры, поясните параметр ДЕЛИТЕЛЬ.
Дополнительно: каждый из блоков дисплея (lcd.int, lcd.blink b и т.д.) содержит автономный таймер, основанный на функции millis(). Таймеры оперируют 32-разрядными величинами, для 8-разрядных контроллеров это ощутимая нагрузка по времени.
Чтобы блоки выполнялись не каждый раз, они стробируются сигналами "Событие" через вход EN. Это может быть и автономный генератор, для удобство такой генератор встроен в блок begin().
При делитель=25, сигнал на выходе блока begin()=1 каждое 25-ое вхождение в этот блок, в остальное время =0.
Если быстродействие не критично, на входах EN можно просто установить =1 (или проинвертировать этот вход).
neangel
Сержант
Сообщения: 138
Зарегистрирован: 10 янв 2019, 13:13
Откуда: Москва
Имя: Игорь

Разработки ecoins

Сообщение neangel »

Вопрос to ecoins

На этом вашем видео - Академия Развития_Пример вывода значений типа INT на LCD_Full
В самом начале говорится про счётчик и конкретно про ногу mode
Мол счётчик может считать как пила (со сбросом в ноль) или туда-обратно.
Ставите 2 - будет считать, как пила.

Мол читайте описание там всё уже написано.
В описании про эту ногу (mode) ничего нет и какую бы цифру на неё не ставь туда-обратно он не считает.

А счётчик хороший ... спасибо.
Не надо организовывать сброс от верхней границы, как в штатном.
Но кстати.
Может кому то и не надо организовывать этот сброс автоматически (сброс от верхней границы).
Получается в штатном не навязывается кому то не нужная услуга.
ecoins
Полковник
Сообщения: 4005
Зарегистрирован: 12 фев 2016, 11:40
Откуда: Шатура
Имя: Энвер
Благодарил (а): 137 раз
Поблагодарили: 153 раза

Разработки ecoins

Сообщение ecoins »

neangel писал(а): 01 авг 2019, 17:21 В самом начале говорится про счётчик и конкретно про ногу mode
Мол счётчик может считать как пила (со сбросом в ноль) или туда-обратно.
----
Действительно - описание счетчика оказалось урезано. В новых версиях добавим.
Пока смотрите описание здесь:
БЛОК СЧЕТЧИКА
Счетчик считает в диапазоне от -32768 до +32767.
При первом включении или при rst=1, начальное значение счетчика сбрасывается
до значения "НАЧАЛЬНОЕ ЗНАЧЕНИЕ" (диапазоне от -32768 до +32767, default=0).
Счетчик считает с шагом, определяемый
значением "ШАГ ИЗМЕНЕНИЯ СЧЕТЧИКА" (диапазоне от -32768 до +32767, default=1).
Входные параметры:
rst - сброс текущего значения до параметра значения " НАЧАЛЬНОЕ ЗНАЧЕНИЕ.
mode :
'S' - пила. Если шаг >0, увеличение до верхней границы и сразу с возвратом к нижней границе.
Если шаг <0, уменьшение до нижней границы и сразу с возвратом к верхней границе.
'T' - треугольник. Если шаг >0, увеличение до верхней границы, затем уменьшение к нижней границе.
Если шаг <0, уменьшение до нижней границы, затем увеличение к верхней границе.
'L' - лимит. Если шаг >0, увеличение до верхней границы и останавливает счет.
Если шаг <0, уменьшение до нижней границы и останавливает счет.
'C' - предел. Если шаг >0, увеличение до 32767 и останавливает счет.
Если шаг <0, уменьшение до -32768 и останавливает счет.
top - верхняя граница;
bottom - нижняя граница.
----------------------------------------------------------
ecoins@mail.ru 01.08.19
neangel
Сержант
Сообщения: 138
Зарегистрирован: 10 янв 2019, 13:13
Откуда: Москва
Имя: Игорь

Разработки ecoins

Сообщение neangel »

Спасибо.
Всё заработало.
Оказывается на видео была не двойка, а буква S.

Простите слепого пенсионера.
Но я теперь понял почему вы учите подростков.
У них со зрением нет проблем.
Аватара пользователя
Dryundel
Полковник
Сообщения: 2422
Зарегистрирован: 22 май 2017, 23:15
Откуда: Ярославль
Имя: Андрей
Поблагодарили: 29 раз

Разработки ecoins

Сообщение Dryundel »

ecoins писал(а): 01 авг 2019, 17:09 Дополнительно: каждый из блоков дисплея (lcd.int, lcd.blink b и т.д.) содержит автономный таймер, основанный на функции millis().
... ...
Если быстродействие не критично, на входах EN можно просто установить =1 (или проинвертировать этот вход).
Надо это где то расписать.
Скажите, а чем обусловлен именно 25 циклов? Как оперировать этим значением? В каких пределах?
Или это значение оптимальное? Оптимальность для разных контроллеров вероятно разная. Какое значение предпочтительней для ESP8266?
ecoins
Полковник
Сообщения: 4005
Зарегистрирован: 12 фев 2016, 11:40
Откуда: Шатура
Имя: Энвер
Благодарил (а): 137 раз
Поблагодарили: 153 раза

Разработки ecoins

Сообщение ecoins »

Dryundel писал(а): 01 авг 2019, 19:41 Скажите, а чем обусловлен именно 25 циклов? Как оперировать этим значением? В каких пределах?
Или это значение оптимальное? Оптимальность для разных контроллеров вероятно разная. Какое значение предпочтительней для ESP8266?
Если Вы измените на 100, то увидите на глаз более медленный вывод.
Когда мы используем диспетчер задач, то устанавливаем вызов по номеру фоновой задачи - когда фоновых задач 5, то фактически вызов будет уже 25х5 - каждые 125мс. В этом случае мы обычно снижаем делитель до 5-6. Все на глазок - т.е. от визуального восприятия дисплея и критичности не к мгновенному появлению нового значения, а с некоторой плавностью. Кому это это и нравится.
Скорость вывода зависит от нескольких факторов - и он интенсивности смены параметров на входе блоков lcd, и в некоторой мере от быстродействия процессора - хотя во многом задержки связаны с частотой шины i2c (400кГц - можно разгонять, но особого смысла нет).
Аватара пользователя
Dryundel
Полковник
Сообщения: 2422
Зарегистрирован: 22 май 2017, 23:15
Откуда: Ярославль
Имя: Андрей
Поблагодарили: 29 раз

Разработки ecoins

Сообщение Dryundel »

ecoins писал(а): 01 авг 2019, 20:01 Все на глазок - т.е. от визуального восприятия...
Шаманство однако. :smile453: Но теперь понятно. :yes: Спасибо.
Аватара пользователя
Dryundel
Полковник
Сообщения: 2422
Зарегистрирован: 22 май 2017, 23:15
Откуда: Ярославль
Имя: Андрей
Поблагодарили: 29 раз

Разработки ecoins

Сообщение Dryundel »

[ref]ecoins[/ref], а возможно сделать набор блоков для шины 1-Wire по типу как для i2c ?
Столкнулся с потребностью замены датчиков ds18b20. Очень бы хотелось организовать аварийное сканирование и замену с возможностью прописывания адреса без перепрошивки контроллера. Стандартными средствами не получается.
Evgesha
Лейтенант
Сообщения: 537
Зарегистрирован: 29 окт 2015, 09:57
Откуда: Kazakhstan
Имя: Evgesha

Разработки ecoins

Сообщение Evgesha »

[ref]Dryundel[/ref], это не подойдет

viewtopic.php?f=74&t=4442
ecoins
Полковник
Сообщения: 4005
Зарегистрирован: 12 фев 2016, 11:40
Откуда: Шатура
Имя: Энвер
Благодарил (а): 137 раз
Поблагодарили: 153 раза

Разработки ecoins

Сообщение ecoins »

Dryundel писал(а): 03 авг 2019, 20:02 ecoins, а возможно сделать набор блоков для шины 1-Wire по типу как для i2c ?
Столкнулся с потребностью замены датчиков ds18b20. Очень бы хотелось организовать аварийное сканирование и замену с возможностью прописывания адреса без перепрошивки контроллера. Стандартными средствами не получается.
В своих проектах по совокупности причин мы избегаем использования нескольких DS1820 на шине, подключенных к пину контроллера. Обычно 1 пин - один DS1820. Прием посылки от DS1820 по прерываниям - это работу планируется сделать.
Аватара пользователя
Dryundel
Полковник
Сообщения: 2422
Зарегистрирован: 22 май 2017, 23:15
Откуда: Ярославль
Имя: Андрей
Поблагодарили: 29 раз

Разработки ecoins

Сообщение Dryundel »

ecoins писал(а): 04 авг 2019, 07:50 В своих проектах по совокупности причин мы избегаем использования нескольких DS1820 на шине, подключенных к пину контроллера. Обычно 1 пин - один DS1820. Прием посылки от DS1820 по прерываниям - это работу планируется сделать.
Т.е. шину 1-Wire вы избегаете?
ecoins
Полковник
Сообщения: 4005
Зарегистрирован: 12 фев 2016, 11:40
Откуда: Шатура
Имя: Энвер
Благодарил (а): 137 раз
Поблагодарили: 153 раза

Разработки ecoins

Сообщение ecoins »

Dryundel писал(а): 04 авг 2019, 10:49 Т.е. шину 1-Wire вы избегаете?
Одно время мы много с ней работали.
Наше мнение об иллюзорности этого решения:
1) Делать длинные сети можно. Однако проблемы с идентификацией узлов и устройств остаются. Достигается через отключение отдельных приборов (или бегать с феном и греть DS18B20)... Это неплохо для исследовательских стендов - когда разработчик и квалифицирован, сам создал этот стенд, сам его эксплуатирует.
2) На контроллерах AVR, подключение сети 1-Wire - это всегда антенны индустриальных помех. Можно использовать оптическую развязку, но практики такой найти не удалось. Вернее отдельный контроллер.
3) Это очень и очень вандала не защищенная система - от обрывов, до попадания высокого напряжения.

Использование отдельных DS18B20 по одному на пин удобно, поскольку не требует идентификации датчика.
-------------------------------
Наше направление - сеть беспроводных сенсоров и устройств. Широко использовали ZigBee. Сейчас пока в поисках и исследованиях.
Аватара пользователя
bsn
Лейтенант
Сообщения: 412
Зарегистрирован: 22 июл 2018, 07:24
Откуда: Новошахтинск
Имя: Сергей
Благодарил (а): 104 раза
Поблагодарили: 23 раза

Разработки ecoins

Сообщение bsn »

ecoins писал(а): 04 авг 2019, 11:25 DS18B20... Это неплохо для исследовательских стендов
Не только для стендов.
Это неплохо для систем Умного Дома. Когда, к примеру в помещении размещён простейший контроллер, и большинство его ног уже задействовано под иное оборудование. А ему ещё нужно собирать и температурные данные из нескольких точек, возможно и из соседних помещений. Далее он может передавать собранную инфу на более производительный контроллер верхнего уровня. При расстояниях в несколько десятков метров, 1-Wire, на трёх сплетённых проводах, прокинутых последовательно по всем точкам - работает великолепно. При опросе данных раз в минуту или ещё реже, сбоев не наблюдается. Проблема с первоначальной идентификацией - разовая. Настроил и забыл.
ecoins писал(а): 04 авг 2019, 11:25 подключение сети 1-Wire - это всегда антенны индустриальных помех
Как и все провода на входе. Некоторые не подключают внешний подтягивающий резистор, обходятся внутренним подтягивающим. Соответственно шунтирующее сопротивление сети, десятки килоом - помехам вольготно, но как сообщают, в домашних условиях и того достаточно, и всё работает. При подключении стандартного внешнего подтягивающего R=4,7k - проблем обычно не возникает. Я экспериментировал с внешним R=1k, всё прекрасно работает. А шунт в 1k хорошо гасит окружающие помехи.
ecoins писал(а): 04 авг 2019, 11:25 Это очень и очень вандала не защищенная система
Если вандал - который с ломом, то да. "Против лома - нет приёма" Точно также вандал разрушит и всё остальное. Но если решён вопрос с защитой от проникновения к вам вандала - то нет проблем, проложил три проводка - и получил вечную бесперебойную работу.
Соглашусь, что по ошибке, вандалом можно стать и самому. Однажды, по запарке, подал на ножку данных DS18B20 питающиее +5V. Пока разбирался почему не стреляет - он бедолага видимо пытался сказать о себе и видимо регулярно пытался коротить ножку данных на общие -5V. Когда понял в чём дело - решил что датчику уже хана. А он работает, хоть бы что. Если есть риск помех, то на всякий пожарный, прямо на ножках питания DS18B20, шунтирую цепь питания ёмкостью 0,01 мкф. Ну и после случая с ошибкой, стал ножку данных каждого DS18B20 подключать к общей шине данных только через токоограничивающий резистор 50-70 ом. Не знаю по фэншую это или нет, но мне так спокойней. На надёжности передачи данных это никак не сказалось.
ecoins писал(а): 04 авг 2019, 11:25 Наше направление - сеть беспроводных сенсоров и устройств. Широко использовали ZigBee
Поиграться ребятишкам с быстрым беспроводным подключением - видимо ZigBee самое то. Или для тех кому неохота проводки тянуть и дизайново прикрывать их кабель каналами - тоже удобно.
Но в датчиках с радиоудлиннителями придётся постоянно помнить о заряде батареек. По закону подлости, сядут в самый ответственный момент, особенно если на морозе. Лично видел как тянули для радиоудлинителей провода подпитки - но ведь тогда теряется весь смысл беспроводности.
Кроме того, уже писал, повторюсь: пройдёт мимо, пусть не вандал с ломом, а некий "шутник" с такой игрушкой: https://14bytes.ru/glushilka-wifi/ и ляжет вся ваша ZigBee хоть на стенде, хоть в Умном Доме, хоть на промышленном объекте. А проводную сеть дистанционно и бесконтактно положить - это ещё нужно сильно постараться.
Последний раз редактировалось bsn 04 авг 2019, 13:42, всего редактировалось 3 раза.
Делай как должно, и пусть всё будет как будет.
Закрыто

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

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 4 гостя