Велосипедный спидометр на ардуино схемы

Обновлено: 04.07.2024

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

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

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

прошивка


Hex
-файл прошивки для Arduino Nano 3.0 (версия от 18 июля 2018 года) - bike.ino.eightanaloginputs.hex.
Как прошить hex-файл в плату Arduino, я описал здесь.

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

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

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

Датчик оборотов предназначен для регистрации оборотов колеса велосипеда. Я применил контактный датчик - геркон, контакты которого замыкаютя под воздействием магнитного поля постоянного магнита.

геркон велокомпьютер

Обычный геркон проявил себя ненадежно (пропускаются обороты колеса):

геркон велокомпьютера

Для улучшения фиксации оборотов я применил датчик от охранной сигнализации:

геркон велокомпьютера

Я закрепил датчик (1) на раме велосипеда, а постоянный магнит (2) - на спицах колеса:

При вращении колеса в течение каждого оборота магнит проходит возле геркона датчика, и магнитное поле магнита вызывает замыкание контактов геркона - одно замыкание на один оборот колеса велосипеда.

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

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

велокомпьютер на Arduino

внешний вид:

велокомпьютер на Arduino

схема:

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

SSD1306

Для улучшения видимости показаний и повышения информативности я применил OLED-дисплей на контроллере SSD1306 (я приобрел его на eBay):

Дисплей имеет интерфей I2C с четырьмя контактами:

контакт дисплея VCC SDA SCL GND
контакт Arduino +5V A4 A5 GND

велокомпьютер на Arduino

На дисплее отображаются:

(1) - текущая скорость движения (англ. current speed), км/ч
(2) - пройденный путь (англ. trip distance), км
(3) - средняя скорость движения (англ. average speed), км/ч
(4) - пиковая скорость движения (англ. maximum speed), км/ч
(5) - время в пути, ч.мм (двоеточие мигает)

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

Вот изображение с дисплея при остановке:

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

Для наглядного отображения текущей скорости движения велосипеда я применил линейку из восьми светодиодов, катоды которых через токоограничивающие резисторы сопротивлением 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.

велокомпьютер на Arduino

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

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

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

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

как сделать велокомпьютер

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

аккумуляторы велокомпьютера

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

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

преобразователь питания велокомпьютера

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

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

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

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

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

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

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

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

Затем велокомпьютер переходит в рабочий режим.

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

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

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

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

В этом режиме каждые 10 секунд кратковременно загорается полоска светодиодов.
Если в режиме охраны колесо велосипеда придет в движение, то подается тревожный звуковой сигнал.

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

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

При остановке на дисплее отображается соответствующий значок:

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

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


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

Что потребуется

Полный сет компонентов проекта. В сет входят:

Видеоинструкция

Как собрать


Установите Troyka Slot Shield на Iskra Neo


Поверните GLONASS/GPS на 90 градусов против часовой стрелки и вставьте в правый верхний слот.


Переверните Quad Dispaly вверх ногами и вставьте в центральный и правый слоты нижнего ряда.


Переверните тактовую кнопку на 90 градусов против часовой стрелки и вставьте в центральный верхний слот.

Скетч

Прошейте контроллер скетчем через Arduino IDE.

Хотите собрать другой девайс? Выберите своё будущее устройство из списка проектов на Slot Shield.

Самодельный велокомпьютер, или как Arduino на улицу попал

2014-07-25 в 13:07, admin , рубрики: arduino, DIY, diy или сделай сам, велокомпьютер, велосипеды, велоспорт, Гаджеты. Устройства для гиков, геркон

Самодельный велокомпьютер, или как Arduino на улицу попал


Здравствуй! Мне хотелось бы поделиться историей о создании велокопомпьютера своими руками. После покупки велосипеда я решил как-то фиксировать свой прогресс, но мобильные трекеры оказались не самым удобным решением, а из Китая ко мне уже летел заранее заказанный там BOGEER 823, что делало покупку на месте бессмысленной. Поэтому я решил попытаться сделать велокомп своими руками, заодно заложив в него основу для расширения: управление обвесом велосипеда (передний и задний свет, звонок).

Немного подготовки

Первая версия

  • Текущая скорость
  • Дистанция текущей поездки
  • Дистанция всех поездок
  • Время в поездке
  • Текущее время
  • Подсветка
  • Возможность обмена данным с компьютером через карту памяти

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

  • Arduino nano
  • Nokia 5110 LCD (синяя подсветка, через GND)
  • Распаянные часы DS1302
  • Модуль SD карт

Самодельный велокомпьютер, или как Arduino на улицу попал

Самодельный велокомпьютер, или как Arduino на улицу попал

Самодельный велокомпьютер, или как Arduino на улицу попал

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

Самодельный велокомпьютер, или как Arduino на улицу попал

Убедившись в работоспособности конструкции, я решил провести первый тест. Питание я планировал от нескольких АА батареек или аккумулятора, но в тот момент под рукой их не оказалось… Поверьте, кататься на велосипеде с ноутбуком под мышкой то ещё удовольствие.




Угадайте, почему не велосипед не едет назад?

Тестирование принесло свои плоды. Я обнаружил ошибку в логике: сигнал от геркона всегда приравнивался к обороту колеса (если прошло минимальное время на оборот). Вроде, всё правильно, но если остановиться, зафиксировав магнит напротив геркона, то программа считала, что вы едете очень быстро.

Вторая версия

Самодельный велокомпьютер, или как Arduino на улицу попал

Самодельный велокомпьютер, или как Arduino на улицу попал

Самодельный велокомпьютер, или как Arduino на улицу попал

Самодельный велокомпьютер, или как Arduino на улицу попал

Самодельный велокомпьютер, или как Arduino на улицу попал

Третья версия

Самодельный велокомпьютер, или как Arduino на улицу попал

Пришлось изменить расположение компонентов: в корпус всё влезло, но итоговый размер стал больше. В процессе перепайки пришлось заменить Arduino Nano и SD модуль: паяльником я владею так себе и часть выводов просто привёл в негодность.
Размеры: 72x50x28mm

Самодельный велокомпьютер, или как Arduino на улицу попал

Самодельный велокомпьютер, или как Arduino на улицу попал

Самодельный велокомпьютер, или как Arduino на улицу попал

Самодельный велокомпьютер, или как Arduino на улицу попал

Самодельный велокомпьютер, или как Arduino на улицу попал

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

Самодельный велокомпьютер, или как Arduino на улицу попал

Самодельный велокомпьютер, или как Arduino на улицу попал

Самодельный велокомпьютер, или как Arduino на улицу попал

Самодельный велокомпьютер, или как Arduino на улицу попал

Самодельный велокомпьютер, или как Arduino на улицу попал

Ещё пара исправлений в коде, и интерфейс был приведён к финальному (на текущий момент) виду.

Самодельный велокомпьютер, или как Arduino на улицу попал

  1. Скорость (Км/Ч)
  2. Одометр (Дистанция в метрах)
  3. Время поездки (В минутах)
  4. Текущее время (По Москве)

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

Самодельный велокомпьютер, или как Arduino на улицу попал

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

Самодельный велокомпьютер, или как Arduino на улицу попал

Самодельный велокомпьютер, или как Arduino на улицу попал

Самодельный велокомпьютер, или как Arduino на улицу попал

Самодельный велокомпьютер, или как Arduino на улицу попал

Самодельный велокомпьютер, или как Arduino на улицу попал

Самодельный велокомпьютер, или как Arduino на улицу попал

Стоимость

  • Корпус BOX-G020 — 115р
  • Эпоксилин — 95р
  • Батарейки — 60р
  • Arduino Nano — 120р
  • Nokia LCD 5110 — 102р
  • Чёрная изолента — 40р
  • SD module — 187р
  • DS1302 — 70р
  • Кейсы для батареек — 120р
  • Провода и резисторы — 80р
  • Геркон + магнит — 82р

Итого: ~1100р

Ссылки по теме

Итоги

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

  • Скорость.
  • Полный путь.
  • Промежуточный путь.

Диапазон измеряемых скоростей: 3 км/ч…60 км/ч
Точность измерения скорости: 1 км/ч
Дисплей: 16×2 с HD44780-совместимым контроллером

Принципиальная схема велоспидометра на микроконтроллере ATtiny2313

Инструкция по эксплуатации

Основной режим

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

Дисплей велоспидометра

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

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

Кнопками + и – плавно регулируется яркость фары. Для регулировки исползуется ШИМ, поэтому дополнительных потерь мощности не происходит, в отличии от более простых схем.

Настройка

Для сброса промежуточного счетчика пройденого пути нажмите кнопку “CLEAR”.

Настройка длины колеса

При нажатой кнопке CLEAR кнопки +, – изменяют калибровочный коэффициент для подбора длины колеса. По умолчанию длина колеса примерно 2 метра. Так как пройденый путь получается умножением скорости на время (интегрированием скорости по времени), то для контроля правильности коэффициента скорости можно сравнить показания счетчика пройденого пути после поездки на точно известное растояние. Если показания верные, то и скорость показывается правильно.

Сброс настроек

Для сброса коэффициента в значение по умолчанию и обнуления счетчика пройденого пути, одноверменно нажмите все три кнопки. Чтобы случайно не произошло сброса, можно сделать кнопки + и – на одном переключателе.

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