Коммерческие системы хронометража для радиоуправляемых (RC) автомобилей, такие как декодеры MYLAPS RC3/RC4, используют запатентованные протоколы и закрытое оборудование. Это ограничивает возможности модификации и существенно повышает стоимость организации любительских соревнований.
Проект OpenStint решает эту проблему: это полностью открытая система декодирования near-field транспондеров стандартов AMB RC3 / RC4 с использованием доступных программно — определяемых радиоприёмников (SDR) — RTL-SDR v4 или HackRF One. Система предназначена для регистрации момента проезда модели через старт/финишную линию по сигналу транспондера, установленного на борту RC-автомобиля.
Принцип работы
В отличие от приёма радиосигналов дистанционного управления, хронометраж в RC-автоспорте основан на технологии near-field (ближнего поля). На трассе размещается петля-антенна, подключённая к SDR-приёмнику. На борту автомобиля установлен миниатюрный транспондер, который при проезде над петлёй излучает ответный сигнал. Приёмник фиксирует момент срабатывания и формирует временную метку.
Рабочая частота системы — около 5 МГц. Транспондер излучает BPSK-сигнал собственного открытого протокола OpenStint либо совместимый с коммерческими AMB RC3/RC4.
Аппаратная часть
| Параметр | RTL-SDR v4 | HackRF One |
| Частота дискретизации | до 2,56 MSPS | до 20 MSPS |
| Полоса пропускания | ~2,4 МГц | до 20 МГц |
| Разрядность АЦП | 8 бит | 8 бит |
| Интерфейс | USB 2.0 | USB 2.0 |
Оба приёмника обеспечивают достаточную полосу для уверенного приёма BPSK-сигнала транспондера вблизи 5 МГц.
Программная часть
Декодер написан на Python с использованием библиотек librtlsdr и libhackrf. Обработка включает следующие этапы:
— Получение IQ-отсчётов с SDR-приёмника через USB.
— Полосовая фильтрация сигнала вокруг несущей частоты транспондера.
— Демодуляция BPSK — выделение фазы несущей.
— Корреляция с известной преамбулой — детектирование пакета.
— Декодирование ID транспондера и временной метки проезда.
— Публикация событий по UDP/ZeroMQ для последующей обработки.
Момент пересечения линии определяется по пику корреляции с преамбулой. Разрешение по времени ограничено частотой дискретизации: для RTL-SDR это порядка 0,4 мкс (при Fs = 2,4 МГц).
Пример расчёта мощности сигнала
import numpy as np
def compute_power_dbm(i_samples, q_samples, gain_correction=0.0):
"""
Вычисление мощности комплексного сигнала в дБм.
I, Q — отсчёты синфазной и квадратурной составляющих.
"""
power_linear = np.mean(i_samples**2 + q_samples**2)
power_db = 10 * np.log10(power_linear + 1e-12)
return power_db + gain_correction
Практическое применение
OpenStint востребован в следующих сценариях:
— Любительские соревнования по RC-автоспорту без необходимости покупки дорогих декодеров MYLAPS.
— Тренировочные сессии — водитель получает данные о времени круга и скорости на прямых.
— Образовательные лаборатории по цифровой обработке сигналов — проект наглядно демонстрирует демодуляцию BPSK и корреляционный приём.
Дополнительно существует Python-скрипт для пост-обработки: расчёт кругов, средней скорости, экспорт результатов в CSV/JSON. Поддерживается синхронизация нескольких приёмников по PPS-сигналу GPS для организации многоканального хронометража на больших трассах.
Перспективы
Открытый протокол OpenStint позволяет энтузиастам разрабатывать собственные транспондеры (есть референсный дизайн на ATTiny816). Благодаря низкой стоимости компонентов (HackRF — около $90, RTL-SDR v4 — около $30) система доступна для любого RC-клуба или образовательного учреждения.
Проект
