Разработки ecoins

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

Аватара пользователя
Phazz
Полковник
Сообщения: 2552
Зарегистрирован: 17.10.2016{, 15:38}
Репутация: 367
Откуда: Сургут
Имя: Анатолий

Разработки ecoins

#1361

Сообщение Phazz » 20.10.2021{, 22:38}

ecoins, Как работает блок вывод параметров контролера?

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

Разработки ecoins

#1362

Сообщение ecoins » 20.10.2021{, 22:52}

Phazz писал(а):
20.10.2021{, 22:38}
ecoins, Как работает блок вывод параметров контролера?
1.после того как Вы выбираете в Arduino IDE нужный контроллер(из списка поддерживаемых ecoins) компиляция выполняется с учетом этого контроллера.
Блок вывода параметров плат выводит параметры этого контроллера по настраиваемому списку:
- время компиляции
-тип контроллера
- перечень всех доступных пинков в том числе с разбивкой по типам(дискретный ввод, дискретный вывод ит.д.)
- перечень интерфейсных пинков
И тд
Использовать просто, но в реализации есть нюансы, которые учитываются для универсального вывода для разных контроллеров.
—-
Возможно я не вполне парня вопрос....

Аватара пользователя
Phazz
Полковник
Сообщения: 2552
Зарегистрирован: 17.10.2016{, 15:38}
Репутация: 367
Откуда: Сургут
Имя: Анатолий

Разработки ecoins

#1363

Сообщение Phazz » 21.10.2021{, 16:44}

ecoins, меня интересует примение в проекте. Добавляю блок есп уходит в ребут. Может я его как-то неправильно готовлю )

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

Разработки ecoins

#1364

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

Phazz писал(а):
21.10.2021{, 16:44}
ecoins, меня интересует примение в проекте. Добавляю блок есп уходит в ребут. Может я его как-то неправильно готовлю )
Проверил и на ESP8266, ESP32 на тестах:
FLProg_Test08_Sensor_Lcd_v03_211021_mcp23017_ESP8266.zip
(1.93 МБ) 23 скачивания
FLProg_Test08_Sensor_Lcd_v03_211021_mcp23017_ESP32.zip
(1.93 МБ) 20 скачиваний
---------------------------------------------------------------
Работает и на ESP8266
Board_ESP8266.PNG
---------------------------------------------------------------
Работает и на ESP32
Board_ESP32.PNG
---------------------------------------------------------------
Пришлите Ваш проект который перезапускается - поищу проблему.
=============================================
На LCD индицируется быстродействие [loop() в сек]:
ESP8266 - 52500;
ESP32 - 272500.
Т.е. на ESP32 в 5 раз больше!!!

Аватара пользователя
Phazz
Полковник
Сообщения: 2552
Зарегистрирован: 17.10.2016{, 15:38}
Репутация: 367
Откуда: Сургут
Имя: Анатолий

Разработки ecoins

#1365

Сообщение Phazz » 21.10.2021{, 20:37}

Причину ребута понял, был в проекте блок uart. Но никакой информации в консоль не получаю.
Так можно соединять?
2021-10-21 22-36-27 FLProg-7.3.8.png
2021-10-21 22-36-27 FLProg-7.3.8.png (1.24 КБ) 503 просмотра

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

Разработки ecoins

#1366

Сообщение ecoins » 21.10.2021{, 21:30}

Phazz писал(а):
21.10.2021{, 20:37}
Причину ребута понял, был в проекте блок uart. Но никакой информации в консоль не получаю.
Так можно соединять?
Можно.
Но не обязательно, блоки вывода на консоль работают следующим образом - ожидается готовность консоли (это важно для таких контроллеров Arduino DUE, STM32 и др.).
Блок cns.init рекомендуется использовать, когда много блоков вывода. В этом случае их лучше разместить на отдельной плате и вызывать по условию "Заголовок"=1.
Такой прием несколько ускоряет проект....
--------------------
Ниже пример с одним блоком вывода - будет выводить параметры подключенного контроллера.
ESP32_board_small.rar
(115.09 КБ) 27 скачиваний
Board_ESP32_small_1.png
Board_ESP32_1.PNG

Аватара пользователя
Phazz
Полковник
Сообщения: 2552
Зарегистрирован: 17.10.2016{, 15:38}
Репутация: 367
Откуда: Сургут
Имя: Анатолий

