Ремонт шагомера своими руками

Добавил пользователь Владимир З.
Обновлено: 18.09.2024

Эта схема измеряет пройденное расстояние. Устройство размещается в небольшой коробке, которую носят в кармане штанов. Показания устройства интерпретируются следующим образом. Левая цифра (старшая, индикатор D2) показывает километры, от 0 до 9, а постоянно зажженная десятичная точка этого индикатора отделяет километры от сотен метров. На правом индикаторе (D1, младшая цифра) отображаются сотни метров, а десятичная точка зажигается через каждые 50 метров пути. Звуковой сигнал отмечает каждый цикл счета. Звук можно отключить.
Считается, что нормальный шаг среднего человека равен 78 см. Следовательно, светодиод (десятичная точка), отмечающий отрезки пути по 50 м, должен зажигаться через 64 шага, или через 32 цикла переключения ртутного выключателя, отрезки в 100 м через 128 шагов и т.д. Для экономии расхода батарей индикация включается только при нажатии кнопки P2. Случайный сброс счетчиков невозможен, т.к. для этого нужно нажать обе кнопки одновременно.
Конечно же, этот измеритель не отличается высокой точностью, но для обозначенных целей он вполне подходит. В любом случае, наиболее ответственным этапом в изготовлении устройства будет выбор правильного положения и ориентации ртутного выключателя внутри корпуса.

Работа схемы:

На микросхемах IC1A и IC1B собран ждущий мультивибратор, нейтрализующий, в определенной степени, влияние случайных встряхиваний ртутного переключателя. На вход IC2 подаются прямоугольные импульсы правильной формы, частота которых делится микросхемой на 64. Транзистор Q2 управляет включением десятичной точки индикатора D1 через каждые 32 импульса. Каждая из микросхем IC3 и IC4 делит частоту на 10 и управляет 7-сегментным индикатором. Кнопка P1 сбрасывает счетчики, а P2 включает индикацию. Микросхема IC1C вырабатывает прямоугольные импульсы звуковой частоты в течение небольшого отрезка каждого цикла работы ждущего мультивибратора. Транзистор Q1 управляет пьезоизлучателем, а выключатель SW2 служит для отключения звука.

Добрый день! В прошлой статье мы научились работать с цифровым акселерометром, теперь попробуем на его основе собрать счетчик шагов. При ходьбе мы совершаем небольшие колебания, для нас они еле заметны, но акселерометру по силам их зарегистрировать. Датчик показывает нам статическое и динамическое ускорение по трем осям (x, y, z), но так как в каком положении он окажется неизвестно, мы будем работать с суммарным вектором, который рассчитаем по формуле: x²+y²+z². Чтобы проанализировать значения, подключим акселерометр к ардуино по шине I2C, как мы делали в прошлой статье ( на arduino nano это А4 - SDA, A5 - SCL), и подадим питание 3,3В.

Для работы с акселерометром нужна библиотека:

  • Библиотека для работы с модулем Adafruit_ADXL345-master скачать .

Загрузим не большой скетч для вывода значений суммарного вектора ускорений в монитор порта.

В наше время стали весьма популярными разнообразные браслеты для фитнеса, которые могут не только считать шаги, но и показывать количество сожжённых вами калорий, отображать на экране вашу частоту пульса, показывать время и многое другое. Большинство этих умных устройств, относящихся к категории интернета вещей (IoT – Internet of Things) сохраняют всю эту информацию в облаке, благодаря чему вы всегда можете просмотреть ее на своем смартфоне. Ранее на нашем сайте мы уже рассматривали умную систему мониторинга здоровья пациента на основе Arduino, которая сохраняет всю критически важную информацию на сервере ThingSpeak, откуда ее можно прочесть из любой точки мира (где есть интернет).

Внешний вид счетчика шагов (шагомера) на основе Arduino и акселерометре

