Здравствуйте.
С некоторого времени я увлекся любительским автоспортом, — нет, не ночной стрит-рейсинг, а вполне легальные соревнования, проводимые в дневное время и согласованные с соответствующими структурами. Как многие догадываются, цель таких соревнований — проехать дистанцию быстрее соперника. Для чего надо измерить время прохождения дистанции.
Самый простой способ — раздать судьям секундомеры и научить их вовремя нажимать кнопку Старт/стоп. Очевидны недостатки такого способа — невыносимая низкая точность и подозрения участников на ангажированность судей. Другой момент — при проведении любительского ралли 3й категории старт и финиш часто разнесены между собой, и замер времени осуществляется по «синхронизированным» судейским часам. На практике — это китайские будильники по 30 р, которые убегают друг от друга на несколько секунд за 10 минут.
Способ посовременней — использование телеметрии. Самый распространненый вариант — это один или два створа, срабатывающие на пересечение ИК луча, и по этим пересечениям осуществляющие управление секундомером. Виденные мной варианты исполнений (любительских, не берем в расчет профессиональные системы), оставляли желать и надеяться на лучшее.
Пример 1. Заезды на четверть мили (402м), он же – Дрэг-рейсинг. На старте устанавливается ИК створ с 2-я или 3-я парами лучей. На финише также устанавливается створ с парой лучей, — по одному лучу на каждую дорожку. К стартовому створу подключен стартовый светофор. По команде контроллера светофор начинает отсчет стартовой последовательности, после чего участники начинают заезд. Время отсчитывается с момента зажигания зеленого сигнала, до момента пересечения финишного створа.
Логика и структура работы такой системы очевидна. Небольшой минус – это полкилометра проводов, соединяющих стартовый и финишный створ.
Пример 2. Кольцевые гонки на время, так называемый Time Attack. Заезды по кольцу, одновременно на дистанции 2 участника. Результат заезда – это время прохождения круга участником, равное интервалу между последовательными прохождениями створа.
Тоже все очевидно. Минусы, виденной мной реализации:
— необходимость каждого участника проходить только «свой» створ, который указан ему при старте, иначе система неправильно считает время прохождения круга;
— в связи с предыдущим пунктом – нахождение части конструкции посередине полосы, что чревато последствиями – нередко наблюдались наезды на центральную стойку с выводом из строя системы;
— неустойчивость системы к ложным срабатываниям, если через створ прошел посторонний предмет, как то – сбитый конус, часть отвалившегося бампера и т.п. Такое срабатывание приводило к прекращению заезда, и повторному старту. А участник, ехал уже на «последние деньги», со стучащим мотором и стремился победить. Обидно, да.
Пример 3. Ралли-спринт, старт и финиш разнесены на приличное расстояние – порядка сотни-двух сотен метров, участники стартуют с интервалом 2-3 минуты, на дистанции может находиться до 7-10 машин одновременно, в зависимости от протяженности. Время прохождения дистанции замеряется по действиям двух судей – судья на старте дает стартовую отмашку в определенное время по часам, судья на финише – записывает время финиша по своим часам, по разнице показаний время идет в зачет.
Минусы такого способа хронометража – несинхронность часов на старте и на финише (как я у же писал – часто используются китайские будильники из ларька в переходе), и влияние человеческого фактора (судья на старте может выпустить машину раньше или позже, как и судья на финише может зафиксировать момент прохождения недостаточно точно).
На очередном мероприятии, наслушавшись жалоб участников и организаторов, мной было предложено собрать систему под «свои» требования, для использования на любительских автоспортивных соревнованиях.
Были сформированы требования к этой системе:
— Дешево. По словам организаторов, цена аренды полупрофессиональной системы доходит до 15 тыс. р. за день соревнований – явно не для энтузиастов такой вариант;
— Возможность адаптации к различным видам мероприятий – дрэг, кольцо, ралли-спринт и т.п.;
— Легкость в развертывании и транспортировке – минимум частей, проводов и прочих принадлежностей;
— Максимальная автоматизация процесса соревнований – подсчет времени, расстановка результатов и прочее.
В соответствии с названными требованиями было принято решение реализовать модульную систему, с беспроводной передачей информации, с возможностью обработки информации на ПК и выводом результатов на принтер или экран.
Модульность системы заключается в создании независимых ИК-створов, которые можно размещать на дистанции в практически произвольной конфигурации, на старт, на финиш, на промежуточный финиш и т.п.
Каждый створ способен фиксировать время пересечения луча и передавать момент фиксации на центральный пульт (пульт реализован на ноутбуке). Момент фиксации представляет собой полную метку времени, включая год, месяц, число, время с точностью до 1 мс. Таким образом, имея в распоряжении информацию о моментах пересечения створа, мы можем алгоритмически реализовать практически любую схему заезда.
Единственное требование в таком варианте исполнения – это точная синхронизация створов между собой. Такая синхронизация осуществляется с помощью GPS приемника – они достаточно дешевы на текущий момент и просты в обращении. Точность синхронизации без применения специальных мер – до 1мкс.
На фото – опытная плата для створа, способного обрабатывать до 6 ИК-лучей одновременно, плюс управление стартовым светофором. Зачем 6 лучей? Объясню чуть позже.
В качестве детекторов ИК-излучения использованы приемники TSOP4038, которые позволяют принимать «непрерывный» модулированный луч, в отличие от приемников других серий, которые при подаче непрерывного луча просто «затыкаются» в результате срабатывания встроенной АРУ и перестают реагировать на какие либо действия с лучом. Для данного приемника необходима частота модуляции ИК-луча в 38 кГц, но опыт показал, что значение это достаточно условно, и частота модуляции от 32 до 45 кГц вполне подходит под задачи.
Излучающее устройство представляет собой светодиод TSAL6100, запитанный от генератора модулирующей частоты. И помещенный примерно в фокусе собирающей линзы.
Про излучатель остановлюсь подробнее. Как я писал ранее, плата на фото способна обрабатывать до 6 лучей одновременно. Это используется для выставления автомобиля на линию старта в заездах со светофором. Так называемые Pre-Stage, Stage и Start. Чтобы точно выставить автомобиль на линию старта, за 10-15 см от стартового луча расположен луч Stage. И при пересечении этого луча загорается индикатор Stage на светофоре, информирующий участника о нахождении на линии старта и готовности к заезду.
На первый взгляд ничего сложного в этом нет. Но как показала практика – нельзя расположить два светодиода просто на расстоянии 10-15 см и не засветить при этом «соседний» датчик. То есть задача – независимое распознавание двух лучей, идущих параллельно на расстоянии 10-15 см. Пути решения: «механический» — сфокусировать луч так, чтобы он засвечивал только свой датчик, «алгоритмический» — придумать что то еще.
Фокусировка луча с помощью линзы дает отличный результат, размер пятна не превышает 3-4 см на расстоянии 8 м, но есть одно «но» — попасть таким лучом в приемник – та еще задача, особенно когда луч не виден, а на улице примерно -25°С. И к тому же, такое прицеливание требует применения механизмов, реализующих вращение излучателя в двух плоскостях, что усложняет собственно конструкцию.
Второй варинат – сфокусировать луч в одной плоскости, для чего понадобилась бы цилиндрическая линза, но таковой линзы я не нашел и пришлось этот вариант отбросить.
Третий вариант – разделить лучи иным способом. А именно – по времени. Так как у нас имеется на плате уже источник сигналов точного времени (GPS), то включая каждый луч только в «свой» момент времени, мы можем независимо оценивать наличие или отсутствие сигнала от каждого излучателя. Для этого в схему управления излучателями так же был установлен модуль GPS приемника, который обеспечивал синхронизацию сигналов между собой.
Такое решение позволило «расширить» луч, и наведение излучателя на приемник упростилось на порядок.
В качестве фокусирующей системы была использована половинка самого дешевого оптического прицела (цена прицела в районе 150-200р), при этом вторая половинка используется соотвественно для второго излучателя.
Еще одна неприятность – это засветка приемника солнцем, при выносе приемника на яркое солнце, на его выходе наблюдались случайные импульсы срабатывания, что приводило к ложным отсчетам. Решение – трубка от водопровода и пищевая фольга :)
Вот как это примерно выглядит. Посередине — блок с приемниками и беспроводным модулем, по краям – излучатели.
Передача данных
В качестве беспроводной сети передачи данных решено было использовать нечто похожее на Zig-Bee, а именно – модули Xbee-Pro (собственно это ZigBee и есть, только с некоторыми вариациями). Такие модули позволяют развернуть сеть с минимальными затратами на программирование и конфигурацию – фактически они делают прозрачным канал связи от последовательного интерфейса передатчика до приемника, и обратно соответственно. Плюсом вариант исполнения Pro имеет увеличенную мощность передатчика, и, соответственно, дальность действия. На испытаниях удалось добиться устойчивой работы на 500м, с использованием стандартных антенн типа «штырь» производства D-Link для Wi-Fi роутеров.
Для передачи данных в компьютер был собран адаптер Xbee-Usb на модуле Xbee-Pro и микросхеме FTDI232.
Как это работает
В приемном блоке реализован непрерывный таймер, синхронизированный с помощью GPS – по сигналу приемника 1PPS перезапускается аппаратный таймер микроконтроллера, который обеспечивает отсчет долей секунды.
Сигналы от ИК-приемников заведены на внешние прерывания микроконтроллера. При прерывании луча происходит захват текущего значения времени и помещение этой «метки» в очередь на передачу на пульт.
Передача на пульт осуществляется 1 раз в секунду всех отсчетов накопленных на текущий момент. Пульт подтверждает прием отсчета и подтвержденный отсчет удаляется из очереди на передачу.
Каждый отсчет имеет идентификатор сработавшего сигнала и идентификатор створа, на котором сработал сигнал.
На этом работа аппаратной части выполнена. Ее задача – засечь момент пересечения луча и передать эту метку на пульт.
Далее в зависимости от вида соревнований и конфигурации заезда в дело вступает программное обеспечение.
В момент приема отсчета отображается строка с принятой меткой времени, в зависимости от источника эта метка может помещаться в раздел «Старт» или «Финиш», после чего подсчитывается время для меток, имеющих одинаковый номер — время от старта до финиша, время круга и т.п.
При возникновении ложного срабатывания (пролетевшая живность через створ, либо куски инвентаря ), попавшая метка просто удаляется из таблицы и никак не влияет на результаты измерения.
Для обеспечения автоматизации расчетов результатов, каждой метке времени назначается номер участника, прошедшего через створ. Такой вариант позволяет осуществлять хронометраж независимо от количества машин на треке одновременно и их взаимного расположения.
Единственный вариант когда система не сработает – это частичное перекрытие корпусов при прохождении через один створ.
После присвоения метке номера происходит пересчет результатов и обновление итоговой таблицы, которая может быть выведена на отдельный большой монитор для зрителей.
Например так. Эта таблица обновляется сразу после прохождения участником финишного створа, реализуя, таким образом, «онлайн-трансляцию» результатов для зрителей :)
Так же в программном обеспечении реализована возможность ввести данные каждого участника: стартовый номер, имя, модель автомобиля, класс, в который заявлен спортсмен. На основе данных этой таблицы формируется итоговая ведомость соревнований в автоматическом режиме.
Разные модификации (в процессе эволюции) данной системы использовались в течение года на нескольких мероприятиях, как то — ледовые гонки с параллельным стартом, грунтовый спринт с интервальным стартом, кольцевые гонки «ТаймАттак». Система показала себя с хорошей стороны — компактность конструкции (комплект на один створ помещается в пакет из супермаркета) и простота в эксплуатации.
На прошедшем 27.07.2013 2м этапе «ТаймАттак» в Омске, был опробован вариант с выводом результатов на большой монитор (вернее телевизор :) ) в режиме реального времени. Зрители и участники соревнований остались довольны ).
Компоненты, из которых была собрана система:
— микрононтроллеры: ATMega8 (излучатели), ATMega128 (приемный блок)
— GPS модули: Quectel L10
— беспроводные модули: Xbee Pro 2
— приемники ИК: TSOP4038
— корпуса из ABS пластика
— подставки из металлолома
Итоги:
— точность измерения времени прохождения дистанции – не хуже 1мс (в программе округляется до 0,01с для удобства восприятия)
— время развертывания – 5-10 минут
— время работы от комплекта аккумуляторов – пока не определено, на сутки хватает точно, аккумуляторы – б/у 7А/ч от офисного ИБП.
— бюджет — примерно 5-6 тыс. р. если покупать детали самостоятельно, я использовал залежи хлама на рабочем месте
Чего хотелось еще: данная конфигурация требует участия оператора для ввода номеров участников. Нужно как то автоматизировать идентификацию участника, прошедшего через створ.
Автор: subver
добрый день!
нам на картинг трассу нужно попробовать наладить учет времени прохождения картингов, если одновременно на трассе несколько машин -есть умельцы способные это сделать?
Здравствуйте – а где схема прошивка сам проект. Это , что журнал? О чем речь- о достижениях- не понятно. Хотите обсудить или поделиться проектом? Если обсуждать – то что?