Шагомер на микроконтроллере ATtiny2313


И. САЛИМО В, г. Ревда Свердловской обл.

Шагомеры, как и велосипедные путевые приборы, разрабатывались радиолюбителями и раньше, до наступления эры микроконтроллеров. Это были простые устройства с минимумом возможностей, собранные на цифровых микросхемах средней степени интеграции, по существу — счетчики импульсов с выводом результата на семиэлементные индикаторы. Применение микроконтроллера позволило значительно расширить функциональные возможности прибора.

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

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

Прибор собран в имеющемся в продаже корпусе ВОХ-МЗЗС с необходимыми доработками. Результаты измерения выводятся на многоразрядный светодиодный цифровой индикатор, установленный на верхней панели корпуса, а на передней размещены кнопки управления режимами работы. Питается шагомер от гальванической или аккумуляторной батареи напряжением 9 В. Он потребляет 12мА в режиме счета шагов и 100 мА при включенном индикаторе.

Самый главный элемент прибора — датчик шагов. Рассматривая его различные варианты, автор исключил конструкции, основанные на установке микрокнопок в подошве обуви или применении акселерометра. На рис. 1 указано устройство датчика на магнито-управляемой микросхеме (МУМС). Его легко изготовить в домашних условиях. Корпус — гелевая авторучка, от которой отрезана заготовка необходимой длины. Внутреннее отверстие рассверлено сверлом диаметром 6,5 мм для устранения конусности. Заглушки отрезаны от таких же ручек и укорочены до 2...3 мм. К нижней по рисунку заглушке приклеен цилиндрический магнит типоразмера D 6x5 N35H. Груз представляет собой стальной цилиндр диаметром 6 мм. К его торцу снизу приклеен второй — подвижный — магнит, аналогичный неподвижному. При сборке необходимо следить, чтобы магниты в корпусе оказались расположенными одноименными полюсами навстречу и отталкивались. После сборки датчика закрепляют верхнюю заглушку полосками скотча.

Для проверки датчика и подборки оптимального положения МУМС К1116КП4 ее включают по схеме, изображенной на рис. 2. Датчик с магнитами закрепляют на столе вертикально. При этом цилиндр должен повиснуть в корпусе над нижним магнитом. Перемещая МУМС на корпусе датчика вверх и вниз, ищут точку, при проходе которой включается и выключается светодиод HL1. Если такую точку найти не удается, необходимо перевернуть МУМС или оба магнита. В найденном месте в корпусе необходимо сделать паз и закрепить в нем МУМС клеем. Если она установлена правильно, светодиод выключен, но включается при смещении подвижного магнита на 1...2мм вниз от положения равновесия.

Датчик окончательно проверяют во время ходьбы, закрепив его корпус на поясе вертикально и наблюдая за све-тодиодом. Каждому шагу должна соответствовать одна вспышка. Если это не так, придется подбирать массу груза.

Схема шагомера показана на рис. 3. Он собран на отечественных и импортных электронных компонентах. "Мозг" прибора — микроконтроллер ATtiny2313-10PI (DD2) с загруженной в него программой. Его тактовую частоту 4,096 МГц задает кварцевый резонатор ZQ1. Цепь VD1C5R7R8 в момент включения питания тумблером SA1 формирует импульс, устанавливающий микроконтроллер в исходное состояние.

Порт В микроконтроллера использован для управления многоразрядным светодиодным индикатором HG1, работающим в динамическом режиме. Аноды элементов индикатора коммутирует преобразователь кода DD1, а общие катоды элементов его разрядов — дешифратор DD3 или его аналог SN74LS145N. Десятичными точками индикатора управляет электронный выключатель на транзисторе VT1.

Порт D микроконтроллера обслуживает кнопки SB1— SB5, датчик шагов на МУМС (В1), коммутатор питания микросхем DD1 и DD3 на транзисторе VT2 и излучатель звука НА1 с усилителем на транзисторе VT3.

Поскольку при счете шагов питание микросхем DD1 и DD3 выключено закрытым транзистором VT2, подключенный к ним индикатор HG1 в этом режиме не работает, чем достигается значительная экономия энергии батареи GB1.

Напряжение питания узлов шагомера стабилизировано интегральным стабилизатором DA1.

Шагомер собран на двух печатных платах. Чертеж печатных проводников основной платы изображен на рис. 4, а расположение деталей на ней — на рис. 5. Она рассчитана на установку резисторов (за исключением R6 — МЛТ-0,25) и конденсаторов С7, С8 типоразмера 1206 для поверхностного монтажа. Конденсатор С2 — керамический КМ-6. Оксидные конденсаторы СЗ, С4, С6 — танталовые, остальные оксидные — любого типа.

Диод КД522А можно заменить любым маломощным, а транзисторы КТ502Е и КТ816А — любыми из своих серий. Кварцевый резонатор ZQ1 — в корпусе HC-49U или HC-49S. Он может быть и на частоту 4 МГц, что очень незначительно повлияет на точность измерения скорости движения. Возможна замена электромагнитного излучателя HC09OSA (НА1) на НС0903А с последовательно включенным резистором сопротивлением 20 Ом.