Но кроме таких умных браслетов в настоящее время также востребованы и обычные счетчики шагов (шагомеры). В данной статье мы рассмотрим создание простого и дешевого шагомера (педометра) на основе платы Arduino и акселерометра. Этот шагомер будет подсчитывать количество шагов и отображать его на экране ЖК дисплея 16x2. Этот шагомер можно интегрировать с умными часами на основе Arduino. Также на нашем сайте вы можете посмотреть проект шагомера на основе микроконтроллера ATtiny85.

Необходимые компоненты

  1. Плата Arduino Nano (купить на AliExpress).
  2. Акселерометр (ADXL335) (купить на AliExpress).
  3. ЖК дисплей 16х2 (купить на AliExpress).
  4. Модуль I2C для работы с ЖК дисплеем (LCD I2C Module) (купить на AliExpress).
  5. Батарейка.

Акселерометр ADXL335

ADXL335 представляет собой 3-осевой аналоговый акселерометр, принцип работы которого основан на обнаружении изменения емкости. ADXL335 имеет небольшие размеры, потребляет мало мощности и содержит внутри себя поликристаллический кремниевый датчик и схему обработки сигналов от данного датчика. Данный акселерометр может измерять как статическое, так и динамическое ускорение. В нашем проекте счетчика шагов на Arduino акселерометр ADXL335 будет выполнять роль датчика шагов.

Трехмерный разрез акселерометра
Принципы работы акселерометра

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

На следующем рисунке показан внешний вид передней и задней частей акселерометра.

Внешний вид передней и задней частей акселерометра ADXL335

Назначение контактов акселерометра ADXL335:
Vcc – контакт для подачи напряжения постоянного тока 5 В.
X-OUT – выход акселерометра по оси x.
Y-OUT – выход акселерометра по оси y.
Z-OUT – выход акселерометра по оси z.
GND – общий провод (земля).
ST – этот контакт используется для установки чувствительности датчика.

На нашем сайте вы можете посмотреть следующие проекты с использованием акселерометра ADXL335:

Схема проекта

Схема шагомера на основе платы Arduino и акселерометра ADXL335 представлена на следующем рисунке.

Схема шагомера на основе платы Arduino и акселерометра ADXL335

На представленной схеме контакты X, Y и Z акселерометра подключены к аналоговым контактам A1, A2 & A3 платы Arduino Nano. Для подключения ЖК дисплея 16x2 к плате Arduino Nano мы в этом проекте использовали модуль интерфейса I2C. Контакты SCL и SDA данного модуля подключены к контактам A5 и A4 платы Arduino Nano соответственно. Полная схема соединений нашего проекта представлена в следующей таблице.

Arduino Nano ADXL335
3.3V VCC
GND GND
A1 X
A2 Y
A3 Z
Arduino Nano LCD I2C Module
5V VCC
GND GND
A4 SDA
A5 SCL

Внешний вид собранной на макетной плате конструкции нашего проекта показан на следующем рисунке.

Внешний вид собранной на макетной плате конструкции нашего проекта

После тестирования проекта на макетной плате мы спаяли его затем на перфорированной плате (Perfboard) и у нас получилась конструкция следующего вида:

Внешний вид собранной на перфорированной плате конструкции нашего проекта (вид сверху)

Внешний вид собранной на перфорированной плате конструкции нашего проекта (вид снизу)

Принцип работы счетчика шагов (шагомера)

Счетчик шагов (шагомер) подсчитывает общее количество шагов, сделанное человеком, используя значения изменения осей X, Y и Z, получаемые с акселерометра. Акселерометр непрерывно обновляет максимальное и минимальное значения этих осей после определенного числа отсчетов. Среднее значение этих трех осей ((Max + Min)/2) называется динамическим пороговым значением и именно это значение используется для принятия решения о том был ли сделан шаг или нет.

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

Краткий алгоритм работы шагомера выглядит следующим образом:

  1. После подачи питания шагомер производит свою калибровку.
  2. Затем в функции void loop он непрерывно считывает значения осей X, Y и Z.
  3. После этого шагомер рассчитывает вектор суммарного ускорения от начальной точки.
  4. Вектор ускорения представляет собой квадратный корень из (x^2+y^2+z^2).
  5. Далее шагомер сравнивает рассчитанный вектор ускорения с заранее определенной границей и на основании этого принимает решение увеличивать ли счетчик шагов или нет.

Шагомер в работе

Объяснение программы для Arduino

Полный код программы приведен в конце статьи, здесь же мы кратко рассмотрим его основные фрагменты.

Вначале в программе подключим библиотеку для работы с ЖК дисплеем по протоколу I2C. Для работы с акселерометром ADXL335 не требуется никакой библиотеки поскольку у него аналоговый выход.

Mi band 5 неправильно считает шаги: Что делать, как откалибровать Mi Band 5

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

Создателем шагомера считается великий Леонардо да Винчи. С учётом развития технологий в годы его жизни (середина XV – начало XVI века) о компактности и удобстве речи не шло – согласно чертежам, шагомер представлял из себя маятниковый механизм, прикрепляемый к поясу (на рисунке – третий чертёж). Нам неизвестно, был ли реализован такой шагомер на практике, или же остался, как и многие другие задумки гения, на бумаге, но, тем не менее, это устройство вполне могло бы считать шаги.

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

Mi band 5 неправильно считает шаги: Что делать, как откалибровать Mi Band 5

В народ шагомеры ушли в 1960-х годах с руки японского предпринимателя Есиро Хитано, который стал продавать их под брендом Manpo-Kei, продвигая идею о 10000 шагов в день. Его шагомеры всё ещё были механическими, но со временем механику вытеснила электроника. В электронных шагомерах вместо давления груза на пружину, прикреплённую к шестерням, стали использовать изменение ёмкости конденсаторов или потенциала (пьезоэлектрический эффект) при механическом воздействии. Сам механизм, регистрирующий движение внутри шагомера, называется акселерометром.

Как работает шагомер

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

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

За подсчет шагов отвечает особое устройство – акселерометр. Он бывает двух- и трехкомпонентный. Проще говоря, отслеживание ускорения происходит по указанному количеству осей координат (2 или 3). В большинстве современных моделей в комплект к акселерометру устанавливается гироскоп. Это устройство определяет изменение угла ориентации в пространстве. Подобный тандем позволяет более точно производить подсчет, при этом не учитывая обычные взмахи или движения рукой.

Jet Sport FT 6c

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

При гироскопе и данных получаемых с 3 осей координат результаты могут быть на порядок точнее. В этом случае проблем отличия взмаха от движения не возникает. Помимо этого, значение имеет и тип поверхности, по которой происходит движение. Наиболее точные значения снимаются с ровной асфальтированной дороги, а вот прогулка по гористой местности или морскому каменистому побережью может дать погрешность в 5-10%.

В этой статье мы рассмотрим создание портативного счетчика шагов (шагомера) на основе микроконтроллера AVR ATtiny85, акселерометра и гироскопа MPU6050, и OLED дисплея. Питание на шагомер будет подавать от простой батарейки на 3V, что позволяет сделать его достаточно компактным и удобным для переноски. Для изготовления данного шагомера потребуется сравнительно мало компонентов, код программы также будет достаточно простой.

В программе шагомера с помощью датчика MPU6050 производится измерение ускорения по 3-м осям (X, Y и Z). Затем производится вычисление разницы между текущими и предыдущими значениями ускорения. Если эта разница будет больше определенной величины (для ходьбы больше 6, для бега более 10), производится увеличение счетчика числа шагов. Общее число сделанных шагов отображается на экране OLED дисплея.

Внешний вид счетчика шагов (шагомера) на ATtiny85 и акселерометре MPU6050

Чтобы сделать наш шагомер максимально компактным мы изготовили для него печатную плату с помощью сервиса PCBWay. При желании вы можете добавить в данный проект датчик частоты сердечных сокращений. Также на нашем сайте вы можете посмотреть проект шагомера на основе платы Arduino.

Необходимые компоненты

  1. Микроконтроллер ATtiny85 (купить на AliExpress).
  2. Модуль (датчик) MPU6050 (купить на AliExpress).
  3. Модуль OLED дисплея (купить на AliExpress).
  4. Резисторы (SMD) 10 кОм – 5 шт. (купить на AliExpress).
  5. Кнопки – 2 шт.

Гироскопический датчик (гироскоп) MPU-6050

Внешний вид гироскопа MPU-6050

Распиновка MPU-6050:
Vcc – контакт для подачи питающего напряжения постоянного тока;
GND – земля модуля;
SDA – это контакт используется для передачи данных между модулем mpu6050 и микроконтроллером;
SCL – вход синхронизации;
XDA – линия передачи данных (опциональная) по протоколу I2C для конфигурирования и считывания данных с внешних датчиков (не используется в нашем проекте);
XCL – вход синхронизации протокола I2C для конфигурирования и считывания данных с внешних датчиков (не используется в нашем проекте);
ADO – I2C Slave Address LSB (не используется в нашем проекте);
INT – контакт прерывания для индикации готовности данных.

На нашем сайте вы можете посмотреть следующие проекты на основе гироскопа MPU6050:

Работа схемы

Схема шагомера на ATtiny85 и акселерометре MPU6050 представлена на следующем рисунке.

Схема шагомера на ATtiny85 и акселерометре MPU6050

Взаимодействие между MPU6050, OLED дисплеем м платой Arduino осуществляется с помощью протокола I2C. Поэтому контакт SCLPin (PB2) микроконтроллера ATtiny85 подключен к контактам SCLPin датчика MPU6050 и OLED дисплея. Аналогичным образом, контакт SDAPin (PB0) микроконтроллера ATtiny85 подключен к контактам SDAPin датчика MPU6050 и OLED дисплея. Две кнопки подключены к контактам PB3 и PB4 микроконтроллера ATtiny85. Эти кнопки используются для скроллинга или изменения текста на экране дисплея.

Изготовление печатной платы для шагомера на основе ATtiny85

Для проектирования печатной платы мы использовали редактор EasyEDA. 3D модель спроектированной нами печатной платы для этого проекта выглядит следующим образом:

3D модель спроектированной нами печатной платы для шагомера

Gerber файлы для изготовления печатной платы данного проекта можно скачать по следующей ссылке - Gerber file for ATtiny85 Step Counter.

Заказ печатной платы с сервиса PCBWay

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

Выбор основных параметров печатной платы

Шаг 2. Нажмите на кнопку ‘Quote Now’ (заказать сейчас). После этого вас перебросит на страницу, на которой вам необходимо будет ввести дополнительные параметры печатной платы: ее тип, слои, материал, толщину и т.д. Большинство этих параметров можно оставить такими, какими их сервис предлагает по умолчанию.

Выбор дополнительных параметров печатной платы

Шаг 3. В заключение вам необходимо загрузить в сервис Gerber файлы и оплатить заказ. Перед переходом к процессу оплаты сервис PCBWAY проверяет ваши Gerber файлы на корректность.

Загрузка Gerber файлов

Сборка шагомера на печатной плате

Нашу плату сервис изготовил за несколько дней, ее качество было на высоте. Низ и верх нашей печатной платы показаны на следующем рисунке.

Низ и верх печатной платы для шагомера

После припаивания компонентов проекта к печатной плате у нас получилась конструкция следующего вида:

Конструкция проекта шагомера в сборе

Объяснение программы для ATtiny85

Полный текст программы приведен в конце статьи, здесь же мы кратко рассмотрим его основные фрагменты. Поскольку здесь используется программирование микроконтроллера ATtiny85 с помощью Arduino IDE, то для этого можно использовать USB программатор для ATtiny85 на основе загрузчика Digispark.

Читайте также: