Устройство на Ardiuno для контроля пересечения барьера.

Ардуинщики всех стран - объединяйтесь! В этом форуме, конечно.
Zapolyarny
Нашел транзистор. Понюхал.
Сообщения: 176
Зарегистрирован: Чт май 07, 2026 00:30:38

Re: Устройство на Ardiuno для контроля пересечения барьера.

Сообщение Zapolyarny »

roman.com писал(а): Ср июн 10, 2026 15:40:46 Задача МК: управление, сбор и передача данных.
Обработкой данных занимаются компы/сервера/датацентры/ИИ.

Так делают все нормальные люди.
Все нормальные люди не упускают в этом списке различные виды хранения. Собрал данные, а связи нет, и? Обработал данные, и?

Да и вообще, городить ненужное - это присуще любителям (не в оскорбительном значении слова), потому что им так хочется. Типа, как в конкурсе самом сложном выдавливании зубной пасты на щётку. Это круто, прикольно, забавно, увлекательно, но вот только не надо называть это нормальным и стандартным.
Реклама
roman.com
Друг Кота
Сообщения: 9174
Зарегистрирован: Вт мар 13, 2012 12:16:13
Откуда: .ru

Re: Устройство на Ardiuno для контроля пересечения барьера.

Сообщение roman.com »

Быстрее ? ))
Сколько времени требуется МК типа AVR для записи одного байта в память EEPROM ?
Примерно 3 мс.
За это время по сети LAN можно передать целый массив байт.

Надежней ? ))
А почему тогда у меня периодически при включении МК выдаёт ошибку error_eeprom ?
Видимо по тому что количество циклов записи EEPROM ограничено и составляет всего 100.000.
Комп таких ошибок не выдаёт.
Видимо по тому что количество циклов записи HDD больше. Не знаю. Не проверял.

Связи нет ? ))
Ну тогда и МК работать не будет.
Потому что питание POE.

И т.д.
Реклама
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15585
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Устройство на Ardiuno для контроля пересечения барьера.

Сообщение BOB51 »

Для начала доводим до ума автономное устройство с предусмотренной возможностью добавления модуля пересылки информации (аппаратные выводы, запас по объёму ПЗУ). Затем, если необходимо, добавляем модуль обмена/пересылки данных.
Тот же обмен через СОМ прот. Далее уже по желанию куда и чего посылать/принимать.
Единственно это уже дополнительный блок будет, возможно и с собственной программой.
То же и для некоторых устройств обычным может быть - ведь не всегда для работы требуется текстовой дисплей и полная клавиатура - достаточно и однократного режима настройки, а во время работы только функциональной индикации и управления.
8)
roman.com
Друг Кота
Сообщения: 9174
Зарегистрирован: Вт мар 13, 2012 12:16:13
Откуда: .ru

Re: Устройство на Ardiuno для контроля пересечения барьера.

Сообщение roman.com »

Massaraksh7 писал(а): Ср июн 10, 2026 16:17:16
roman.com писал(а): Ср июн 10, 2026 09:37:31 Ещё раз прочитал алгоритм. Но так и не понял зачем там массив)) Все делается двумя меременными.
Для хранения последних трёх циклов измерения.
А последнии три цикла измерения мы проверяем выборочно ? ))
Или просто считаем что если последнии три цикла равны "1" то команда прошла ?

В таком случае зачем вообще массив если можно использовать одну переменную.
Типа придумали переменную "Time" и прибавляет через равные промежутки времени.
-если на входе высокий уровень Time = 1.
-задержка 300 мкс.
-если на входе высокий уровень Time = 2.
-задержка 300 мкс.
-если на входе высокий уровень Time = 3.
-если Time == 3 то команда прошла.
Включаем лампочку))

Обычный счётчик состояния.
Это проще чем массивы всякие.
И памяти надо меньше.
И быстрее работает.
И т.д.

COM-порт... ))
я уже и забыл как он выглядит. много лет им не пользовался.
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
Massaraksh7
Первый раз сказал Мяу!
Сообщения: 33
Зарегистрирован: Ср июн 03, 2026 18:51:39
Откуда: Воронеж

Re: Устройство на Ardiuno для контроля пересечения барьера.

Сообщение Massaraksh7 »

roman.com писал(а): Ср июн 10, 2026 18:09:23 В таком случае зачем вообще массив если можно использовать одну переменную.
Типа придумали переменную "Time" и прибавляет через равные промежутки времени.
-если на входе высокий уровень Time = 1.
-задержка 300 мкс.
-если на входе высокий уровень Time = 2.
-задержка 300 мкс.
-если на входе высокий уровень Time = 3.
-если Time == 3 то команда прошла.
Включаем лампочку))
Вот именно в таком виде не будет работать. )
Но дело даже не в этом. Программирование тем и хорошо, что есть разные пути для достижения цели. И каждый выбирает те, которые ему больше нравятся. И поэтому на вопросы: "А почему так не сделал?", я отвечаю: "Да потому что это мой код, и мне так более удобно и наглядно".
Реклама
Аватара пользователя
Massaraksh7
Первый раз сказал Мяу!
Сообщения: 33
Зарегистрирован: Ср июн 03, 2026 18:51:39
Откуда: Воронеж

Re: Устройство на Ardiuno для контроля пересечения барьера.

Сообщение Massaraksh7 »

Но я понимаю, что Вы имели в виду:

Код: Выделить всё

if (level==HIGH) Time++; else Time=0;
if (Time==3)....
Но мне так не нравится. Я оставил возможность сохранить значения для возможного анализа, если что-то будет срабатывать не так, как надо.
Реклама
Rapra
Мучитель микросхем
Сообщения: 459
Зарегистрирован: Пн фев 16, 2026 17:30:02

Re: Устройство на Ardiuno для контроля пересечения барьера.

Сообщение Rapra »

Блин, да какие "датацентры на LAN" то для столь простой задачи? Я бы еще понял, если надо набрать паттерны процессора движения для шагомера в фитнес-браслете. А тут то...
Уже -дцатый раз повторяю - направление пересечения (в том числе неполное) определяется последовательностью фронтов. Время между одинаковым фронтом на первом и втором датчиках определяет скорость движения объекта, а время между противоположными фронтами на одном датчике определяет линейный размер объекта при условии его равномерного перемещения. Чтобы набрать статистику, достаточно пару десятков раз пройтись мимо датчиков, махая руками и жопой. Полученные измерения выдать в UART обычной ANSI-строкой.
А если есть лог.анализатор - ваапще шикарно тогда, даже микроконтроллер не нужен, все паттерны с временами выдаст лог.анализатор в записи.
Последний раз редактировалось Rapra Ср июн 10, 2026 19:15:14, всего редактировалось 1 раз.
tonyk
Это не хвост, это антенна
Сообщения: 1323
Зарегистрирован: Вт ноя 19, 2019 06:10:18

Re: Устройство на Ardiuno для контроля пересечения барьера.

Сообщение tonyk »

roman.com писал(а):Сколько времени требуется МК типа AVR для записи одного байта в память EEPROM ?
У меня в ПЛК меньше STM32F4 не используется. Общение с внешней микросхемой идёт на скромных 20МГц. Быстрей не пробовал, нужды не было. Один цикл программы с обработкой всех интерфейсов укладывается в 2.5мс.
roman.com писал(а):За это время по сети LAN можно передать целый массив байт.
Да ну. Ethernet- это сеть со случайным доступом к среде передачи, поэтому говорить о точных временах нельзя. Один раз 3мс, другой раз 333мс. Будь EtherCAT- вопросов бы не было.
roman.com писал(а):А почему тогда у меня периодически при включении МК выдаёт ошибку error_eeprom ?
Видимо по тому что количество циклов записи EEPROM ограничено и составляет всего 100.000.
Наверно, вы не правильно работаете с флэш. Никто ведь не мешает использовать алгоритмы со скользящим окном записи, чтобы не долбить в одну и ту же станицу. Я в ПЛК меньше 8Мб не ставлю, обычно 32Мб или 64Мб. Очень удобно сохранить в эту память и проект, и схему шкафа, и мануалы. И логи писать в кольцевой буфер в 1-4Мб тоже не проблема. Ну а в задачах, где предполагается интенсивная запись, вместо флэш ставлю FRAM с ресурсом 10'000'000 циклов записи.
tonyk
Это не хвост, это антенна
Сообщения: 1323
Зарегистрирован: Вт ноя 19, 2019 06:10:18

Re: Устройство на Ardiuno для контроля пересечения барьера.

Сообщение tonyk »

Massaraksh7 писал(а):Я оставил возможность сохранить значения для возможного анализа, если что-то будет срабатывать не так, как надо.
Очень полезно, не пожалеете. Но я бы рекомендовал хотя бы через UART писать в терминал, который будет сохранять лог в файл. Очень полезно буферировать вывод со стороны МК, чтобы успевать отлавливать переходные процессы.
Rapra писал(а):Уже -дцатый раз повторяю
Может, угомонитесь уже, господин диванный эксперт? Соберите такое устройство, испытайте, тогда и пообщаемся по этому вопросу.
У меня в первый же день испытаний в квартире проявились сбои, прошлось разбираться в причинах и дорабатывать алгоритм. Потом больше месяца девайс стоял на входе в мастерскую на работе. Ходили разные люди, в разной одежде, заносили-выносили оборудование, материалы, сумки, мешки. Там уже работал без ошибок.
Rapra
Мучитель микросхем
Сообщения: 459
Зарегистрирован: Пн фев 16, 2026 17:30:02

Re: Устройство на Ardiuno для контроля пересечения барьера.

Сообщение Rapra »

