Головное устройство горнолыжной системы

 

Заказчик

Общество с ограниченной ответственностью "Марафон-Электро"

 

Проект 

Разработка встраиваемого ПО для головного устройства горнолыжной системы.

 

Цели и задачи

 Горнолыжный спорт – спуск на специальных лыжах по извилистым горным трассам с естественным или незначительно подкорректированным рельефом с точно фиксированным временем спуска. От спортсменов во всех дисциплинах требуется быстро и точно пройти специально подготовленную снежную дистанцию, проехав через все расставленные по дистанции ворота, размеченные флажками и древками.

  

Решение 

Как один из возможных вариантов, систему, обслуживающую соревнования по горнолыжному спорту, можно представить в следующем виде: 

 

Стартовое устройство устанавливается на вершине горы, в месте непосредственного старта участников, и выполняет следующие функции: 

  • синхронизация внутренних часов с финишным устройством по запросу от головного устройства;
  • фиксация стартового события, т.е. обнаружение факта старта участника с запоминанием момента времени данного события;
  • передача собранной информации по запросу от головного устройства;

Финишное устройство устанавливается у подножия горы, в месте непосредственного финиша участников, и выполняет следующие функции: 

  • синхронизация внутренних часов со стартовым устройством по запросу от головного устройства;
  • фиксация финишного события, т.е. обнаружение факта финиша участника с запоминанием момента времени данного события;
  • передача собранной информации по запросу от головного устройства;

Табло устанавливается где-либо на открытой местности и отображает лучший зафиксированный и результаты, показываемые участниками, которые находятся на трассе в данный момент. 

Стартовое и финишное устройства, а также табло, представляют собой ведомые ("slave") Modbus/RTU-устройства, полностью настраиваемые и опрашиваемые головным устройством, выступающим в роли ведущего ("master"). Физически обмен данными между устройствами осуществляется через RS-485 с применением радиомодемов на некоторых участках. Помимо обмена данными через Modbus/RTU-RS485 головное устройство одновременно осуществляет передачу результатов соревнований на судейский компьютер ("верхний уровень") при помощи виртуального последовательного порта, реализованного поверх USB. Также при  фиксации финишного события или схода участника подключенный к головному устройству термопринтер Citizen CMP20 печатает очередную строку, содержащую номер и результат участника. Помимо перечисленных выше задач головное устройство также ведёт непрерывной опрос подключенной к нему матричной клавиатуры, вывод на графический OLED-экран WEG010032 текущего состояния соревнований. При фиксации стартового или финишного события головное устройство запрашивает у оператора ввод номера стартовавшего/финишировавшего участника, выполняя при этом все необходимые проверки корректности ввода данных. Результаты соревнований, в т.ч. факт схода с трассы того или иного участника, в любом случае сохраняются во внутреннюю энергонезависимую память головного устройства и могут быть просмотрены оператором/судьёй в удобное для него время.

Список задач, которые необходимо выполнять головному устройству в один и тот же момент времени, побудил выбрать в качестве фундамента системы ОС FreeRTOS. Весь функционал был разбит на задачи (task-и) в терминах FreeRTOS. Это существенно облегчило отладку и сократило сроки начала тестирования системы в целом. Резюмируя, полный функционал головного устройства на текущий момент можно представить в виде списка: 

  • опрос матричной клавиатуры 7х4 и соответствующая реакция на нажатие той или иной клавиши;
  • вывод текущего состояния и режима работы устройства на OLED-экран WEG010032;
  • синхронизация времени на стартовом и финишных устройствах системы;
  • выполнение двух сценариев работы всей горнолыжной системы: "соревнования" и "тренировка";
  • опрос стартового устройства, в т.ч. защита от фальс-старта, с последующим вводом номера стартовавшего участника;
  • опрос финишного устройства с последующим вводом номера финишировавшего участника;
  • фиксация события "сход участника" по запросу оператора головного устройства;
  • передача информации по результатам на табло;
  • передача информации по результатам на судейский ПК ("верхний уровень") через VCP/USB;
  • печать результата финишировавшего/сошедшего участника на термопринтере;
  • сохранение результатов забега во внутренней энергонезависимой памяти;
  • просмотр ранее сохранённых во внутренней памяти результатов забега;

 

 

Результаты

Разработка ПО для микроконтроллера выполнялась с использованием программатора/отладчика ST-LINK, входящего в состав отладочной платы STM32F4Discovery; 

  • Среда разработки - Eclipse;
  • Компилятор/Ассемблер/Компоновщик - от Mentor Graphics/CodeSourcery;
  • Система контроля версий - Git;
  • Дополнительно используемые библиотеки:
    • STM32F4xx DSP and standard peripherals library;
    • STM32F4xx USB Device library;
    • STM32F4xx USB OTG Driver;
    • Операционная система реального времени FreeRTOS;
© ООО "Контроль-В" 2012 - 2018