Про потоковый режим немного уточню.
У alien и модуля на r2000 в потоковом режим, если в поле нет меток будет просто тишина. Я не могу узнать, есть ли ещё связь с ридером, может он уже выключился? Оба ридера имеют функцию hearbeat, но если alien умеет посылать его раз в секунду, то китайский модуль почему-то не чаще раза в 30 секунд. В том числе по этой причине удобнее работать в режиме запрос-ответ. Я всегда знаю, что получил ответ на запрос, значит связь с ридером ещё есть.
Спасибо :)
По цене, не увидел разницы, оба ридера стояли 1600+-100$ и сильно гуляла цена/сроки доставки.
У меня есть немного меток "на металл", в моих тестах разницы в их работе не заметил. При этом они стоят в несколько раз дороже и из сложнее крепить. Но тут надо провести дополнительные тесты именно на металле.
Антенны я сначала купил у интегратора вместе с ридером и они стояли раза в два дороже. Потом, по рекомендации специалиста купил антенны указанные в статье, по тестам они работают точно также.
Думаю, что абсолютная скорость в разумных пределах не так важна, важно сколько времени метка находится в поле. Если метка будет двигаться в сторону антенны, чтение будет и на довольно высоких скоростях.
Пробовал разные сессии, также предполагал, что другие сессии кроме 0, могут меньше нагружать ридер и давать лучше, чтение. Но смущает, что я не могу измерить это "лучше". В сессии 0, для меня показатель качества чтения именно количество в секунду. И я могу увидеть, что метка читается меньше 10 раз в секунду и это означает проблемы. Этот вопрос я пока для себя не закрыл, нужно ещё провести тесты.
Насчёт функций непрерывного чтения, они есть и в alien и в китайском RFID модуле на чипе imping r2000, но практика показала, что в таком режиме лучше не работать. Проблема в том, что мне нужно постоянное чтение на протяжение 1.5-2 часов. Если в режиме потокового чтения случается сбой, то перезапуск занимает несколько секунд. При этом буферизованный режим как раз удобнее, даже если связь с ридером временно оборвалась, после нескольких секунд она восстановится и я смогу из буфера считать метки без потерь.
Спасибо за комментарий, интересные идеи. Если не секрет, поделитесь как вы делали чтение на высокой скорости? И что применение с такой скоростью?
В первой версии я брал, наоборот последнее срабатывание. Но из-за этого стало очень неудобно мониторить работу засечки. Получается, что обновление рейтинга случалось с задержкой в 2-3 секунды после проезда гонщика. После одной гонки в таком режиме, я перевернул логику, обновление рейтинга стало происходить моментально и удобно для отслеживания. В целом, я просто принял как факт, что точность засечки основанной на RFID не лучше одной секунды. Есть очень много причин, почему два человека внутри одной секунды могут поменяться местами при чтении меток.
Интересно узнать какое у них оборудование.
Если rfid, то метки с батарейкой стоят от 15$ штука.
Пересечение луча будет работать только для одного гонщика и оно позволит лишь зафиксировать факт, что метка не считалась. Ведь луч не выдаст номер гонщика :)
Думаю, что для велосипедов можно сделать систему компьютерного зрения. Например камера смотрит вниз на гонщиков, у них на шлемах номера. Гонка чистая, проходит в светлое время, так что должно хорошо читаться.
В моей системе я считаю первое считывание метки, это может произойти в 50-80см от створа ворот. Как я уже отмечал выше, на практике в мотогонках крайне редко бывают плотные финишны, так что нет проблемы различения двух гонщиков рядом
А как выглядят метки?
Если это коробочки, где вероятно стоит батарейка, то у вас система с транспондерами. Петля это пассивная антенна, которая ловит сигнал транспондера и выдает чтение, когда транспондер между частей петли. Так работает mylaps.
Для марафонов и других забегов есть антенны в виде плоских ковриков, они модульные можно любую ширину сделать, но их не закапывают и метки используют пассивные в виде наклеек, манишек или на ногу/шнурки браслетики всякие
Ещё можно рассмотреть battery assisted метки, это обычные пассивные метки, но с батарейкой. За счёт этого не тратится время на заряд конденсатора и запуск процессора метки, по идее они должны читаться более уверенно. Но я пока не покупал образцы.
Ещё один вариант это active rfid, там метки сами постоянно передают сигнал, как транспондеры, но цена значительно выше и протокол другой, нужен другой ридер
Видимо имеются в виду дорожные велосипеды? Думаю там правда могут быть проблемы. Можно поискать на прокат профессиональную систему mylaps, она очень точная
Для улучшения точности есть много идей, нужно время и силы. Например можно с помощью компьютерного зрения считать количество проезжающих участников и сравнивать сколько меток считалось. Если есть разница — отмечать это место и давать возможность судье посмотреть видео этого момента. Технически всё это несложно сделать, нужно только в эту сторону покопать.
Да, среднее время круга я тоже использую и есть план сделать сигнализацию о пропущенных кругах на основе этих данных. Но я уже сталкивался с ситуацией, когда человек упал и лежал ровно время одного круга :)
Чтобы удобно читать метки во время регистрации, я купил маленький настольный rfid ридер с usb. В феврале буду в первый раз пробовать с ним регистрацию, по идее должно быть гораздо удобнее, чем с большой антенной
Это зависит от многих факторов. Лучше всего после выдачи метки проверить как она читается. Обычно, если с меткой всё хорошо, она будет читаться 50-70 раз в секунду в любой ориентации. Если метка битая или плохо установлена, чтения будут реже и будут сильно зависеть от ориентации метки относительно антенны.
Вода сильно влияет на чтение, в сильный туман я не проверял лично, но слышал, что чтение становится гораздо хуже. Тоже самое когда очень много грязи. В таких случаях приходится подключать судей людей с карандашом и бумажкой, потому что возможны массовые пропуски чтения.
Нет, никакие метки не могут работать на поверхности металла, карбонового волокна и других проводящих материалов. Чтобы метка начала работать, нужно отделить ее от металла на 3-5мм. Есть готовые метки в корпусах, которые обеспечивают это расстояние. Либо можно просто наклеить кусок пенки, а потом метку.
Защита от лишних прохождений заложена во входном фильтре, система агрегирует все метки внутри интервала минимального круга. Например, я знаю, что лучшее время лидера на трассе одна минута, тогда я ставлю минимальный круг на 40 секунд и знаю, что никто не повторит чтение, даже если остановится под рамкой. Также судья, который всегда стоит у рамки будет прогонять стоящего участника и может записать его номер, чтобы потом исправить ошибку.
Факт недостающего круга фиксируется либо визуально судьей (он на смартфоне в реальном времени видит считанные метки и может вручную вбить пропущенный номер), либо по жалобе участника и тогда разбираем видео.
Rfid метки с завода чаще всего имеют уникальный номер epc id. Но я также покупал и чистые метки, все забитые нулями. В любом случае свои метки я кодирую последовательными номерами и пишу этот же номер на метке. Можно заказать печать меток, тогда перед продажей их закодируют нужными номерами и напечатают на каждой любой текст, но эта услуга как и оборудование довольно дорого стоит, потому пока я покупаю чистые метки и кодирую сам.
Например motosponder продает метки с уникальным кодом, который напечатан на метке по 1$, я покупаю чистые метки по 0.22$
Дальше во время выдачи метки участнику я просто сканирую её и уникальный номер попадает в поле ввода на форме регистрации.
Проводил. На моих простых тестах на коленке я не заметил разницы. Общий принцип: чем больше размер метки, тем она лучше будет читаться. Я пробовал метки разных производителей и конструкций, но все они рекламировались как дальнобойные и имели размеры примерно 8х1.5см. измеримой разницы в качестве чтения я не заметил.
Для личного пользования есть готовые, бесплатные программы для смартфонов. Они работают великолепно.
Я не хочу выдавать много смартфонов, буквально 3-5 штук людям, которых я хорошо знаю лично, а не всем подряд. Эти люди будут передавать трек в реальном времени, его можно отображать на сайте для зрелищности.
С этим есть несколько проблем:
1. Сложность в установке и дороговизна локального GPS маяка, который должен давать точные координаты.
2. Одного маяка не хватит, ведь GPS работает в прямой видимости, а трасса эндуро идёт по лесу и бывает от 2-3 до нескольких десятков километров.
3. Стоимость каждого устройства. RFID метки стоят 11-60 рублей за штуку, я их выдаю участникам и просто прошу не выкидывать, т.к. они пригодятся на следующем этапе.
4. Дорогие метки нужно не только выдать, но и собрать после гонки. За метки нужно взять залог, а потом его вернуть. И повторить это для 100-200 участников. При этом, в сложных гонках, бывает так, что половина участников сошли с заезда и хотят расстроенные и уставшие просто уехать домой, а им нужно ждать, чтобы вернуть метки… А те кто остался хотят узнать результат, но его не будет, пока я не скачаю трек со всех меток…
5. Момент старта не нужно засекать, старт даётся общий по команде судьи. Для защиты от фальстарта в мотокроссе есть стартовые машины. В длинных эндуро заездах фальстарт на 0.1 секунды обычно мало влияет на результат. А больший отрыв судья увидит глазами и назначит рестарт.
Но идея с GPS не тупиковая. Есть программы для смартфонов, которые умеют записывать трек и по нему считать круги, это очень удобно для тренировки, когда гоняешься сам с собой и анализируешь как едешь трассу. В своём проекте, я хочу создать подобную программу, только попроще, которая будет записывать трек и передавать его на центральный сервер. Тогда, я могу выдать дешёвые телефоны с программой не всем, а нескольким известным успешным гонщикам и показывать их трек в реальном времени на сайте для интереса зрителей.
Ссылка на мой гитхаб профиль есть в статье, пока открытый репозиторий с кодом системы только один https://github.com/maxbl4/RfidDotNet
Это .net standard 2.0 библиотека для работы с двумя типами rfid ридеров, которые я использую. Полная реализация протоколов, внешняя зависимость только на SerialPortStream для работы с последовательным портом под линуксом.
Кто читает эти статьи? :))
Конечно ведётся видеозапись финишного створа и все споры могут быть разрешены.
По расположению меток, не всё так просто. Я уже упоминал, что грязь и вода очень сильно ослабляют чтение, также на чтение радикально влияет близость металлических объектов. Поэтому расположить метку на мотоцикле так, чтобы она надёжно читалась и крепилась одинаково на всех мотоциклах пока не представляется возможным. А объяснять каждому из 150 участников, где именно на его мотоцикле лучше разместить метку займет слишком много времени
Вопросы вполне логичные, я их сам себе задавал в начале разработки :)
Во первых, крайне редко случается так что лидеры едут ноздря в ноздрю. Всегда есть одна оптимальная траектория, по которой едет тот кто впереди. Чтобы обогнать, нужно выйти на альтернативную траекторию. Ворота засечки довольно узкие и через неё просто нет двух траекторий.
Также, на случай любых споров ведётся видеозапись, плюс к этому на финишном створе стоит судья, который глазами видит кто в каком порядке приехал. Всё это важно для тройки лидеров. Если где-то в конце заезда поменяются местами 50й и 51й участники, это не так уж важно.
На практике достаточно 50см для уверенного различения гонщиков.
По расположению метки нужно учитывать, что гонки проходят по грунтовой трассе и дождь не является причиной для отмены заезда :) поэтому бывает и такое
Нижняя сторона козырька шлема обычно самая чистая и сохраняется больше шансов на чтение.
Да, эти компоненты только под windows.
Есть ещё project avalon — кроссплатформенный аналог wpf, но я не знаю в каком он состоянии и он походит для новой разработки, готовых программ на нем наверно нет
А может попробовать с dotnet core? Во первых, он гораздо более современный, чем 4.5 и если заработает, позволит запускать полезные современные программы. Во вторых, dotnet core кроссплатформенный и изначально должен быть слабее завязан на windows, в третьих он не требует установки, просто распаковать архив и запускать бинарник, так что отладка должна быть гораздо легче
Про потоковый режим немного уточню.
У alien и модуля на r2000 в потоковом режим, если в поле нет меток будет просто тишина. Я не могу узнать, есть ли ещё связь с ридером, может он уже выключился? Оба ридера имеют функцию hearbeat, но если alien умеет посылать его раз в секунду, то китайский модуль почему-то не чаще раза в 30 секунд. В том числе по этой причине удобнее работать в режиме запрос-ответ. Я всегда знаю, что получил ответ на запрос, значит связь с ридером ещё есть.
Спасибо :)
По цене, не увидел разницы, оба ридера стояли 1600+-100$ и сильно гуляла цена/сроки доставки.
У меня есть немного меток "на металл", в моих тестах разницы в их работе не заметил. При этом они стоят в несколько раз дороже и из сложнее крепить. Но тут надо провести дополнительные тесты именно на металле.
Антенны я сначала купил у интегратора вместе с ридером и они стояли раза в два дороже. Потом, по рекомендации специалиста купил антенны указанные в статье, по тестам они работают точно также.
Думаю, что абсолютная скорость в разумных пределах не так важна, важно сколько времени метка находится в поле. Если метка будет двигаться в сторону антенны, чтение будет и на довольно высоких скоростях.
Пробовал разные сессии, также предполагал, что другие сессии кроме 0, могут меньше нагружать ридер и давать лучше, чтение. Но смущает, что я не могу измерить это "лучше". В сессии 0, для меня показатель качества чтения именно количество в секунду. И я могу увидеть, что метка читается меньше 10 раз в секунду и это означает проблемы. Этот вопрос я пока для себя не закрыл, нужно ещё провести тесты.
Насчёт функций непрерывного чтения, они есть и в alien и в китайском RFID модуле на чипе imping r2000, но практика показала, что в таком режиме лучше не работать. Проблема в том, что мне нужно постоянное чтение на протяжение 1.5-2 часов. Если в режиме потокового чтения случается сбой, то перезапуск занимает несколько секунд. При этом буферизованный режим как раз удобнее, даже если связь с ридером временно оборвалась, после нескольких секунд она восстановится и я смогу из буфера считать метки без потерь.
Спасибо за комментарий, интересные идеи. Если не секрет, поделитесь как вы делали чтение на высокой скорости? И что применение с такой скоростью?
Интересно узнать какое у них оборудование.
Если rfid, то метки с батарейкой стоят от 15$ штука.
Пересечение луча будет работать только для одного гонщика и оно позволит лишь зафиксировать факт, что метка не считалась. Ведь луч не выдаст номер гонщика :)
Думаю, что для велосипедов можно сделать систему компьютерного зрения. Например камера смотрит вниз на гонщиков, у них на шлемах номера. Гонка чистая, проходит в светлое время, так что должно хорошо читаться.
В моей системе я считаю первое считывание метки, это может произойти в 50-80см от створа ворот. Как я уже отмечал выше, на практике в мотогонках крайне редко бывают плотные финишны, так что нет проблемы различения двух гонщиков рядом
А как выглядят метки?
Если это коробочки, где вероятно стоит батарейка, то у вас система с транспондерами. Петля это пассивная антенна, которая ловит сигнал транспондера и выдает чтение, когда транспондер между частей петли. Так работает mylaps.
Для марафонов и других забегов есть антенны в виде плоских ковриков, они модульные можно любую ширину сделать, но их не закапывают и метки используют пассивные в виде наклеек, манишек или на ногу/шнурки браслетики всякие
Ещё можно рассмотреть battery assisted метки, это обычные пассивные метки, но с батарейкой. За счёт этого не тратится время на заряд конденсатора и запуск процессора метки, по идее они должны читаться более уверенно. Но я пока не покупал образцы.
Ещё один вариант это active rfid, там метки сами постоянно передают сигнал, как транспондеры, но цена значительно выше и протокол другой, нужен другой ридер
Видимо имеются в виду дорожные велосипеды? Думаю там правда могут быть проблемы. Можно поискать на прокат профессиональную систему mylaps, она очень точная
Для улучшения точности есть много идей, нужно время и силы. Например можно с помощью компьютерного зрения считать количество проезжающих участников и сравнивать сколько меток считалось. Если есть разница — отмечать это место и давать возможность судье посмотреть видео этого момента. Технически всё это несложно сделать, нужно только в эту сторону покопать.
Да, среднее время круга я тоже использую и есть план сделать сигнализацию о пропущенных кругах на основе этих данных. Но я уже сталкивался с ситуацией, когда человек упал и лежал ровно время одного круга :)
Чтобы удобно читать метки во время регистрации, я купил маленький настольный rfid ридер с usb. В феврале буду в первый раз пробовать с ним регистрацию, по идее должно быть гораздо удобнее, чем с большой антенной
Вода сильно влияет на чтение, в сильный туман я не проверял лично, но слышал, что чтение становится гораздо хуже. Тоже самое когда очень много грязи. В таких случаях приходится подключать судей людей с карандашом и бумажкой, потому что возможны массовые пропуски чтения.
Факт недостающего круга фиксируется либо визуально судьей (он на смартфоне в реальном времени видит считанные метки и может вручную вбить пропущенный номер), либо по жалобе участника и тогда разбираем видео.
Например motosponder продает метки с уникальным кодом, который напечатан на метке по 1$, я покупаю чистые метки по 0.22$
Дальше во время выдачи метки участнику я просто сканирую её и уникальный номер попадает в поле ввода на форме регистрации.
Вы задаёте очень конкретные вопросы, есть опыт?
Для личного пользования есть готовые, бесплатные программы для смартфонов. Они работают великолепно.
Я не хочу выдавать много смартфонов, буквально 3-5 штук людям, которых я хорошо знаю лично, а не всем подряд. Эти люди будут передавать трек в реальном времени, его можно отображать на сайте для зрелищности.
1. Сложность в установке и дороговизна локального GPS маяка, который должен давать точные координаты.
2. Одного маяка не хватит, ведь GPS работает в прямой видимости, а трасса эндуро идёт по лесу и бывает от 2-3 до нескольких десятков километров.
3. Стоимость каждого устройства. RFID метки стоят 11-60 рублей за штуку, я их выдаю участникам и просто прошу не выкидывать, т.к. они пригодятся на следующем этапе.
4. Дорогие метки нужно не только выдать, но и собрать после гонки. За метки нужно взять залог, а потом его вернуть. И повторить это для 100-200 участников. При этом, в сложных гонках, бывает так, что половина участников сошли с заезда и хотят расстроенные и уставшие просто уехать домой, а им нужно ждать, чтобы вернуть метки… А те кто остался хотят узнать результат, но его не будет, пока я не скачаю трек со всех меток…
5. Момент старта не нужно засекать, старт даётся общий по команде судьи. Для защиты от фальстарта в мотокроссе есть стартовые машины. В длинных эндуро заездах фальстарт на 0.1 секунды обычно мало влияет на результат. А больший отрыв судья увидит глазами и назначит рестарт.
Но идея с GPS не тупиковая. Есть программы для смартфонов, которые умеют записывать трек и по нему считать круги, это очень удобно для тренировки, когда гоняешься сам с собой и анализируешь как едешь трассу. В своём проекте, я хочу создать подобную программу, только попроще, которая будет записывать трек и передавать его на центральный сервер. Тогда, я могу выдать дешёвые телефоны с программой не всем, а нескольким известным успешным гонщикам и показывать их трек в реальном времени на сайте для интереса зрителей.
Ссылка на мой гитхаб профиль есть в статье, пока открытый репозиторий с кодом системы только один https://github.com/maxbl4/RfidDotNet
Это .net standard 2.0 библиотека для работы с двумя типами rfid ридеров, которые я использую. Полная реализация протоколов, внешняя зависимость только на SerialPortStream для работы с последовательным портом под линуксом.
Кто читает эти статьи? :))
Конечно ведётся видеозапись финишного створа и все споры могут быть разрешены.
По расположению меток, не всё так просто. Я уже упоминал, что грязь и вода очень сильно ослабляют чтение, также на чтение радикально влияет близость металлических объектов. Поэтому расположить метку на мотоцикле так, чтобы она надёжно читалась и крепилась одинаково на всех мотоциклах пока не представляется возможным. А объяснять каждому из 150 участников, где именно на его мотоцикле лучше разместить метку займет слишком много времени
Вопросы вполне логичные, я их сам себе задавал в начале разработки :)
Во первых, крайне редко случается так что лидеры едут ноздря в ноздрю. Всегда есть одна оптимальная траектория, по которой едет тот кто впереди. Чтобы обогнать, нужно выйти на альтернативную траекторию. Ворота засечки довольно узкие и через неё просто нет двух траекторий.
Также, на случай любых споров ведётся видеозапись, плюс к этому на финишном створе стоит судья, который глазами видит кто в каком порядке приехал. Всё это важно для тройки лидеров. Если где-то в конце заезда поменяются местами 50й и 51й участники, это не так уж важно.
На практике достаточно 50см для уверенного различения гонщиков.
По расположению метки нужно учитывать, что гонки проходят по грунтовой трассе и дождь не является причиной для отмены заезда :) поэтому бывает и такое
Нижняя сторона козырька шлема обычно самая чистая и сохраняется больше шансов на чтение.
Да, эти компоненты только под windows.
Есть ещё project avalon — кроссплатформенный аналог wpf, но я не знаю в каком он состоянии и он походит для новой разработки, готовых программ на нем наверно нет
Core Alpha 3.0 умеет winforms и wpf
А может попробовать с dotnet core? Во первых, он гораздо более современный, чем 4.5 и если заработает, позволит запускать полезные современные программы. Во вторых, dotnet core кроссплатформенный и изначально должен быть слабее завязан на windows, в третьих он не требует установки, просто распаковать архив и запускать бинарник, так что отладка должна быть гораздо легче