Емельянов Эдуард Владимирович (eddy_em) wrote,
Емельянов Эдуард Владимирович
eddy_em

Categories:

"Секундомер" для спортивных соревнований на STM32F103

В качестве первого приближения к железяке, позволяющей точно (не хуже нескольких микросекунд) определять интервалы пересечения старта/финиша в разных спортивных соревнованиях (в оригинале разрабатывается для даунхилла), я решил сделать простой кроссплатформенный эмулятор клавиатуры.

Пока что железка в стадии разработки. Но уже умеет следующее:

  • "Подгонять" системный таймер SysTick под сигналы PPS от GPS-модуля (а также брать значение текущего времени оттуда же).

  • Регистрировать переход уровня сигнала на двух входах АЦП1 через определенное значение (к входу 0 подключается ИК-дальномер SHARP, фиксируется переход через высокий уровень сигнала — наличие кого-то ближе ~1м; к входу 1 подключается делитель напряжения на резисторе 1кОм и "ибеевском" фоторезисторе, фиксируется переход через низкий уровень — пропадание лазерного освещения).

  • Регистрировать значительное изменение расстояния до объекта перед ультразвуковым дальномером (к сожалению, толку от этого немного, т.к. из-за эха в "боевых" условиях этот дальномер черт-те что кажет).

  • Регистрировать время нажатия концевика (скажем, ворота или просто тестовая кнопка для определения того, "завелся" ли GPS).


Пока что работает железяка в тестовом режиме и выдает сообщения вроде
ADC0hi: value = 2494 (now: 2491), time = 25:61:61.446 need synchronisation
ADC1lo: value = 2699 (now: 2705), time = 25:61:61.559 need synchronisation

Первое сообщение — время пересечения кем-то поля зрения ИК-дальномера, второе — время пересечения лазерного луча. Время имеет такой дурацкий вид потому, что у меня в кабинете очень плохой обзор неба и поймать достаточное количество спутников, чтобы настроить точно таймер мелкоконтроллера — та еще задачка...

В планах:

  • сделать буферизацию (все-таки, штук 200-300 зафиксированных интервалов времени в памяти STM32 хранить вполне реально);

  • добавить вывод времени в виде секунд с начала суток (для упрощения расчета интервалов "финиш минус старт");

  • добавить светодиодную и звуковую индикацию;

  • (на далекое будущее) добавить возможность непосредственной отсылки интервалов на другой мелкоконтроллер при помощи GSM-модуля (+автоматический подсчет времени "финиш минус старт"), понятно, что для этого надо будет еще и матричную клавиатуру подключить для ввода номера участника;

  • (на очень далекое будущее) перенести все это на какой-нибудь одноплатник (сервер NTP с синхронизацией по GPS PPS) и сделать веб-морду (тогда можно будет красиво рисовать табличку результатов на большом экране + более надежно логгировать данные).

Tags: stm32, железяки
Subscribe

  • Чем бы таким заменить STM32F072C8T6?

    Полез сейчас на али цены посмотреть, а там… В среднем уже по 600-700 рублей за штучку просят! Вообще охамели. И это - гарантированно БУшные ведь!.. А…

  • Понаблюдал, блин!

    Опять у нас что-то с сетью поломали. Хотел было протестировать, как наша подвесная часть оптоволоконного спектрографа работает, а из дома связь с…

  • Релюшки на CAN-шине

    Закончил с прошивкой для новой железяки. Как "наследница" USB-CAN переходника, она умеет все то же самое + несколько специфичных вещей (опрос…

promo eddy_em august 17, 2019 12:33 3
Buy for 10 tokens
Юра намедни напечатал корпус для хронометра. Для первого блина получилось неплохо: И еще немного фотографий:
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic
  • 0 comments