Разработки ecoins

#1367

Сообщение Phazz » 21.10.2021{, 22:25}

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

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

Разработки ecoins

#1368

Сообщение ecoins » 21.10.2021{, 22:43}

Phazz писал(а):
21.10.2021{, 22:25}
Спасибо все заработало, оказывается отключать платы с блоками уарт не достаточно. Нужно их совсем удалять из проекта.
Остаюсь в замешательстве из-за непонимания - как применение UART (например на ESP32) может приводить к ребуту? :no:

starshoy81
Лейтенант
Сообщения: 530
Зарегистрирован: 05.04.2016{, 23:30}
Репутация: 29
Откуда: Санкт-Петербург
Имя: Илья

Разработки ecoins

#1369

Сообщение starshoy81 » 22.10.2021{, 15:35}

ecoins, а как задаются номера аналоговых пинов для чтения, например для атмеги328? Номера выводов микросхемы?
атм328.PNG

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

Разработки ecoins

#1370

Сообщение ecoins » 22.10.2021{, 18:44}

Для Arduino Nano - A0-A7 -> пины №14-21;
Для Arduino Mega2560 -A0-A15 ->пины №54-69;
Номер пина задается на входе блока аналогово ввода.

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

Разработки ecoins

#1371

Сообщение Dryundel » 26.10.2021{, 19:10}

Приветствую, ecoins.
Посмотрел свежие версии библиотек. Мое почтение Изображение, порядка стало гораздо больше.
Однако описание блоков оставляет желать лучшего. :smile14: Но видимо надежда есть. :yes:

Ладно, сейчас не об этом.
Вопрос по конкретному блоку HC-SR04. Есть у него выход "Ok". На сколько я понимаю, своим мягким мозгом, на нем должен бы генерироваться импульс по завершении пинга. Хотел использовать его для фильтра, но обломался. Импульсов нет. Может чо не так понял?
Sonar.rar
(252.28 КБ) 21 скачивание
А в целом блок понравился. работает весьма стабильно.

С размером проектов тоже засада. Проект из двух блоков 13 МБ. Не камильфо это. Надо раздергивать мультиблоки, я так думаю.

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

Разработки ecoins

#1372

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

Dryundel писал(а):
26.10.2021{, 19:10}
Посмотрел свежие версии библиотек. Мое почтение , порядка стало гораздо больше.
Спасибо.
Dryundel писал(а):
26.10.2021{, 19:10}
Ладно, сейчас не об этом.
Сейчас готовится новая версия -другая разбивка, несколько иная подача материала, новые функциональные блоки, новые устройства.
Dryundel писал(а):
26.10.2021{, 19:10}
Вопрос по конкретному блоку HC-SR04. Есть у него выход "Ok". На сколько я понимаю, своим мягким мозгом, на нем должен бы генерироваться импульс по завершении пинга. Хотел использовать его для фильтра, но обломался. Импульсов нет. Может чо не так понял?
Блок работает по прерываниям, если пин Echo подключен к пину с прерываниями.
Для Arduino Nano это 2,3 пины, для ESP32 это почти все пины, для STM32 все пины.
Благодаря этому блок не тормозит.
Если пин без прерывания, то он ожидает возврат ответного времени по времени и возможная задержка зависит от измеряемого расстояния. Поэтому в блоке рекомендуется при работе без прерываний ограничивать измеряемое расстояние 150см.
----
На выходе блока всегда последнее измеренное расстояние. Если оно верно, выход ок=1.
Если измерение ошибочно (в самом контроллере SR04 задана "правильная" временная последовательность),
то через несколько подряд ошибочных выход ок=0.
Dryundel писал(а):
26.10.2021{, 19:10}
Хотел использовать его для фильтра, но обломался. Импульсов нет. Может чо не так понял?
Идея любопытная. В структуре есть сигнал fresh - флаг нового результата, можно сделать дополнительный выход (событие) для использования
внешними функциями.
Много потратили времени для создания встроенных в блок фильтров - задач оказалась не простой.
Появляются случайные выбросы из-за отражения от случайных предметов и могут добавляться звуки от посторонних предметов (например шум двигателей и пр.)
Но решение такой задачи было бы весьма полезной.
Dryundel писал(а):
26.10.2021{, 19:10}
А в целом блок понравился. работает весьма стабильно.
Есть у меня к нему претензии на малых (<2 cм) расстояниях из-за аппаратной реализации сенсора - в нем в одном "прожекторе" излучатель, в другом приемник.
Вроде есть исполнение в одном "прожекторе" - мне не попадались.
Dryundel писал(а):
26.10.2021{, 19:10}
С размером проектов тоже засада. Проект из двух блоков 13 МБ. Не камильфо это. Надо раздергивать мультиблоки, я так думаю.
Вы об этом уже писали - согласен.
Не дождавшись новой версии редактора, вместе с общей переделкой библиотек стали "раздергивать" мультиблоки - эта внешне красивая идея на мой взгляд оказалась "иллюзорно" с точки зрения удобства и очень "вредной" с точки зрения размеров проектов.
----------
Успехов.

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