Что за привычка вешать ярлыки, не зная человека? Может, просто подумаете над написанным с физической точки зрения? Что такое путь, что такое скорость, что такое время перемещения?
Я ж говорю - я делал датчики положения исполнительных механизмов, и прекрасно знаю, как это работает. А вы со своими "более 50 переходов" чето намутили оверинжениринга, не подумав над физической стороной вопроса.

И вообще, какой УАРТ, какой терминал? Логический анализатор с записью - и даже микроконтроллера не нужно! Че вы мне тут рассказываете каких-то оверинжениринговых сложностей?
roman.com
Друг Кота
Сообщения: 9174
Зарегистрирован: Вт мар 13, 2012 12:16:13
Откуда: .ru

Re: Устройство на Ardiuno для контроля пересечения барьера.

Сообщение roman.com »

Каждый день пишу в кольцевой буфер... с окнами всякими... и резервным копированием критических данных))
Ethernet это нормальная сеть с PING 1...3 мс на минимальной скорости.
Не путать с Wi-Fi у которого PING 3...333 мс.))

Но все это мелочи по сравнению с тем что задумал ТС )).

К слову...
Обычный счётчик состояния входа уже есть в самом МК на аппаратном уровне.
Так например в МК есть аппаратный таймер. К которому можно подключить внешний генератор и тайтер будет считать импульсы аппаратно.
Но самое интересное что у этого таймера есть фильтр. Который включается отдельно. Разработчики МК его назвали "фильтр шума".
Принцип работы простой. Импульсы идут не на прямую на счётчик, а через процессор МК. Сам процессор проверяет состояние входа и если в течении 4-х тактов процессора уровень на входе не меняется ("1" "1" "1" "1") то процессор подключает счётчик и счётчик начинает считать. И так проверяется каждый импульс на входе.
Другими словами... вы со своими вопросами немного опоздали)) Разработчики МК уже все придумали за долго до вас. И даже сделали этот алгоритм на аппаратном уровне задолго до вас. ))

Но все это мелочи по сравнению с тем что задумал ТС )).
:tea:
Аватара пользователя
Massaraksh7
Первый раз сказал Мяу!
Сообщения: 33
Зарегистрирован: Ср июн 03, 2026 18:51:39
Откуда: Воронеж

Re: Устройство на Ardiuno для контроля пересечения барьера.

Сообщение Massaraksh7 »

Смонтировал во временном варианте. Буду набирать статистику.
https://cloud.mail.ru/public/zjpZ/ywvbEfBYm
Zapolyarny
Нашел транзистор. Понюхал.
Сообщения: 176
Зарегистрирован: Чт май 07, 2026 00:30:38

Re: Устройство на Ardiuno для контроля пересечения барьера.

Сообщение Zapolyarny »

roman.com писал(а): Ср июн 10, 2026 20:12:36 Разработчики МК уже все придумали за долго до вас. И даже сделали этот алгоритм на аппаратном уровне задолго до вас.
Себя Вы, похоже, исключили из этого списка... :tea:
roman.com
Друг Кота
Сообщения: 9174
Зарегистрирован: Вт мар 13, 2012 12:16:13
Откуда: .ru

Re: Устройство на Ardiuno для контроля пересечения барьера.

Сообщение roman.com »

Ну... начало положено))

я тоже входу в этот список. т.к. мк появились до того как я начал их изучать.
roman.com
Друг Кота
Сообщения: 9174
Зарегистрирован: Вт мар 13, 2012 12:16:13
Откуда: .ru

Re: Устройство на Ardiuno для контроля пересечения барьера.

Сообщение roman.com »

Massaraksh7 писал(а): Ср июн 10, 2026 19:02:57 Я оставил возможность сохранить значения для возможного анализа, если что-то будет срабатывать не так, как надо.
ясно.
но тогда трёх опросов я думаю будет мало.
значит будем использовать все 2048 байт памяти МК.)) можно и так.

К слову...
Есть ещё один интересный "фильтр шума" в аппаратном UART того же МК. Но принцип чуть другой. Там проводят проверку каждого импульса 16 раз. А потом самое интересное - делают "мажоритарное голосование" и привовят импульсы UART к логическому уровню "1" или "0".
Похожее делали в радио управлении.
Это можно использовать и в нашем проекте. Например для отсеивания помех от рук и ног случайно попавших в луч передатчика))
Аватара пользователя
Massaraksh7
Первый раз сказал Мяу!
Сообщения: 33
Зарегистрирован: Ср июн 03, 2026 18:51:39
Откуда: Воронеж

Re: Устройство на Ardiuno для контроля пересечения барьера.

Сообщение Massaraksh7 »

И ещё один момент: расстояние между фотодатчиками, как я уже говорил, 25мм. Но это рядом с датчиками. В середине расхождение будет уже 12.5мм. А ближе к источнику ещё меньше. Решил проверить срабатывание в 1 см от источника, это примерно 0,4 мм расхождения. И - успешно, хотя ожидал худшего.
https://cloud.mail.ru/public/pGwK/KgmD9We93
Ответить

Вернуться в «Arduino»