Оглавление:

Простой дисплей эргометра на базе Arduino с дифференциальной обратной связью: 7 шагов (с изображениями)
Простой дисплей эргометра на базе Arduino с дифференциальной обратной связью: 7 шагов (с изображениями)

Видео: Простой дисплей эргометра на базе Arduino с дифференциальной обратной связью: 7 шагов (с изображениями)

Видео: Простой дисплей эргометра на базе Arduino с дифференциальной обратной связью: 7 шагов (с изображениями)
Видео: Сборка эллиптического эргометра bronze E1001 PRO 2024, Июль
Anonim
Простой дисплей эргометра на базе Arduino с дифференциальной обратной связью
Простой дисплей эргометра на базе Arduino с дифференциальной обратной связью
Простой дисплей эргометра на базе Arduino с дифференциальной обратной связью
Простой дисплей эргометра на базе Arduino с дифференциальной обратной связью
Простой дисплей эргометра на базе Arduino с дифференциальной обратной связью
Простой дисплей эргометра на базе Arduino с дифференциальной обратной связью

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

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

Если это звучит немного абстрактно, перейдите к шагу 7, чтобы узнать, что будет показано на завершенном экране

Еще одна цель этого проекта - сделать вещи действительно простыми и дешевыми. В зависимости от того, где вы заказываете свои детали, вы можете завершить этот проект примерно за 5 долларов (или около 30 долларов при заказе у отечественных продавцов премиум-класса), и, если вы уже играли со средой Arduino, есть довольно хороший шанс, что вы уже иметь большинство или все необходимые детали.

Шаг 1: Список деталей

Список запчастей
Список запчастей

Пройдемся по списку того, что вам нужно:

Микропроцессор, совместимый с Arduino

Практически любой Arduino, проданный за последние несколько лет, подойдет. Точный вариант (Uno / Nano / Pro Mini, 8 или 16 МГц, 3,3 или 5 В) значения не имеет. Однако вам понадобится процессор ATMEGA328 или лучше, потому что мы будем использовать почти 2 КБ ОЗУ и 1 КБ EEPROM. Если вы знакомы с тонкостями мира Arduino, я рекомендую использовать Pro Mini на 3,3 В, так как он будет самым дешевым и наиболее экономичным. Если вы (относительно) новичок в Arduino, я рекомендую «Nano», поскольку он обеспечивает ту же функциональность, что и «Uno», в меньшем и более дешевом корпусе.

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

128 * 64 пикселей SSD1306 OLED-дисплей (вариант I2C, т.е. четыре контакта)

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

  • "Макетная плата без пайки" и перемычка для создания вашего прототипа.
  • Керамический конденсатор 100 нФ (может понадобиться, а может и не понадобиться; см. Шаг 4)
  • Либо зажимы под крокодила, либо магнит, геркон и кабель (см. Шаг 4).
  • Красный и зеленый светодиоды, каждый (необязательно; см. Шаг 5)
  • Два резистора 220 Ом (при использовании светодиодов)
  • Кнопка (также необязательно)
  • Подходящий аккумулятор (см. Шаг 6)

Шаг 2: Подключение дисплея

Подключение дисплея
Подключение дисплея

Первым делом мы подключим дисплей к Arduino. Доступны подробные инструкции. Однако SSD1306 действительно легко подключить:

  1. Display VCC -> Arduino 3.3V или 5V (подойдет любой)
  2. Показать Gnd -> Arduino Gnd
  3. Показать SCL -> Arduino A5
  4. Дисплей SCA -> Arduino A4

Затем в среде Arduino перейдите в Sketch-> Включить библиотеку-> Управление библиотеками и установите «Adafruit SSD1306». К сожалению, вам придется отредактировать библиотеку, чтобы настроить ее для варианта 128 * 64 пикселей: найдите папку «библиотеки» Arduino и отредактируйте «Adafruit_SSD1306 / Adafruit_SSD1306.h». Найдите "#define SSD1306_128_32", отключите эту строку и вместо этого включите "#define SSD1306_128_64".

На этом этапе вы должны загрузить Файл-> Примеры-> Adafruit SSD1306-> ssd1306_128x64_i2c, чтобы проверить, правильно ли подключен ваш дисплей. Обратите внимание, что вам, возможно, придется изменить I2C-адрес. 0x3C, по-видимому, является наиболее распространенным значением.

В случае возникновения проблем обратитесь к более подробным инструкциям.

Шаг 3. Загрузите эскиз

Если до сих пор все работало, пришло время загрузить фактический скетч на ваш Arduino. Вы найдете копию эскиза ниже. Для потенциально более свежей версии обратитесь к странице проекта github. (Поскольку это эскиз из одного файла, достаточно просто скопировать файл erogmetrino.ino в окно Arduino).

Если вам пришлось изменить адрес I2C на предыдущем шаге, вам придется сделать то же самое, снова, сейчас, в строке, начинающейся с «display.begin».

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

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

Шаг 4: Подключение эргометра

Подключение эргометра
Подключение эргометра

Этот шаг нельзя описать универсально, поскольку не все велоэргометры одинаковы. Однако и они не все разные. Если в вашем эргометре вообще есть электронный дисплей скорости, он должен иметь электронный датчик для определения оборотов педалей или какого-либо (возможно, внутреннего) маховика где-нибудь. Во многих случаях это будет просто магнит, проходящий рядом с герконом (см. Также ниже). Каждый раз, когда магнит проходит, переключатель замыкается, сигнализируя об одном обороте на дисплее скорости.

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

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

Подключите два провода (ваш собственный или от существующего датчика) к Arduino Gnd и к контакту D2 Arduino. Если он у вас есть под рукой, также подключите конденсатор 100 нФ между контактом D2 и Gnd для некоторого «дребезга». Это может потребоваться, а может и не потребоваться, но помогает стабилизировать показания.

Когда все будет готово, пора включить Arduino и сесть на велосипед для первого быстрого теста. Число вверху слева должно начать показывать показатель скорости. Если это не сработает, проверьте всю проводку и убедитесь, что магнит находится достаточно близко к геркону. Если показатель скорости постоянно кажется слишком высоким или слишком низким, просто отрегулируйте определение «CM_PER_CLICK» в верхней части эскиза (примечание: в эскизе используются имена показателей, но единицы измерения нигде не отображаются и не сохраняются, поэтому просто проигнорируйте это, и предоставлять 100 000 долей мили за клик).

Шаг 5. Дополнительные светодиоды быстрого состояния

Дополнительные светодиоды быстрого состояния
Дополнительные светодиоды быстрого состояния

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

  • Подключите первый (красный) светодиод к контакту D6 (более длинная ножка светодиода идет к Arduino). Подключите короткую ножку светодиода к Gnd через резистор 220 Ом. Этот светодиод загорается, когда ваша скорость на 10% или более ниже вашей максимальной скорости на текущем этапе тренировки. Пора приложить еще немного усилий!
  • Подключите второй (зеленый) светодиод к контакту D5, снова с резистором к Gnd. Этот светодиод загорается, когда вы находитесь в пределах 1% или выше от вашего наилучшего пробега. У тебя все хорошо!

Вы хотите, чтобы светодиоды загорались в зависимости от того, как вы себя чувствуете по сравнению с предыдущим пробегом, или какой-то произвольной средней скорости? Ну, просто подключите кнопку между контактом D4 и Gnd. Используя эту кнопку, вы можете переключать эталон между «вашим лучшим пробегом», «вашим предыдущим пробегом» или «вашей текущей скоростью». Маленькая буква «P» или «C» в нижнем левом углу будет обозначать два последних режима.

Шаг 6. Включение дисплея эргометра

Питание дисплея эргометра
Питание дисплея эргометра

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

  1. При использовании Arduino Uno или Nano вы, вероятно, захотите запитать его от USB-блока питания со встроенной индикацией низкого заряда батареи.
  2. При использовании Arduino Pro Mini @ 3,3 В (моя рекомендация для опытных пользователей) вы можете питать его напрямую от одной LiPo батареи или трех NiMH-элементов. Поскольку ATMEGA выдерживает напряжение питания до 5,5 В, вы можете подключить его к «VCC / ACC» напрямую, минуя встроенный регулятор напряжения. В этой настройке также будет предупреждение о «низком заряде батареи» при напряжении около 3,4 В без какого-либо дополнительного оборудования (отображается в правом нижнем углу). Поскольку можно ожидать, что ATMEGA будет работать правильно, по крайней мере, до 3,0 В или около того, у вас должно остаться достаточно времени, чтобы закончить тренировку перед подзарядкой.

Шаг 7. Использование дисплея эргометра

Использование дисплея эргометра
Использование дисплея эргометра
Использование дисплея эргометра
Использование дисплея эргометра

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

Следующая строка - это ваша средняя скорость с начала тренировки (слева) и время с начала тренировки (справа). Обратите внимание, что отсчет времени останавливается, когда велосипед остановлен.

Пока все тривиально. Две дальнейшие строки с правой стороны - это то, где становится интересно: они сравнивают ваше текущее время с вашей предыдущей и лучшей тренировкой соответственно. Т.е. "- 0:01:23" в верхней из этих строк будет означать, что вы достигли своего текущего расстояния на 1 минуту и 23 секунды раньше, чем при предыдущем беге. Хороший. Нижняя линия «+ 0:00:12» будет означать, что до текущей точки вы отстаете на 12 секунд от своего лучшего результата. (Обратите внимание, что эти разницы во времени не будут точными на 100%. Моменты времени сохраняются каждые 0,5 км / мили и интерполируются между ними.) Конечно, при первом пробеге привязка времени еще не была записана, и поэтому в обеих приведенных выше строках будет отображаться просто «-: -: -».

Наконец, в левой нижней части дисплея отображается график вашей скорости за последнюю минуту. Это позволяет сразу увидеть, двигаетесь ли вы устойчиво или замедляетесь. (Обратите внимание, что эта линия будет намного более плавной в реальной тренировке - но просто нелегко поддерживать постоянный темп при попытке сделать снимок …) Горизонтальные линии показывают предыдущую / лучшую скорость, которую вы достигли около текущей точки вашего предыдущего тренинги.

Светодиодные индикаторы, расположенные в верхней части, сравнивают вашу текущую скорость с вашей максимальной скоростью на этом этапе тренировки. Зеленый цвет показывает, что вы находитесь в пределах 1% от своих лучших результатов, красный - более чем на 10% медленнее, чем ваш лучший результат. Когда вы видите красный свет, пора приложить еще немного усилий. Обратите внимание, что, в отличие от описанной выше разницы времени, они относятся только к текущей части тренировки, т.е. возможно, вы отстаете по абсолютному времени, но зеленый цвет показывает, что вы догоняете, и наоборот.

Эталонную скорость, используемую для двух светодиодов, можно изменить с помощью кнопки. Одно нажатие переключит его с лучшего на предыдущую записанную тренировку (маленькая буква «P» появится в нижнем левом углу). Еще одно нажатие, и ваша текущая скорость на момент нажатия кнопки станет новой опорной скоростью (отобразится маленькая буква «C»). Последнее особенно полезно во время вашей первой тренировки с новым дисплеем велоэргометра, когда контрольный показатель еще не был записан.

По окончании тренировки просто отключите аккумулятор. Ваше обучение уже было сохранено во внутренней EEPROM вашего Arduino.

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

Рекомендуемые: