Как подключить беговую дорожку к телефону по блютузу

Обновлено: 05.07.2024

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

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

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

Если честно, я так и не оценила удобство дорожки в качестве вешалки. Спустя несколько месяцев, она просто превратилась в бесполезную часть интерьера. Изредка я еще включала ее, мучимая голосом совести, но, затем и голос утих. Все произошло ровно так, как говорили на форумах в интернете.

На помощь пришел смартфон!

Казалось бы, какое отношение имеет смартфон к беговой дорожке? Позвольте объяснить. Вы знали о том, что ваш смартфон все время подсчитывает пройденные вами за день шаги? В iPhone, как и большинстве Android смартфонов, за это отвечает специальный чип (сопроцессор), который практически никак не влияет на расход заряда аккумулятора.

Беговая дорожка как средство для достижения новых побед и наград

После установки приложения я присоединилась к миллионам людей, желающих вести более активный образ жизни (кстати, само приложение установлено на более чем 500 млн. смартфонах!). Ежедневно со всего мира мне стали бросать вызов самые разные люди. Кто пройдет быстрее 30 тысяч шагов? А как насчет 100 тысяч!? Чем больше становилось побед, тем выше я поднималась в рейтинге:


Затем в приложении появились всемирные соревнования, в которых одновременно участвовали все пользователи. Желание попасть в 1% лучших заставляло меня ежедневно проходить (а иногда и пробегать) по 15-20 тысяч шагов!


На долго ли хватило новой мотивации? С тех пор, как я открыла для себя Samsung Health прошло уже больше 2 лет. За это время у меня собралось множество друзей со всего мира, с которыми мы продолжаем ежедневно соревноваться, поддерживая друг друга в отличной физической форме. Да и сама компания Samsung не перестает обновлять свое приложения, постоянно добавляя новые интересные функции и возможности.

Инструкция по применению

Если вам также стало интересно попробовать использовать свой смартфон в качестве дополнительного источника мотивации, тогда предлагаю свою краткую инструкцию:

Шаг 1

Шаг 2

Запускаем программу, соглашаемся с условиями и обязательно регистрируем учетную запись Samsung (если у вас ее нет):

Запуск и настройка Samsung Health

Шаг 3

После запуска и настройки учетной записи переходим к приложению, открываем вкладку Together (это и есть социальная сеть, где происходит основное веселье) и нажимаем кнопку Начать:


Теперь вы можете приступать к соревнованиям, бросать вызов другим участникам и проходить ежемесячные задания от Samsung (в которых, повторюсь, участвуют сотни тысяч людей по всему миру):


Программа совсем несложная. Достаточно потратить несколько минут, чтобы разобраться в нюансах, научиться бросать вызов другим людям или принимать участие во всемирных состязаниях. Повторюсь, главное, чтобы смартфон был при вас, когда вы используете беговую дорожку (или просто гуляете\бегаете на открытом воздухе).

Не хотите соревнований? Тогда как насчет игры?

Я не особо люблю играть в компьютерные или мобильные игры. Но иногда попадаются довольно интересные и полезные игрушки, вроде Wordament (игра-головоломка в слова, развивающая внимательность и смекалку) или Plant Nanny (необходимо выращивать забавные растения, выпивая в реальной жизни определенное количество стаканов воды в день).

Фитнес-игра Walkr

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

Вывод


Zwift Run изменит ваши тренировки на беговой дорожке. В этой статье я объясню основы Zwift Run, совместимые датчики и все, что вам нужно знать, чтобы начать работу.

Тренировки на беговой дорожке может быть намного интереснее с Zwift Run. Не знаете, как работает это приложение? В этой статье я расскажу вам все, что нужно знать, чтобы начать использовать Zwift Run и делать километры на этой виртуальной платформе с бегунами со всего мира.

Я не очень люблю бегать по беговой дорожке. Правда в том, что я нахожу это очень однообразным и намного сложнее, чем бегать по улице даже медленно. Однако иногда не остается выбора, и для того, чтобы выйти из ситуации, появились такие приложения, как Zwift Run. Я попытаюсь объяснить здесь и отвечая на самые распространенные вопросы о том, как бегать в Zwift Run.

zwift-run-opinion

Что такое Zwift Run?

Это самая основная часть, но Zwift Run идет намного дальше, предоставляя возможность составлять структурированные тренировочные планы.

discover-Zwift-Run

Что нужно для начала тренировки в Zwift Run?

Это второй большой вопрос. Для запуска в Zwift Run вам нужно всего 3 вещи. Серьезно, только три, хотя я бы добавил четвертую, необязательную, но очень рекомендуемую. Но об этом я расскажу ниже:

running-zwift-run

Беговая дорожка или гобелен

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

Важно, чтобы мы понимали: беговая дорожка не обязательно должна быть современная и ультра технологичная. Она не должна подключатся через Bluetooth или какое-либо соединение. Любая беговая дорожка подойдет. Я сам бегаю в Zwift Run с беговой дорожкой BH, которую купил более 10 лет назад. Теперь есть очень продвинутые дорожки, которые полностью совместимы с Zwift Run, не нуждаясь в дополнительных датчиках.

Вторым важным моментом является установка приложения Zwift (так оно называется, оно одинаково для велосипедистов и бегунов). Вы можете установить его на мобильный или планшет, приложение доступен для iOS (iPhone, iPad) и Android из Google Play. Если хотите, также можете использовать его с компьютера или ноутбука, его можно установить на Windows и Mac.

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

Шагомер или датчик, который определяет ваш ритм

Теперь вы можете задаться вопросом: «Педро, откуда Zwift узнает, с какой скоростью я бегу, чтобы мой аватар двигался?»

Здесь вступает в игру датчик, который должен быть закреплен на вашей обуви. Какой датчик? Датчик шагомера, который будет отвечать за сопряжение с приложением Zwift на смартфоне (или где вы его используете) и будет отправлять наши данные ритма, каденса и других данных. Теперь понятно, почему сама беговая дорожка не имеет значения? У нас есть несколько вариантов:

Прежде всего, есть сам датчик, который предлагает Zwift, называется Zwift Run Pod. Он подключается через Bluetooth к приложению и все.

zwift-runpod-sensor

Действительной альтернативой является Suunto Foot Pod Mini, который подключается через ANT +. Этот работает с Zwift Run, а также с любыми часами, поддерживающими ANT +, такими как Garmin (то есть он не должен ограничиваться Suunto).

suunto

Другой вариант: Stryd. Самый популярный датчик мощности также с подключением к Zwift Run, как Bluetooth, так и ANT+. Поэтому, если у вас уже есть датчик, можете воспользоваться им (это то, что я делаю, и он работает отлично). Имейте в виду, Stryd-это гораздо больше, чем шагомер (как я уже сказал, он измеряет ватты), поэтому его цена выше.

stryd

polar

Другой вариант, использовать Garmin Foot Pod, хотя его очень трудно найти, потому, что он уже снят с производства. Важно, что Garmin Running Dynamics Pod, не подходит, так как этот датчик помещается в штаны и не передает данные о темпе, поэтому он не совместим с Zwift Run. Имейте в виду, это может быть интересным вариантом для тех, у кого также есть GPS-часы Garmin. Так как этот шагомер также можно использовать, бегая по улице, и добавляет расширенные данные Running Dynamics (время контакта с землей, вертикальные колебания и другие).

ПОМНИТЕ! Если вы собираетесь использовать датчики, которые подключаются через ANT +, вам понадобится USB-адаптер ANT +, для вашего компьютера.

conect-sensors-Zwift-run

Другой вариант, появившийся совсем недавно, это датчик NPE Runn, который устанавливается непосредственно на самой беговой дорожке (на любой). Это очень интересная альтернатива, которую я уже смог опробовать. Не требует калибровки или чего-то дополнительного. Просто включите и начните работать в Zwift Run.

Это основные варианты шагомеров и датчиков, совместимых с Zwift Run, но они не единственные:

Если у вас есть Apple Watch, их также можно использовать вместе с приложением Zwift для отправки информации о пульсе, ритме и каденсе в Zwift Run. Нет, то же самое нельзя сделать с часами Polar, Suunto или других марок, только с Apple Watch на данный момент. Garmin выпустил обновление, которое добавляет спортивный профиль Virtual Race к некоторым GPS-часам, что позволяет подключать часы к Zwift Run, отправляя все данные о частоте вращения, скорости и пульсе без каких-либо дополнительных датчиков.

Существуют кроссовки Under Armour с датчиком Record Sensor, которые также совместимы.

Zwift Run с часами Garmin

Zwift-run-garmin-watches

Я не хочу усложнять, поэтому, если бы мне понадобилось купить датчик, чтобы использовать Zwift Run быстро и обеспечить полную совместимость, это был бы Zwift RunPod. Он имеет доступную цену и отлично работает. Цена и качество соответствуют.

Zwift-Run-mill

Дополнительно: Браслет с пульсоксиметром для добавления данных о частоте сердечных сокращений.

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

Таким образом, вы также можете подключиться к приложению Zwift, и данные о частоте сердечных сокращений также будут отображаться при беге на беговой дорожке с помощью Zwift Run. Подойдет любой пульсометр с подключением Bluetooth. А если это ANT +, вы уже знаете, что мобильный телефон / планшет / компьютер должен быть совместим с этим соединением, иначе он не распознает его. Это хорошие и качественные варианты, они также подойдут вам для часов GPS:

    HRM Dual (Bluetooth и ANT +)
  • Polar H7 и Polar H10
  • IGPSPORT Двухдиапазонный HR40 (Bluetooth и ANT +)
  • Decathlon Geonaute Dual Band (Bluetooth и ANT +)

use-zwift-run

Сколько стоит Zwift Run?

Вопрос на миллион долларов: какова цена Zwift Run? Ровно ноль евро. Да, Zwift Run полностью бесплатен для использования.

Для велосипедистов симулятор Zwift стоит 14,99 евро за ежемесячную подписку, однако для бегунов Zwift он бесплатный. Почему? Что ж, будучи таким новым приложением, пользователей беговой версии не так много (гораздо больше спортсменов с велостанком, чем с беговой дорожкой дома). Думаю, что сначала они захотят привлечь все больше и больше бегунов, чтобы попробовать.

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

Беговые дорожки, совместимые с Zwift Run

В настоящее время это беговые дорожки, совместимые с Zwift Run, которые обмениваются данными непосредственно между беговой дорожкой и Zwift через Bluetooth или ANT + без необходимости использования шагомеров или дополнительных датчиков. Конечно, вы скучаете по моделям Pro Form, BH, Bodytone и других ведущих брендов, но на данный момент у них нет беговых дорожек совместимых с этой платформой. Они организованы по марке и конкретной модели беговой дорожки:

Kettler TRACK S4 Page 1

После выбора индивидуального пользоват еля открывается меню соо тветствующег о пользователя.

Здесь имеется вся информация о персональной тренировке. В меню по льзователя «Г ость» находит -

При выборе этого пункт а меню сразу открывается последняя начатая тренировка. Это т

пункт меню всегда выбран по умолчанию при перехо де в меню пользователя. Он позво -

ляет открывать последнюю тренировку всего о дним нажатием.

Этот пункт меню включает все имеющиеся варианты тренировок, доступные для вашей

беговой дорожки KETTLER T rack. Некот орые варианты могут быть специфическими для

конкретного испо лнения дорожки, их дополнительное описание мо жно найти в руко -

Этот к онфигуратор тренировок позволяет предельно прос то настраивать индивидуаль -

ные тренировки. Подробнее об этом см. в разделе «Со здать новую тренировку».

В этом пункте меню о тображаются личные общие показатели, данные ваших последних

тренировок, а также лучшие показа тели на 3 км, 5 км и 10 км.

Меню персональных настроек позво ляет вводить все персональные настройки пользо -

вателя (например, изменять во зраст или уровень сложности тренировки). Изменения,

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

Для соединения с нагрудным ремнем, планшетом или ПК

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

соединения с нагрудным ремнем KETTLER Smart на базе технологии Bluet ooth® с низким потре -

блением электроэнергии. Кроме тог о, эта беговая дорожка KETTLER по зволяет подключаться к

смартфонам, планшетам или ПК чере з Bluetooth v4.0, обеспечивая дополнительные возмо жности

тренировки за счет работы с различными спортивными программами и прило жениями.

Короткое нажа тие кнопки Bluetooth открывает меню настройки Bluetooth для подключения датчика

пульса к индикации показателей тренировки. Завершит е операцию выбора найденных датчиков

с помощью клавиш < >. Кроме того, чере з этот пункт меню можно удалить по дключенный датчик.

Недавно я решился на очень странную для себя покупку. Да, я купил себе беговую дорожку.


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

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

Как обычно, моё повествование и в виде традиционной текстовой статьи, и посредством видео. Кому как больше нравится.

Видео

Статья

Конструкция

Ещё в момент, когда я собирал беговую дорожку, я заметил, что пульт и само беговое полотно соединяют всего-навсего четыре провода. Судя по всему, часть из них используется для питания пульта, ведь к сети 220 вольт подключается само полотно, а остальные провода нужны для передачи контрольных сигналов в обратную сторону — от пульта к полотну, они управляют скоростью и углом наклона дорожки.

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

В итоге выяснил, что всё примерно так, как я и предполагал. Один из проводов — это земля, и ещё один — питание 12 вольт. Остальные передают цифровые данные.

В одном из них сигнал меняется при переключении скорости и угла наклона. Это именно то, что мне нужно! Амплитуда сигнала — около четырёх вольт. Только вот протокол не похож на что-то стандартное, и сигнал ну очень шумный, когда дорожка включена, надо его как-то фильтровать.


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

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

Сборка устройства

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

Для понижения напряжения я сейчас использую вот такие вот готовые платы с DC-DC конвертером. Они стоят какие-то копейки, выдерживают до пары ампер, а выходное напряжение настраивается крутилкой.


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

Для фильтрации помех на линии данных я сделал обычный RC-фильтр: резистор на 2.2 килоома и конденсатор на 22 пикофарада. Это должно отфильтровать высокочастотные помехи, оставив низкочастотный сигнал.

Получилась достаточно маленькая платка.


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


Модуль ядра

Однако, так просто работоспособность железа не проверить. Как мы увидели
ранее на осциллографе, сигналы идут очень быстро, а у нас используется не микроконтроллер, а одноплатный компьютер Omega2 с Linux на борту. Под Linux мы не сможем так быстро обрабатывать сигналы из юзерспейса. А вот из ядра сможем! Поэтому самое время написать модуль ядра Linux!

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

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

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


Вскоре стало ясно, что сигналы кодируются длительностью высокого уровня. Он то длиною в 600 микросекунд, то в 1200 микросекунд. Низкий же уровень всегда длиною 600 микросекунд кроме начальной последовательности.

Всего получается 17 таких таких перепадов вниз-вверх. Судя по всему, это 16 бит данных плюс начальная последовательность. Я сделал их декодирование, взяв за основу, что длинные высокие перепады — это логический ноль, а короткие — логическая единица и вывел то, что получилось. Сразу стало видно необходимые мне данные!


16 бит — это, как известно, два байта. Первый байт говорит о типе передаваемых данных: угол наклона или скорость, а второй байт — сами данные. Драйвер получается предельно простой.

Единственным параметром драйвера является номер порта.


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


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


Фишка в том, что если таймер всё-таки сработает, значит перепадов уровня на пине не было достаточно давно, а соответственно пора обработать собранную информацию. В функции, которую вызывает таймер, проверяется, что было ровно 34 перепада, после чего смотрим, какой длительности был каждый интервал. Если там то 600 микросекунд, то 1200 микросекунд, то возьмём за границу 900. Если интервал меньше, то пишем в результат единицу, сдвигая его на один бит. После обработки каждого интервала, отправляем результат в открытые псевдофайлы, передавая таким образом данные в юзерспейс.

Сервер на Python и определение скорости

Дальше остаётся написать скрипт на Python, который будет читать их из псевдофайла и отправлять по сети уже в виде JSON строки. Казалось бы, тут всё достаточно прямолинейно. Однако, если с углом наклона всё просто, и значение во втором байте точно соответствует углу наклона в процентах, то со скоростью всё оказалось гораздо запутаннее.

Значение 9 соответствует одному километру в час, а значение 160 соответствует 18 километрам в час. То есть зависимость данных от реальной скорости совсем не очевидная. Я выписал все значения вручную, вбил их в Excel, построил график и получил весьма неровную кривую.


Причём есть скорости, когда показания на пульте разные, а данные и скорость самой дорожки остаются одинаковыми! Например, 5.2 км/час и 5.3 км/час — это на самом деле одинаковые скорости. Везде обман. Интересно, какая там скорость на самом деле? Замерить бы как-то, но оставлю это на потом.

