Я давно люблю кататься на велосипеде, но в последний год меня заинтересовало не только катание как таковое, но и улучшение моих результатов, в спортивном плане. Изучая всевозможные методики, планы тренировок и вспомогательные средства, почти каждый раз все упиралось в необходимость (ну или по крайней мере огромную пользу) для тренировок такого устройства как Power meter.


И я решил собрать такой...

Для чего нужен мощномер?
Это устройство измеряет мощность, которую вы прикладываете к педалям. Знание мощности сильно помогает в тренировках: можно отслеживать свой прогресс во времени, он позволяет точно понимать, какое усилие вы прикладываете при езде — и это вы сейчас так медленно едете потому что плохо выспались, или в действительности дорога идет в горку? И дает множество других полезных возможностей.

Зачем делать мощномер самому, вместо покупки?
1 — цена на существующие образцы просто чудовищна, наиболее дешевые образцы стоят 600 американских денег (а в среднем около 1000), не включая доставку, растаможку и head unit (экранчик/компьютер, который и отображает данные, что будет стоить еще не менее 100 долларов)
2 — потому что мне интересно что-то конструировать и смотреть как это работает :)

Итак, приступим

Принцип действия
Есть много вариантов измерить мощность, я выбрал один из них: измерять изгиб шатуна от давления ноги на педаль.

Материальная база
Я долго искал, какой же чувствительный элемент доступен и можно использовать в таком устройстве? Рассматривались разные варианты — оптические датчики, пьезодатчики, измерение частоты передаваемого звука, но пришел к выводу, что проще всего будет использовать мостовой датчик нагрузки. Начав искать, где же его можно приобрести, пришел к неутешительному выводу, что либо дорого, либо заказывать в Китае и ждать от двух недель до двух месяцев. Но лазя по одной местной доске объявлений, нашел предложение по продаже весов с точностью 0.01 грамм и совсем не за дорого. Я не был еще уверен, что в весах именно такой датчик, но заказал все равно.


Разбирать было очень жалко, хоть они и стоят недорого

Вскрыв весы, я обаружил в них именно то, что искал, мостовой датчик нагрузки!



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


Действительно, работает!

Поскольку в весах все электронные компоненты оказались под одной «каплей», то весь электронный обвес нужно было искать и делать самому.
Список деталей, который я выбрал:
1 — усилитель датчика веса HX711 — к нему подключается мостовой датчик, на выходе получаем некоторое значение, уже в цифровом виде, удобно для обработки
2 — датчик каденса — геркон, — нужен для измерения скорости вращения педалей, так как просто измерить приложенное усилие к педелям не достаточно, чтобы измерить мощность, нужно знать и частоту вращения
3 — передатчик, bluetooth модуль HC-05, для передачи данных на компьютер или телефон
4 — контроллер Arduino nano — мозги устройства, обрабатывают поступившие с усилителя и геркона данные, отправляют на передатчик
5 — питание — так как все модули требуют питания 5В, нужен источник питания и преобразователь, источником было решено взять батарейный отсек от весов, с которых был снят и дачик нагрузки

Собрав все вместе я получил следующую картину

Нда, и как это все поместить на педаль?

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

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


Получилось так, неказисто, но ездить не мешает.

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


Нанокалибратор

Данные нагрузки сразу передавались на компьютер, с помощью чего я нашел соответствие сигнала и приложенного усилия:

Нелинейность сигнала возникает из-за того, что шатун не только прогибается под нагрузкой, но еще и закручивается

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


А это точно интерфейс айфона 7?

Итак, что же мы видим на интерфейсе?
Большие цифры сверху и есть мощность, на одну сторону (помните, у нас датчик только на левом шатуне?), поэтому для полной мощности нужно умножить на 2. Кстати формула мощности: N = момент * угловую скорость, в программе она так и считается.
kad — каденс
kilos — давление на педаль, в килограммах

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

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

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

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

Спасибо за внимание!
Код для ардуино
Код для студии

Комментарии (30)


  1. Meklon
    24.01.2016 16:29
    +3

    Изолента не того цвета) а вообще очень круто.


    1. Meklon
      24.01.2016 16:30
      +1

      У меня ещё мелькали странные мысли о герметичных ректальных датчиках температуры для регистрации нагрева ядра, но как-то негуманно.


      1. Meklon
        24.01.2016 17:02

        Тут интересно измерить нагрев мышцы работающей. И вообще повышение температуры тела.


        1. wormball
          24.01.2016 18:03

          Интереснее было бы измерить фактическое количество затрачиваемой организмом энергии и сравнить с той мощностью, которая передаётся на колесо. Но это, видимо, делается разве что намордником, а в наморднике — датчик СО2 и ультразвуковой анемометр.


          1. Meklon
            24.01.2016 19:31

            Не подумал про углекислый газ. Это действительно наиболее объективный параметр сожжённого «топлива»


            1. 0lympian
              25.01.2016 00:26

              Не совсем, у человека есть как аэробный, так и анаэробный энергетический цикл (последний — преимущественно при кратковременных «взрывных» нагрузках).


              1. wormball
                25.01.2016 15:57

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

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


                1. Meklon
                  25.01.2016 18:16

                  Нагрев? Причём глубоких слоёв в области ядра. Так что ректальный датчик.


          1. uazure
            25.01.2016 13:37

            Так КПД мышц и так +- известен: 20%. Так что мощность на валу поделите на 20% кпд и получите затраты организма на педалирование. Ну и еще какая-то часть органов тоже чего-то потребляет.


            1. wormball
              25.01.2016 15:09

              Ну так же можно обо всём чём угодно сказать. Мощность человека тоже приблизительно известна — нафик её измерять? Расстояние известно, время тем более — нафик спидометр? Время можно по солнцу определять, темно или светло — нафик часы? Стол понятно, что не длиннее комнаты — нафик его ещё рулеткой мерять? Ну и т. п. В общем, глупость вы сейчас редкостную сказали.


  1. wormball
    24.01.2016 16:39
    +3

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

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

    Клеят их на эпоксидку вроде как.

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

    (ВЛ — НЛ) — (ВП — НП) = ВЛ + НП — НЛ — ВП

    , где ВЛ — напряжение на верхнем левом резисторе и т. п.

    Ну так вот, а у вас-то получается, что ваш датчик должен изгибаться, и означенная величина при этом меняется незначительно. А мерять по-хорошему надо величину ВЛ + ВП — НЛ — НП. То бишь резисторы надо соединять отнюдь не так, как в весах, а совсем по-другому. Судя по тому, что вы об этом моменте ни словом не обмолвились, резисторы у вас соединены как в весах, и отсюда, скорее всего, и проистекает вся неточность и нелинейность, а шатун не виноват. Я бы сказал, вообще чудо, что ваш датчик что-то показывает.

    Я бы вообще отколупал тензорезисторы с алюминия (хотя не уверен, что получится) и наклеил бы их прямиком на шатун с двух сторон.


    1. uterr
      24.01.2016 16:47

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


      1. wormball
        24.01.2016 17:56

        Да я сам это исключительно в устном виде слышал. Но в общем-то там всё просто. Нарисуйте и всё сразу станет ясно. Вот вроде какая-то статья: http://kyowa.ru/primenenie/oblasti-primeneniya-tenzorezistorov/detalnaya-informatsiya-rukovodstvo-po-applikatsii-tenzorezistoro.html


      1. spiritus_sancti
        24.01.2016 18:00

        Если использовать реально — нужно очень аккуратно работать с температурой — тензодатчки сильно на нее реагируют. Я для демонстрации студентам делал тензосопротивление 150*80 мм с кучей дорожек 0,3 мм. Оно от сильного изгиба (на стеклотекстолите, почти на 30 градусов отклонял в обе стороны защемив один конец в тисках) меняло сопротивление на почти 1 Ом. А от тепла руки ползло гораздо веселее) Термоклей вообще не вариант, только на болты прикручивать.
        Можно пойти другим путем — добавить ролик -натяжитель цепи с пружиной, и измерять натяжение цепи, которое косвенно пересчитывать в мощность.


        1. wormball
          24.01.2016 18:08
          +1

          > аккуратно работать с температурой

          Ну вот в том числе для компенсации температуры и нужен мост Уитстона. Ибо ежели мы берём четыре одинаковых резистора, они с температурой будут приблизительно одинаково себя вести, и разность почти не изменится.


          1. spiritus_sancti
            24.01.2016 18:20

            о фото не видно какой там мост. Меня терзают смутные сомнения что там в весах жестко прошита калибровка при включении и предполагается что за время взвешивания не меняется температура. Я бы поискал промышленные измерительные датчики (гуглить load cell) и подобрал такой который можно прикрутить вместо куска шатуна.


            1. wormball
              24.01.2016 18:38

              > о фото не видно какой там мост

              Я готов на что угодно спорить, что такой, как я сказал.

              > предполагается что за время взвешивания не меняется температура

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

              > промышленные измерительные датчики

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

              > прикрутить вместо куска шатуна

              Месье знает толк в извращениях.


        1. wormball
          25.01.2016 15:28

          > добавить ролик -натяжитель цепи с пружиной, и измерять натяжение цепи

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

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


      1. wormball
        25.01.2016 11:09

        > нелинейность возникает и из-за скручивания тоже

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

        > пробовал прикладывать крутящее усилие к шатуну и это сразу отражалось на сигнале

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


  1. Meklon
    24.01.2016 17:00

    image

    А вот такие датчики тут неуместны?


    1. wormball
      24.01.2016 17:43
      +1

      А это вообще что и где это дают? И не отсохнет ли большой палец?


    1. uterr
      24.01.2016 18:11
      +1

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


  1. Scratch
    24.01.2016 17:30

    Эх, сравнить бы с дорогими, интересна погрешность в пересчете на сэкономленный доллар


  1. Manowar
    24.01.2016 23:00

    1. если прикрутить датчик намертво к шатуну, то при нагреве конструкцию будет ощутимо перекашивать из-за разного теплового расширения. Понятия не имею как решать эту проблему. Надо или систему пазов, или датчики на всех сторонах шатуна или делать калибровку во всем диапазоне температур.
    2. как я понимаю, вы откалибровали датчик при нагрузке перпендикулярной шатуну в продольной плоскости велосипеда. Но при реальной езде нагрузки будут разные, например если стать всем весом на полностью опущенную педаль, или попрыгать обеими ногами на обеих педалях.
    3. снимать данные надо и со второго шатуна, ноги то разные.
    4. система калибруется под конкретный велосипед

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

    Так что не все так просто с коммерческими системами.


    1. MaksVasilev
      25.01.2016 09:14
      +1

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

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

      3. Только если мы хотим добиться погрешности сопоставимой с коммерческими системами, что вряд ли возможно здесь. Обычно разница в балансе мощностей не превышает 2-3%, в редких случаях 5%, при чём 5% можно наблюдать только у мощных спринтеров на высоких уровнях мощности из-за возможных разных физиологических особенностей ног или посадки. У профиков эта разница специально измеряется и обычно компенсируется поиском оптимального расположения шипа на туфлях для каждой ноги отдельно с учётом завалов стопы внутрь и наружу.

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


  1. MaksVasilev
    25.01.2016 09:04

    Скорее всего, у именитых производителей цены так задраны из-за отсутствия спроса, на мой взгляд...

    Как раз наоборот, у большинства производителей именитых поверметров цены задраны из-за наличия постоянного и неизменного спроса. Я бы сравнил это с ценами на жильё в Москве, сколько цены не поднимай, всё равно покупательский спрос не сильно падает в среднесрочной и долгосрочной перспективе. Поскольку поверметр — единственное достоверное измерение эффективности велосипедиста и единственный способ измерить объективный уровень спортсмена, то спрос на него в профессиональном и средне-верхнем любительском сегменте никогда не исчезнет.

    Про техническую часть.

    1) Совершенно не понятно, зачем вы измеряет каденс герконом, когда сам датчик мощности — это уже гораздо более точный измеритель каденса, по нему можно не только факт оборота педалей определить, но и уровень мощности по всей круговой диаграмме приложения силы. Как бы вы идеально не крутили, мощность в любом случае будет иметь фазу максимума у которой будет своё начало и конец. Ненадёжный геркон здесь совершенно лишний. По смещению фазы приложения сигнала, такие поверметры как Garmin определяют положение велосипедиста — стоя или сидя (хотя момент вставания с седла и ускорения стоя определяет с запаздыванием на 1-2 оборота, из-за чего пик мощности по мнению гарминовского поверметра приходится на положение сидя, что не верно)

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


    1. uterr
      25.01.2016 11:34

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

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


  1. Serenevenkiy
    25.01.2016 10:07

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


    1. maxutin
      25.01.2016 11:48

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


  1. espirit
    25.01.2016 16:46

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