Емельянов Эдуард Владимирович (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

  • А что, в С так нельзя?

    Пытаюсь передать в функцию цвет как массив. Функция такая: void Pattern_draw3(Img3 *img, Pattern *p, int xul, int yul, uint8_t colr[3]); И…

  • DHT22/DHT11 на STM32F103

    Добил шайтана! Сначала ожидал, что нужно будет полноценным захватом ШИМ пользоваться, но т.к. в протоколе неинформативная часть имеет постоянную…

  • Свеженькие железячки

    Получил сегодня с али ожидаемые железки, в т.ч. для восстановления моей файлопомойки. Во-первых, это блок питания на 16.8В, который я брал для…

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

    Your reply will be screened

  • 0 comments