Если не считать этого перевода попугаев в километры в час, то скрипт получился предельно простым. Читаем данные из псевдофайла Linux, декодируем, принимаем подключения по сети и передаём данные подключившимся по сети клиентам в виде JSON строки.


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

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


Как известно, металл экранирует радиосигнал, поэтому Wi-Fi антенну я вынес наружу трубы, но под пластмассовый кожух, который прячет провода.


На этом непосредственно “умная” беговая дорожка уже готова. Она уже умеет раздавать статистику по сети. Осталось только написать для неё клиент!

Клиент на Android

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

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

Датчик пульса

Самым сложным внезапно оказалась работа с датчиком пульса. Обнаружилось множество подводных камней. Есть у меня вот такой вот нагрудный пульсометр:


Я им уже давно пользуюсь, когда катаюсь на велосипеде. Он вполне стандартный, работает по BLE а-ля Bluetooth Low Enegy, без проблем спаривается и с телефоном, и с навигатором от Garmin. Я и подумать не мог, что работать с ним из своего приложения будет так неочевидно. У подобных датчиков есть стандартные GUID идентификаторы для разных показаний.

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

Samsung Health SDK

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

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

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

Все эти данные нужно корректно сохранить и подготовить. Некоторые надо вычислить.

Подсчет высоты

Например, высота подъёма. От беговой дорожки нам известен угол подъёма в каждый момент времени, который измеряется в процентах. Процент угла высоты — это отношение пройденного расстояния к подъёму. Выходит, вертикальная скорость равна обычной скорости умноженной на уклон в процентах и деленной на сто. Зная вертикальную скорость мы можем подсчитать текущую высоту в каждый момент времени. В результате её нужно занести в текущие координаты, несмотря на то, что во время упражнения они не меняются и не учитываются.
В ответ на эти данные приложение Samsung Health будет показывать, на сколько я якобы поднялся, а также вертикальную скорость в каждый момент тренировки.

Подсчёт калорий

Но как считать калории? Причём подсчёт калорий является обязательным для Samsung Health. При этом сожжённые калории — это ну очень неточный показатель, который зависит от множества самых разных факторов. Не уверен, есть ли смысл в их подсчёте.

Я мог бы задавать свой вес вручную, но раз уж мы работаем с Samsung Health, я могу брать свой текущий вес оттуда. Ведь я использую умные весы от Xiaomi, которые синхронизируются с Google Fit у меня на телефоне, Google FIt через отдельное приложение синхронизируется с Samsung Health, Samsung Health через облако синхронизируется с собой же на планшете, где его получает уже моё приложение.

Внешний вид приложения

Визуально у приложения задача — это крупно отображать основные показания: скорость, угол, пульс, расстояние, калории. Лучше делать это белым цветом на чёрном фоне, чтобы расход заряда аккумулятора при использовании AMOLED экрана был минимальным, ведь мы конечно же указываем, что при отображении нашего активити экран должен быть включен постоянно.


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

И конечно же надо сделать поддержку режима “картинка в картинке”. Делается это всего в несколько строк. Надо просто указать в манифесте, что активити поддерживает этот режим, а в коде переходить в него при сворачивании приложения. В результате можно смотреть, например, YouTube и видеть в уголке экрана показания беговой дорожки. Получилось очень удобно.

Но на этом этапе меня окончательно настигла боль разработчика под Android, ведь у меня уже получается четыре разных размера экрана: телефон и планшет в обычном режиме и они же в режиме “картинка в картинке”. И так получилось, что если я подбираю нормальный размер шрифтов под один размер экрана, то в других случаях всё то слишком мелко, то слишком крупно.

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

Результат

И вот результат. Открываем приложение, ждём соединения с беговой дорожкой и датчиком пульса, запускаем тренировку и пользуемся беговой дорожкой как обычно.
По окончании тренировки останавливаем беговую дорожку. По достижении нулевой скорости появится кнопка “завершить тренировку”. Нажимаем её, и статистика отправляется в Samsung Health. Открываем его и видим все данные.




Можно посмотреть график пульса, скорости и подъёма, сравнить свои успехи в разные промежутки времени, всё это хранится в облаке и доступно со всех устройств.

Можно и с Google Fit это синхронизировать. Красота. Я доволен результатом. Теперь главное — не забрасывать занятия. Можно добавить в функционал приложения, чтобы оно напоминало о тренировках, если я долго ленюсь. Но эту функцию мне делать уже лень.

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