Разработки ecoins

#1373

Сообщение Dryundel » 26.10.2021{, 22:03}

ecoins писал(а):
26.10.2021{, 20:20}
Если измерение ошибочно (в самом контроллере SR04 задана "правильная" временная последовательность),
то через несколько подряд ошибочных выход ок=0.
"Я молчу, не смея волю дать словам…
Милый мой, хороший, догадайся сам!" :)
Ну реально не хватает описания.
ecoins писал(а):
26.10.2021{, 20:20}
Идея любопытная. В структуре есть сигнал fresh - флаг нового результата, можно сделать дополнительный выход (событие) для использования внешними функциями.
Думаю это будет весьма полезно и не только в этом блоке, а и во всех которые выдают значения периодически.
ecoins писал(а):
26.10.2021{, 20:20}
Много потратили времени для создания встроенных в блок фильтров - задач оказалась не простой.
Появляются случайные выбросы из-за отражения от случайных предметов и могут добавляться звуки от посторонних предметов (например шум двигателей и пр.)
Возьмите на вооружение алгоритм медианного фильтра из блока который в проекте. Это фильтр для быстрых процессов. Медиана из 3 значений. С одиночными выбросами отлично справляется. Я над ним 2 дня думал, прежде чем упихал в 5 тернарников.
Если не считать запись значения в стек, сам алгоритм выполняется за 1,5 - 2,5 мкс на стандартной NANO, что для фильтра ну очень быстро.

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

Разработки ecoins

#1374

Сообщение ecoins » 26.10.2021{, 22:39}

Dryundel писал(а):
26.10.2021{, 22:03}
"Я молчу, не смея волю дать словам…
Милый мой, хороший, догадайся сам!"
Ну реально не хватает описания.
На модуле SR04 установлен собственный 8-битный контроллер с жестко прошитой программой - она особо нигде не описана. Мы исследовали работу этого контроллера и модуля в целом - там есть совокупность нюансов.
В основном они отражены в комментариях в библиотеке C++.
Не думаю, что это надо раскрывать в описании к блоку.
Если кому интересны эти специфические знания в достаточно узкой области, в индивидуальном порядке мы готовы поделиться.
Dryundel писал(а):
26.10.2021{, 22:03}
Думаю это будет весьма полезно и не только в этом блоке, а и во всех которые выдают значения периодически.
Возможно, задумались. Может быть будем предусматривать в сенсорах настраиваемый выход fresh.
Dryundel писал(а):
26.10.2021{, 22:03}
Возьмите на вооружение алгоритм медианного фильтра из блока который в проекте. Это фильтр для быстрых процессов. Медиана из 3 значений. С одиночными выбросами отлично справляется. Я над ним 2 дня думал, прежде чем упихал в 5 тернарников.
Если не считать запись значения в стек, сам алгоритм выполняется за 1,5 - 2,5 мкс на стандартной NANO, что для фильтра ну очень быстро.
Фильтрами сейчас заниматься не планируем.
Что-такое 5 тернарников?
По поводу времени алгоритма 1.5-2.5 мкс - вызывает сомнения... Может единицы измерения не те.
Если все-же так как Вы написали, то интересно посмотреть код...

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

Разработки ecoins

#1375

Сообщение Dryundel » 26.10.2021{, 23:05}