Датчик шагомера укрепляют на плате двумя отрезками изолированного провода, пропущенными в крепежные отверстия. Под корпус датчика необходимо приклеить подкладки высотой, равной высоте МУМС В1. Светодиодный индикатор подключен к контактным площадкам платы отрезками провода и установлен под прямым углом к ее поверхности. Для наблюдения показаний индикатора в верхней панели корпуса шагомера пропилен вырез размерами 50x13 мм, закрытый красным светофильтром.

На второй плате размерами 50x25 мм находятся кнопки SB1— SB5 (TS-A1PS-130 с высотой толкателя 4,3 мм). Ввиду простоты чертеж этой платы опущен.

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

Первое нажатие на кнопку SB1 выводит на индикатор пройденное расстояние и скорость движения, второе (сопровождается двумя звуковыми сигналами) — значения тех же величин в шагах..

Третье нажатие на кнопку SB1 (сопровождается тремя звуковыми сигналами) выводит на индикатор ранее записанные в энергонезависимую память значения расстояния и скорости. Чтобы вернуться в режим счета шагов, нужно нажать на кнопку SB2. Для записи в память отображаемой на индикаторе информации нажимают на кнопку SB5.

Кнопкой SB3 включают режим измерения скорости движения. По завершении интервала измерения шагомер подаст звуковой сигнал.

Нажав на SB4, входят в режим установки длины шага. В этом режиме нажатиями на кнопку SB1 увеличивают выведенное на индикатор значение, а на SB3 — уменьшают его. Чтобы записать установленное значение длины шага в EEPROM, нажимают на кнопку SB2. Кнопка SB4 — возвращение в режим счета шагов.

Короткий звуковой сигнал после включения питания шагомера выключателем SA1 означает, что микроконтроллер, не включая индикатор, опрашивает кнопки и датчик. Нажимаем на кнопку SB1. Снова звучит сигнал, и на включившемся индикаторе появляются цифры 00,000_0,00. После второго нажатия на ту же кнопку значение на индикаторе изменяется на 00000 000 —

выключены десятичные запятые. Если нажать на кнопку SB2, прозвучит одиночный сигнал, индикатор погаснет, а микроконтроллер возвратится к опросу кнопок и датчика.

Чтобы задать длину шага, нажимаем на кнопку SB4. На индикаторе появляются цифры 00000_255. Кнопками SB1 и SB3 устанавливаем длину шага (например, 00000_055 — 55 см) и, нажав на кнопку SB2, записываем это значение в EEPROM. Еще раз нажав на кнопку SB4, возвращаем микроконтроллер в режим опроса кнопок и датчика. Все нажатия на кнопки сопровождаются звуковыми сигналами.

Проверяем правильность отсчета времени измерителем скорости движения. Звуковой сигнал при нажатии на кнопку SB3 означает начало интервала измерения, повторный сигнал — он должен прозвучать ровно через 5 мин после первого — его окончание.

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

Включив индикатор, увидим на нем, в зависимости от режима отображения, цифры 00,006_0,00 — пройдено 6 м (значение 5,5 м округлено до ближайшего целого) либо 00010_000 — сделано 10 шагов. Нули в трех правых разрядах означают, что скорость не измерялась.

Переходим в режим измерения скорости, и в течение измерительного интервала толкаем магнит датчика 110 раз. Результат измерения: 00,060_0,72 — пройдено округленно 60 м со скоростью 0,72 км/ч либо 000110_132 — сделано 110 шагов со скоростью 1320 шагов в час.

При нажатии на кнопку SB5 двойной звуковой сигнал сообщит, что информация о пройденном пути и скорости движения записана в энергонезависимую память микроконтроллера. Если выключить прибор, вновь включить и перевести в режим просмотра информации, на индикатор снова будут выведены ранее записанные значения. На этом проверка работы прибора закончена.

Возможной причиной неправильных показаний шагомера бывает "дребезг" на перепадах импульсов датчика, в результате чего микроконтроллер считает каждый импульс за несколько. Устранением его влияния в программе занимается процедура, использующая подпрограмму выдержки времени Wait250, вызываемую на перепаде сигнала датчика несколько раз. Число вызовов подпрограммы задержки записано в регистре time. Чем оно больше, тем надежнее защита, но меньше допустимая для счета без пропусков частота шагов. В авторском варианте программы это число равно семи, что дает общую длительность защитного интервала около 0,45 с.

При движении датчик шагов должен находиться в положении, максимально близком к вертикальному, — от этого зависит четкая работа шагомера.

От редакции. Программа микроконтроллера шагомера находится на нашем I FTP-сервере по адресу <ftp://ftp.radio.ru/pub/2011/04/step.zip>.


Добавил:  Павел (Admin)  [email protected] | 

Автор:  И. САЛИМО В, г. Ревда Свердловской обл. (Радио №4, 2011 г.)  Рейтинг@Mail.ru