Мой самодельный велокомпьютер на Arduino Nano

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

Функции моего самодельного велокомпьютера:

  • измерение и отображение пройденного пути;
  • измерение и отображение текущей скорости и тенденции ее изменения;
  • измерение и отображение средней скорости;
  • измерение и отображение пиковой скорости;
  • измерение и отображение времени пути;
  • автоматическое отключение индикации при остановке и автоматическое включение индикации при начале движения;
  • возможность изменения яркости свечения индикатора;
  • возможность перевода в режим "сна" и пробуждения из него.

Мой велокомпьютер на основе Arduino Nano содержит три основных части:

  • датчик оборотов;
  • модуль обработки и индикации;
  • модуль питания.

Датчик оборотов

Датчик оборотов предназначен для регистрации оборотов колеса велосипеда. Он содержит геркон:
геркон велокомпьютер
Я закрепил геркон (1) на раме велосипеда, а постоянный магнит (2) - на спицах колеса:
геркон велокомпьютера
При вращении колеса в течение каждого оборота магнит проходит возле геркона, и магнитное поле магнита вызывает замыкание контактов геркона.

Модуль обработки и индикации

Модуль обработки и индикации предназначен для приема информации от датчика оборотов, ее обработки и вывода результатов обработки на индикатор:

внешний вид:
самодельный велокомпьютер

внутренности:
велокомпьютер на Arduino

схема:
схема самодельного велокомпьютера

Модуль принимает информацию от датчика оборотов (контакт геркона подключен к выводу D8 Arduino) и обрабатывает ее с учетом диаметра колеса (у моего велосипеда D = 2,06 м (50-559)).

Я использовал трехразрядный семисегментный светодиодный индикатор с общими катодами (от цифрового вольтметра):

вывод 1 2 3 4 5 6 7 8 9 10 11
функция e d dp c g b катод III катод II f a катод I

Катоды разрядов индикатора подключены к выводам Arduino  через токограничивающие резисторы сопротивлением 1 кОм (затем я заменил их для повышения яркости свечения на 270 Ом):
катод I -  к A1,
катод II -  к A2,
катод III -  к A3.

Подача "1" на вывод, подключенный к катоду разряда, гасит соответствующий разряд индикатора.

Аноды сегментов подключены к выводам Arduino:
сегменты LED индикатора

Arduino D0 D1 D2 D3 D4 D5 D6 D7
сегмент a b c d e f g dp

Подача "1" на вывод, подключенный к аноду сегмента, зажигает соответствующий сегмент включенного разряда индикатора.

На индикаторе могут отображаться:

пройденный путь (англ. trip distance), км
велокомпьютер индикатор
текущая скорость движения (англ. current speed), км/ч
велокомпьютер скорость
(положение черточки в первом разряде показывает соотношение текущей и средней скоростей:
вверху - текущая скорость больше средней;
посередине - текущая скорость равна средней;
внизу - текущая скорость меньше средней
средняя скорость движения (англ. average speed), км/ч
велокомпьютер измерение скорости
пиковая скорость движения (англ. maximum speed), км/ч
велокомпьютер максимальная скорость
время в пути, ч.мм
велокомпьютер времясамодельный велокомпьютер
(точка мигает)

Для наглядного отображения текущей скорости движения велосипеда я применил линейку из восьми светодиодов, катоды которых через токоограничивающие резисторы сопротивлением 390 Ом подключены к выводу A0 Arduino, а аноды - параллельно сегментам индикатора:
1 - зеленый - скорость 5...10 км/ч - вывод Arduino D0
2 - зеленый - скорость 10...15 км/ч - вывод Arduino D1
3 - зеленый - скорость 15...20 км/ч - вывод Arduino D2
4 - желтый - скорость 20...25 км/ч - вывод Arduino D3
5 - желтый - скорость 25...35 км/ч - вывод Arduino D4
6 - красный - скорость 35...50 км/ч - вывод Arduino D5
7 - красный - скорость 50...70 км/ч - вывод Arduino D6
8 - красный - скорость более 70 км/ч - вывод Arduino D7

На боковой грани модуля расположены кнопки управления, подключенные к выводам Arduino - черная - к D9, зеленая - к D11:
велокомпьютер своими руками

Пьезодинамик подключен к выводу D10 Arduino.

На боковой грани модуля расположены выключатель для подачи питания (напряжение 5 В) от выхода преобразователя модуля питания, индикаторный светодиод и разъем miniUSB для программирования Arduino:
велокомпьютер на Arduino

Индикаторный светодиод подключен через токоограничивающий резистор сопротивлением 2 кОм к выводу D13 Arduino.

Корпус модуля стянут нейлоновыми стяжками.

Модуль питания

Модуль питания предназначен для электропитания модуля обработки и индикации:
как сделать велокомпьютер

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

Я использовал аккумуляторы от батареи ноутбука:
аккумуляторы велокомпьютера
Для заряда аккумуляторов их контакты подключены к выведенным наружу корпуса винтовым зажимам. Полностью заряженные аккумуляторы выдают на вход преобразователя напряжение 4,23 В.

Повышающий преобразователь на микросхеме MC34063 предназначен для повышения напряжения от аккумуляторов до уровня 5 В:
преобразователь питания велокомпьютера

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

Корпус модуля стянут нейлоновыми стяжками.

Эксплуатация велокомпьютера

Я закрепил модуль обработки и индикации и модуль питания на велосипеде:
самодельный велокомпьютер

При включении питания выполняется тест индикатора:

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

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

Короткое нажатие на черную кнопку приводит к последовательному переключению отображаемой величины:

  • пройденный путь;
  • текущая скорость;
  • средняя скорость;
  • пиковая скорость;
  • время в пути.

Длительное (дольше двух секунд) нажатие на черную кнопку приводит к "засыпанию" велокомпьютера - индикатор отключается и обороты не учитываются. Для "пробуждения" необходимо нажать на любую кнопку.

Короткое нажатие на зеленую кнопку приводит к переключению уровня яркости индикатора.

Длительное (дольше двух секунд) нажатие на зеленую кнопку приводит к стиранию сохраненных показаний.

Если колесо велосипеда не вращается (оборот не фиксируется дольше 5 секунд), то индикация автоматически отключается. Для ее включения необходимо либо возобновление вращения колеса, либо нажатие на любую кнопку.

Недостатком светодиодного индикатора является плохая заметность свечения на ярком солнечном свете. Вот примеры видимости индикатора в разных случаях:
индикатор велокомпьютера
1 - в неосвещенном помещении;
2 - во время заката;
3 - в тени в солнечный день;
4 - под прямыми солнечными лучами

Продолжение следует

Яндекс.Метрика