ecoins писал(а):
26.10.2021{, 22:39}
Не думаю, что это надо раскрывать в описании к блоку.
Если кому интересны эти специфические знания в достаточно узкой области...
Не про специфические знания идет речь, а про элементарное описание блока, функционала, назначения входов/выходов, специфике настройки, предупреждениях и т.п.
Вот как по вашему пользователь должен понять назначение выхода "Ok" ?
2021-10-26_224548.jpg
ecoins писал(а):
26.10.2021{, 22:39}
Что-такое 5 тернарников?
тернарный оператор
ecoins писал(а):
26.10.2021{, 22:39}
По поводу времени алгоритма 1.5-2.5 мкс - вызывает сомнения... Может единицы измерения не те.
Нет. Ошибки нет. Именно 1.5-2.5 мкс.
ecoins писал(а):
26.10.2021{, 22:39}
Если все-же так как Вы написали, то интересно посмотреть код...
Так посмотрите. :)

Отправлено спустя 10 минут 44 секунды:
Заодно и протестируйте, выведите значения на плоттер и помашите перед "прожекторами" чем нибудь.

Отправлено спустя 4 минуты 46 секунд:
Не хватает только выхода fresh. Эрзац с генератором не очень мне нравится.

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

Разработки ecoins

#1376

Сообщение ecoins » 26.10.2021{, 23:28}

Dryundel писал(а):
26.10.2021{, 23:20}
Вот как по вашему пользователь должен понять назначение выхода "Ok" ?
Во всех наших разнообразных блоках выход ok означает- "Устройство работает".

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

Разработки ecoins

#1377

Сообщение Dryundel » 26.10.2021{, 23:33}

ecoins писал(а):
26.10.2021{, 23:28}
Во всех наших разнообразных блоках выход ok означает- "Устройство работает".
Хорошо, что Вы об этом знаете. :)

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

Разработки ecoins

#1378

Сообщение Dryundel » 27.10.2021{, 15:58}

Dryundel писал(а):
26.10.2021{, 19:10}
А в целом блок понравился. работает весьма стабильно.
ecoins, похоже я поторопился с выводами. Тестировал на пинах без прерывания (NANO) и был уверен что уж с прерываниями будет еще лучше. Подключил на D2 D3 и началась свистопляска. Показания прыгают как жеребцы не объезженные.

Отправлено спустя 8 минут 50 секунд:
D2 D3
D2 D3.jpg
.
А вот это D7 D8 - все четенько.
D7 D8.jpg
И в чем может быть проблема? Менял только пины.
(Красный - до фильтра, синий - после)

Отправлено спустя 9 минут 14 секунд:
И еще есть вопрос:
2021-10-27_161251.jpg
Отправлено спустя 1 минуту 29 секунд:
Ну про "через один пин" понятно, хотя и не совсем по русски. А вот три вариации не понятны.

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

Разработки ecoins

#1379

Сообщение ecoins » 27.10.2021{, 17:16}

Dryundel писал(а):
27.10.2021{, 16:18}
ecoins, похоже я поторопился с выводами. Тестировал на пинах без прерывания (NANO) и был уверен что уж с прерываниями будет еще лучше. Подключил на D2 D3 и началась свистопляска. Показания прыгают как жеребцы не объезженные.
У меня на столе стенд на MEGA2560 - много устройств (пять дисплеев, сенсоры и пр), SR04 подключен Echo - пин 2, Trig - пин 3.
Только что установил препятствие перед сонаром - 10см, показания на дисплее стабильные -10см.
Выкладываю результаты с логического анализатора:
SR04_Развертка одного измерения 10см_625mcs.png
SR04_Периодические измерения 100mc.png
Верхняя линия - пин Trig, нижняя пин Echo.
Период измерения задан в блоке 100мс.
Можно установить и 50мс - меньше не стоит из-за возможных помех от паразитного ультразвукового отражения с близко находящимися препятствиями.

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

Разработки ecoins

#1380

Сообщение ecoins » 27.10.2021{, 17:27}

Dryundel писал(а):
27.10.2021{, 16:18}
И в чем может быть проблема? Менял только пины.
(Красный - до фильтра, синий - после)
Возможно все правильно работает. Просто очень быстро.
Если водить рукой перед сонаром, то на дисплее очень быстро меняются показания (и они правильные), "глаза не поспевают"...
Специфика ультразвукового сонара такова, что использовать его надо аккуратно - он очень чувствителен.
Есть проект медленный, то и показания не скачут "как жеребцы" - а у Вас и проект видимо быстрый, и LCD на который Вы наверное выводите "шустрый", и сонар с препятствием не зафиксирован - вот и скачут показания....

Закрыто

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