Хронометраж для горных лыж на Ардуино. RFID, сервер и вообще :)

Четыре сезона откатали на самодельной «омеге» на Ардуино. Поскольку хронометраж держит на трассе до трех участников, на интенсивности тренировки засечка не сказывается. Сначала привыкали к тому, чтобы постоянный секундомер не напрягал, потом уже стало странным кататься просто так, не «на время». Потом само собой стали гоняться, вместо тренировок стали «гонки-тренировки». Пошло развитие в сторону соревнований, анализа результатов. Проект вышел за рамки простого хронометража. В общих чертах хочу поделиться реализацией идей по серверной части, результаты на которую попадают через RFID метки (как в домофонах, скипассах и т.п.).

Двухконтурная система хронометража для соревнований

Александр Мистрюков Alexander Mistryukov
Александр Мистрюков

Развитие проекта связано с деятельностью Жорика (Александр Мистрюков). Несколько лет назад Жорик открыл детскую спортивную школу на Лисьей горе, причем не в ущерб тому, что продолжает ходить на наши тренировки. Пару лет назад встал вопрос об организации второго контура хронометража для проведения детских соревнований на Лисьей горе. Первый контур был сделан при помощи тренировочного комплекта от Microgate, радиоканал которого работает на частоте 433 МГц. Этот канал «замусорен», поэтому радиосигнал иногда не долетает, и участнику приходится перестартовывать. Второй контур — это самодельная омега на Ардуино и радиоканале 2.4 ГГц, как это было описано здесь в серии заметок, но с небольшими дополнениями. Нужно было сделать параллельный ввод от стартовой калитки Microgate и от фотофиниша Microgate, запараллелить кнопку DNF на блок Табло и показывать количество участников на трассе на блоке Табло. То есть, чтобы была возможность управлять процессом как со Старта, так и с судейской стороны в финишной зоне.

Такая Омега-ЛиСки уже отработала два сезона, причем не только на Лисьей горе, но и на сборах в горах. Интересно отметить, что Ардуино все-таки «вещь в себе», процесс отладки занял время. Как и при отладке Омега-Наука в первый месяц, часа через полтора после начала тренировки что-то где-то начинало глючить.

На соревнованиях система хронометража с двумя контурами показала себя очень хорошо, перестартовок из-за сбоя электроники не было в принципе. По сравнению с другими детскими соревнованиями в Москве и области это — чудо 🙂

Серверная часть, интернет

Проводить соревнования можно по-разному. Жорик владеет технологиями программирования на сервере через интернет, поэтому обслуживание соревнований целиком перенесено в интернет.

Это регистрация, прием стартовых взносов и, главное, онлайн публикация результатов проезда. На соревнованиях участники, а так же их родители смотрят в смартфоны и видят все, что нужно. Обращаются к судьям только если видят ошибку. В судейской бригаде (как обычно) есть специалист, который руками заводит результат в ноутбук. Но в данном случае ноутбук это окно на портал LiSki и результат при помощи ноутбука заводится сразу на сервер. По сравнению с другими детскими соревнованиями в Москве и области это — чудо 🙂

RFID считыватель

Жорик спроектировал свой вариант омеги на Ардуино тоже как окно на сервер. В блоке должен быть GPS модуль для считывания из космоса точного времени, GPRS модуль с сим-картой, и RFID-считыватель (как в домофонах). На сервер передаются данные: номер (imea) GPRS модуля, событие (старт или финиш), точное время события и, главное номер карточки (RFID метки) участника. На основании этих данных на сервере можно вычислить результат прохождения участника. Где именно проходят старты (хоть на Камчатке), не важно. Наличие радиовидимости между стартом и финишем тоже не нужно. Одновременно может обслуживаться много стартов, серверу всё равно. Такой вариант омеги был реализован на макете. Я оттуда использовал GPRS модуль SIM900.

Идея с RFID картами в нашей тусе принадлежит Жорику (хотя конечно в мире это не новость, в Германии есть даже вариант такой омеги для продажи). Дело в том, что взрослых лыжников на тренировке можно озадачить формулой: «запоминаем лучшее время из первых двух проездов по второй трассе». В конце тренировки, когда собираем трассу это время записывается на бумажку, потом вводится в компьютер. С детьми — участниками школы ЛиСки такой вариант, в общем-то не проходит. Дети с удовольствием смотрят на свои результаты на табло, но на этом всё.

Абсолютные классификационные времена

Результаты тренировок нужны для расчета Абсолютных Классификационных Времен (АКВ). При помощи этого инструмента можно следить за качественным изменением техники катания. Я рассчитываю АКВ для взрослых на наших тренировках. У Жорика на сервере АКВ тоже рассчитываются, как только появляется протокол гонки-тренировки или соревнований.

Для того, чтобы все надежно работало на тренировке детей нужно, чтобы у участника на рукаве была RFID метка, которую он подносит к дополнительному блоку перед тем как стартовать.

Модуль RFID-GPRS для Омега-ЛиСки

Модуль Старт в Омега-ЛиСки выдает в эфир для модуля Табло факт старта (для иллюстрации на Табло количества участников на трассе) и после финиша результат участника. Этого достаточно, чтобы в отдельном дополнительном модуле с RFID считывателем организовать радиоперехват, привязать результат к номеру метки и отослать данные «номер метки, результат» на сервер. Особенно хорошо то, что для связки RFID-GPRS-сервер не нужно делать новую омегу с GPS, и даже переделывать существующую надежно работающую Омега-Лиски. Такой модуль и сделал, уже для следующего (2024) сезона.

(1) индикатор показывающий текстовую техническую информацию о работе GPRS-блока, (2) выключатель питания и желтый светодиод индикатор «вкл», (3) вход microUSB для зарядки и индикатор процесса заряда, (4) индикатор состояния заряда, (5) кнопка «DSQ», (6) зеленый светодиод «нужно стартовать», (7) сюда подносить RFID-метку, (8) технический монитор RFID-блока.

В модуль пришлось поставить две Ардуино. Одна Ардуино Нано обслуживает радиоканал (по SPI), считыватель RFID меток (по программному UART) и показывает текущие результаты на маленьком техническом мониторе OLED диагональ 0.91 дюйм (управляется по i2c). Полученные результаты эта Ардуино отправляет по i2c (т.е. эта Ардуино – master) на другую Ардуино (slave).

Другая Ардуино Нано обслуживает GPRS модуль SIM900, который по протоколу HTTP посылает результат на сервер в виде GET-запроса с параметрами к PHP-файлу, находящемуся на сервере. С подтверждением принятия запроса файлом.

Схема соединений

(1) – индикатор показывающий текстовую техническую информацию о работе GPRS-модуля, (2) – кнопка «DSQ», (3) модуль считывание RFID меток RDM-6300, (4)- Ардуино Нано «GPRS» для обслуживания GPRS-модуля (через эту Ардуино осуществляется запитывание электроники напряжением 5В, на вход Vin подается 7 вольт, через конденсатор от помех 680 uf low ESR, а выход 5 вольт этой Ардуино «раздается» остальным модулям), (5)- технический дисплей для работы с модулями RFID и NRF24L01+, (6)- Ардуино Нано «RFID» для обслуживания модулей RDM-6300 и NRF24L01+, (7)- светодиод «нужно стартовать», (8)- пьезопищалка «нужно стартовать», (9)- радиомодуль NRF24L01+, (10)- GPRS модуль SIM900, (11) DC-DC повышающий модуль (от напряжения на аккумуляторе до 7 вольт) для питания вычислительной части, (12)- Конденсатор 470 мкф, (13)- DC-DC повышающий модуль (от напряжения на аккумуляторе до 7 вольт) для питания SIM900 (собственные конденсаторы модуля удалены), (14)- плата зарядки аккумулятора (около этой платы светодиод, который горит, когда весь RFID модуль включен, (15)- выключатель питания, (16)- аккумуляторы 18650 высокотоковые, (17)- конденсатор 10 000 мкф.

Думаю, что развитие серверной части довольно перспективно. Помимо того, что это просто удобно, должны появиться принципиально новые возможности.


Vadim Nikitin DigInfo.ruВадим Никитин

 

 

 

на начало страницы

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *