В последнее время все
большую популярность приобретают соревнования
на внедорожных автомобилях. Один из наиболее
интересных этапов таких соревнований —
ориентирование по легенде. В этих соревнованиях
экипажу необходимо пройти с заданным скоростным
режимом трассу, описанную легендой. В легенде
последовательно прописаны ориентиры (развилки,
пересечения дорог, здания) и расстояния между
ними. В заранее неизвестных точках на трассе
находятся пункты контроля времени, в которых
производится проверка времени прохождения
трассы и, в случае его отклонения от заданного
скоростного режима, начисляется штраф. Для
успешных выступлений на таких соревнованиях
удобно иметь спидометр, позволяющий измерять
расстояния с точностью до 10 метров, с режимом
обратного отсчета (на случай, если вы заблудились
и вынуждены вернуться), и секундомер, чтобы
контролировать среднюю скорость прохождения
дистанции.
Ниже предложен простой, но достаточно
эффективный вариант подобного прибора. Он
обеспечивает следующие функции: подсчет
пройденного расстояния от трех различных точек с
точностью до 10 метров (старт, последний пункт
контроля времени и последняя точка легенды) и
подсчет времени движения от двух из них (старт и
пункт контроля времени). Предусмотрены режимы
«заморозки» показаний, обратного отсчета
расстояния, три разных режима индикации данных.
Для подсчета пройденного расстояния используется герконовый датчик Sw1. Датчик устанавливается радом с карданом, полуосью, ступицей или другой вращающейся частью трансмиссии, на которой закрепляется магнит. Импульсы с датчика поступают через схему подавления дребезга, собранную на таймерах DD1 и DD2, на вход T0 микроконтроллера DD1.
Для перевода числа импульсов в пройденное расстояние необходимо установить параметр калибровки, соответствующий числу импульсов на 10 метров. Этот параметр хранится в двух байтах: Cal_Hi — целое число импульсов на 10 метров и Cal_Lo — дробная часть с точностью до одной сотой (в формате BCD). Для подсчета импульсов используется 8-битный счетчик Timer/Counter0 и дополнительный регистр Dst_Counter. Счетчик запрограммирован на подсчет импульсов со входа T0 и генерацию прерывания по переполнению. В начальный момент времени значение счетчика инициализируется числом 256-cal_hi, а значение Dst_Counter — нулем. Таким образом, первое прерывание от счетчика произойдет после поступления числа импульсов, равного целой части числа импульсов на 10 метров. При обработке прерывания регистр Dst_Counter увеличивается на значение Cal_Lo. Если при этом происходит переполнение, то в качестве очередного значения для инициализации счетчика используется не 256-Cal_Hi, а 256-Cal_Hi-1. Это приводит к тому, что до следующего прерывания от счетчика поступит на один импульс больше. Этот алгоритм позволяет учитывать и корректировать накапливающуюся погрешность при вычислении расстояния. Процедура обработки прерывания от счетчика также увеличивает или уменьшает (в зависимости от режима) счетчики расстояний на единицу.
Для подсчета времени используется деление частоты тактового генератора процессора (6МГц). Подсчет импульсов осуществляет 32-битный Timer/Counter2. Он настроен на подсчет импульсов, поступающих с тактового генератора через пределитель на 64. Таким образом на вход таймера подается частота 93750 Hz. Начальное значение таймера устанавливается равным 0xDB61 (0xDB61 = 65536 — 9375), что обеспечивает генерацию прерываний переполнения с частотой 10 Гц. Во время обработки прерывания инкрементируется счетчик Timer_Counter, и его значение сравнивается с константой Timer_Limit. При достижении значения Timer_Limit переменная Timer_Counter обнуляется и увеличиваются значения счетчиков времени. Константа Timer_Limit устанавливается равной 6, что обеспечивает увеличение счетчиков времени каждые 0,6 с или 0,01 мин. Таким образом, прибор отображает время в сотых долях минуты, что облегчает вычисление средней скорости. Если необходимо подсчитывать время в секундах, то нужно поменять значение Timer_Limit на 10 и скорректировать процедуру увеличения счетчика времени так, чтобы увеличение счетчика минут происходило при достижении счетчиком секунд значения 60, а не 100.
Индикация пройденного расстояния и времени осуществляется восемью 7-сегментными светодиодными индикаторами с общим анодом, сгруппированными в две группы по 4 цифры. В зависимости от режима работы каждая из этих групп отображает один из измеряемых параметров в соответствии с табл. 1.
Число 1 | Режим 1 Общее время гонки |
Режим 2 Время от последней точки |
Режим 3 Время от последней точки проверки |
Число 2 | Расстояние от старта | Расстояние от последней точки проверки | Расстояние на последнем интервале легенды |
Вывод значений на индикаторы производится с использованием динамической индикации, так что в каждый момент времени отображаются по две цифры. При этом на базу одного из транзисторов VT1,…,VT4 подается отрицательный импульс, чем обеспечивается выбор одной из групп цифр, а на выходах портов A и C устанавливаются уровни, обеспечивающие загорание соответствующих сегментов.
Для индикации текущего режима работы устройства используются 5 светодиодов HL1,…,HL5. Процедура отображения информации последовательно выводит информацию на 7-сегментные индикаторы и эту группу светодиодов. Так как время включения каждого индикатора в таком режиме мало, рекомендуется использовать светодиодные индикаторы большой яркости зарубежного производства, например Kingbright DA56-11SRWA.
После каждого цикла вывода информации опрашивается состояние кнопок SW2,…,SW8. Если состояние оказывается постоянным в течение пяти опросов (подавление дребезга), то производится действие, соответствующее нажатым кнопкам. Функции кнопок приведены в табл. 2.
Кнопка | SW2 | SW3 | SW4 | SW5 | SW6 | SW7 | SW8 |
Функция | Переключает режим прямого/ обратного отсчета расстояния |
Включает/ выключает режим заморозки показаний |
Включает 1-й режим индикации, выключает режим заморозки показаний | Включает 2-й режим индикации, выключает режим заморозки показаний | Включает 3-й режим индикации, выключает режим заморозки показаний | Сбрасывает счетчик интервала расстояния по легенде | В 1-м режиме индикации сбрасывает все счетчики расстояния и времени. В других режимах сбрасывает счетчики расстояния и времени от точки проверки времени и счетчик интервала по легенде |
Для питания устройства можно использовать три батарейки AA или стабилизированное напряжение бортовой сети. Схема стабилизатора на базе интегрального стабилизатора 7805 показана на рис. 2.
Для установки устройства на автомобиль нужно выбрать место, которое позволяло бы установить магнит на какой-либо вращающейся части трансмиссии, и разместить рядом с ним герконовый датчик. После установки следует убедиться, что датчик реагирует на прохождение магнита и при этом никакие детали автомобиля при движении не будут задевать датчик или магнит. Если предполагается эксплуатировать машину в условиях бездорожья, то следует позаботиться о том, чтобы место установки датчика было защищено от возможных ударов различными предметами со стороны дороги.
После установки датчика прибор необходимо откалибровать, для чего нужно определить число импульсов на один километр. Для этого сначала значения калибровки нужно установить следующим образом: Cal_Hi = 1, Cal_Lo = 0. Это обеспечит увеличение счетчика расстояния после каждого импульса от датчика. С этими значениями калибровки необходимо проехать участок, выбранный в качестве мерного километра, и запомнить полученное число. Для увеличения точности рекомендуется проехать по этому участку несколько раз и усреднить полученные значения. Затем значение константы Cal_Hi нужно установить равным двум старшим разрядам полученного числа, а Cal_Lo — двум младшим (при этом необходимо помнить, что значение в Cal_Lo храниться в двоично-десятичной системе, Cal_Hi — в двоичной). Программа прошивки микроконтроллера размещена по адресу Автомобильный маршрутный компьютер.
Устройство было впервые опробовано на соревнованиях «Весенняя распутица», проведенных Тверским джип-клубом «Лебедушка» 21-23 апреля 2000 года в окрестностях г. Твери. Применение данного устройства сыграло большую роль в том, что автору, впервые участвовавшему в подобных соревнованиях, удалось сразу занять 8-е место на этапе «ночное ориентирование», пропустив вперед только более опытные московские экипажи. Дальнейшая эксплуатация устройства на тренировках и соревнованиях джип-клуба «Лебедушка» подтвердила эффективность его использования.
После минимальных изменений в программе возможно «мирное» применение подобного устройства как электронного таймера/одометра с несколькими независимыми счетчиками расстояния и времени (например, общий пробег за поездку, пробег от заправки, пробег от последнего поворота).
Сергей Сорокин, Тверь.