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

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

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

Автор проекта — Nikhil Agnihotri, Engineersgarage.com

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

‍♂️ Как сделать счётчик пройденых блоков | Шагомер | Без модов | Майнкрафт ПЕ

  • Arduino UNO x1;
  • Датчик акселерометра ADXL345 x1;
  • SSD1306 OLED-дисплей x1;
  • Соединительные провода и перемычки.

Схема подключения

Для разработки этого проекта датчик акселерометра ADXL345 и SSD1306 OLED сопрягаются с Arduino. Для этого подключите его контакты GND и VCC к заземлению Arduino и выходным контактам 3,3 В. Затем подключите контакты SDA и SCL датчика акселерометра к контактам SDA и SCL порта I2C на Arduino. В этом проекте 7-контактный OLED-модуль SSD1306 подключен к Arduino UNO.

Шагомер и калькулятор расстояний на базе Arduino

Принципиальная схема шагомера на базе Arduino

Принципиальная схема шагомера на базе Arduino

Скетч для Arduino:

Как это работает

Когда устройство включено, OLED-дисплей SSD1306 инициализируется, и на экране мигают логотип «EEWORLDONLINE» и название устройства «Steps Counter». Первоначальное количество шагов отображается как 0, а пройденное расстояние также отображается как 0.

Теперь все, что нужно сделать пользователю, — это держать устройство при себе. Устройство постоянно отслеживает свой вектор ускорения с помощью датчика акселерометра ADXL345.

Читайте также:  Как сделать из бумаги из Майнкрафта зомби

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

Средние значения ускорения рассчитываются при включении устройства и на экране мигают начальные сообщения. Средние значения также вычисляются путем взятия среднего из 50 последовательных показаний акселерометра ADXL345. Эти средние значения ускорения устройства по осям x, y и z служат контрольной точкой.

Создание и настройка таблиц в майнкрафт 1.12.2-1.16.4

После завершения первоначальной настройки устройство снова вычисляет ускорение по осям x, y и z 50 раз подряд и вычисляет среднее из этих значений. Вектор ускорения устройства вычисляется путем извлечения квадратного корня из разницы текущих значений ускорения по сравнению с контрольными значениями.

После задержки в 250 миллисекунд устройство снова вычисляет ускорение по осям x, y и z 50 раз подряд и вычисляет среднее из этих значений. Вектор ускорения устройства вычисляется еще раз с интервалом 250 мс путем извлечения квадратного корня из разницы текущих значений ускорения по сравнению с эталонными значениями.

Вычисляется разница между вектором ускорения сейчас и вектором ускорения за 250 мс до этого, и если разница больше 0,05, шаг увеличивается.

Значение пройденного расстояния рассчитывается путем умножения количества шагов на один фут или 0,3048 метра, предполагая, что средняя длина шага составляет один фут.

Количество шагов и пройденное расстояние обновляются на OLED-экране с задержкой 400 мс.

Процесс вычисления разницы между двумя последовательными векторами ускорения устройства с интервалом 250 мс продолжается на всем протяжении для отслеживания движения пользователя.

Следует отметить, что задержка в 250 мс между вычислением двух последовательных усредненных векторов ускорения и разница 0,05 получается после тщательной калибровки устройства.

Читайте также:  Команда дрима Майнкрафт имена

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

Код

Код начинается с импорта wire.h для связи I2C с датчиком акселерометра ADXL345 и SPI.h для связи с OLED-дисплеем SSD1306.

Библиотеки Adafruit для работы с OLED-дисплеями импортируются, а также константы, необходимые для OLED-интерфейса, и определенные параметры. Для класса SSD1306 инициализируется отображение объекта.

Растровое изображение для логотипа EEWORLDONLINE хранится в PROGMEM Arduino и преобразуется в объект массива. Объявляются переменные для хранения средних, текущих и ближайших значений ускорения. Объявлена ​​переменная для хранения количества шагов.

В функции setup () вызываются три разные функции. Ssd1306_init () вызывается для инициализации OLED-дисплея SSD1306 и передачи на него начальных сообщений. Adxl345_init () вызывается для инициализации датчика ускорения.

Функция read_av_acc () вызывается для вычисления опорных значений ускорения, когда устройство находится в состоянии покоя. В функции loop () вектор ускорения вычисляется дважды с интервалом 250 мс, и если разница между двумя значениями больше 0,05, увеличивается один шаг. Количество шагов и пройденное расстояние обновляются на OLED-дисплее.

Шагомер и калькулятор расстояний на базе Arduino

Шагомер и калькулятор расстояний на базе Arduino

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

Поделитесь этой статьей с друзьями:

Источник: electrik.info

SCOREBOARD Майнкрафт нужен счётчик нажатия на кнопку

Мне нужен скорборд! Вот пример, игрок нажал на каменную кнопку и ему добавился счётчик в скорборде, именно каменную, как сделать?

Голосование за лучший ответ
На какую кнопку ?
Jourdu LoveЗнаток (444) 3 месяца назад
Jourdu LoveЗнаток (444) 3 месяца назад
Или любую другую

Увы, в майнкрафте нет статистики, которая бы отслеживала взаимодействие с кнопкой. Зато это могут делать датапаки при помощи кастомных достижений. Подробно процесс создания такого я уже когда-то расписывал здесь:
https://otvet.mail.ru/question/227577214

Читайте также:  Как слепить снеговика в Майнкрафт

Если не нужно точно определять исполнителя (выполнять команду от имени только нажавшего на кнопку игрока), и положение кнопки известно заранее, то можно просто проверять её состояние при помощи

/execute if block minecraft:stone[powered=true] run say кнопка нажата
Jourdu LoveЗнаток (444) 3 месяца назад
2 Способ.. Все равно не удаётся сделать от игрока который и нажал на эту кнопку

Александр Иванов Просветленный (33136) Jourdu Love, от имени игрока?

А я так и написал, что этот способ работает, «если не нужно точно определять исполнителя (выполнять команду от имени только нажавшего на кнопку игрока)». Поэтому либо используй первый сове способ (рекомендуется), либо допиши перед «run» следующее:

Источник: otvet.mail.ru

Как сделать щетчик шагов в Майнкрафт 1.16

Как его сделать на Майнкрафт пе 1.16 при помощи команд, помогите пожалуйста?

Николай Гвоздев
6 месяцев назад

На пе нельзя, только на джаве через /execute

Minecraft windows 10 вопрос

5 месяцев назад

Популярное

Как использовать адский светоч в майнкрафт?

Не могу скачать официальный майнкрафт лаунчер

Minecraft при подключении на сервер выдаёт ошибку: illegal packet received terminating connection Версия 1.16.5

Как узнать, сколько прожито игровых дней в майнкрафте?

Как добавить в приват игрока на анархии? [minecraft

14 ответов
Помогите с плагином Lobby игра майнкрафт Xi Xilon Rtp

  • 1 год назад
  • 1 ответ
  • 3 года назад
  • 1 ответ
  • 10 месяцев назад
  • 1 ответ
  • 10 месяцев назад
  • 2 ответа
  • 1 год назад
  • 2 ответа

Хай, при запуске майнкрафта 1.7.10, выдаёт ошибку код будет ниже Се Сергей Яковенко

  • 2 года назад
  • 1 ответ

Не получается создать скин в Майнкрафт ПЕ

Не получается создать скин в Майнкрафт ПЕ

5 месяцев назад

Крашится Minecraft forge

Крашится Minecraft forge

5 месяцев назад

Сломался minecraft 1.12.2, не отображается текст

Сломался minecraft 1.12.2, не отображается текст

5 месяцев назад

Источник: minecraftru.net