Идея сделать велокомпьютер своими руками возникла, когда мне порядком надоел мой старый китайский велоспидометр в серебристом изящном корпусе, в основном своей многофункциональностью — у него было несколько дисплеев, и они периодически сменялись во время движения. Много никому не нужных настроек и функций — и все одной кнопкой. Основной же причиной послужило то, что в настройках можно было прописать длину окружности колеса только в целых дюймах — соответственно, точность его расчетов была соответствующей.
Я придерживаюсь мнения, что велокомпьютер должен быть простым, незаметным, и выполнять какую-то одну функцию.
Поэтому мое устройство показывает только скорость в км/ч с точностью до десятых, и общий пробег в км, с точностью до метра.
Имеется только одна кнопка, нажимая которую, можно последовательно менять 3 режима работы дисплея: дисплей выключен, дисплей включен, включена подсветка.
Включается он самостоятельно, при замыкании геркона, и выключается при остутствии сигналов в течении 20 сек. При этом пробег сохраняется в памяти eeprom.
Геркон подключен к порту через фильтр на элементах C12, C13, R24.
Так как attiny2313a питается в диапазоне 1.8 — 3 в, а дисплей от 5 вольт с преобразователя, требуется согласование уровней, которое реализовано с помощью резисторов.
Транзистор T1 управляет подсветкой дисплея.
Ключ на транзисторе T2 отвечает за питание дисплея, пропуская ток к преобразователю. Надо сказать, что в качестве данного транзистора подойдет только p — канальный полевой транзистор с напряжением открытия (Gate Threshold Voltage) не более 1.5 вольт, иначе при проседании батарейки дисплей погаснет раньше, чем мог бы.
Преобразователь выполнен на микросхеме MAX1674, которая работает от 0.7 вольт и отличается высоким КПД.
Программа написана на CvAvr.
В общих словах логика работы такова:
Всеми расчетами управляет таймер TIMER1 с предделителем 256. Т.к. частота кварца 4000000 Гц, соответственно, частота таймера 15625 Гц. Период — 0.000064 сек. Этими промежутками времени и измеряется время между двумя срабатываниями геркона, используемое для расчета скорости.
Время переполнения таймера (счет до 65535) — 4.19424 сек.
При включении велокомпьютера из eeprom считывается общий пробег.
В главном цикле проверяются флаги засыпания, пробуждения и режима работы дисплея, и запускаются соответствующие процедуры. На дисплей выводятся скорость и пробег. Затем микроконтроллер переводится в режим IDLE (пониженное энергопотребление), в котором он и находится большую часть времени.
При замыкании геркона происходит прерывание, поднимается флаг пробуждения (если до этого контроллер был в спячке), считывается значение таймера TIMER1, после чего последний обнуляется. Пробег увеличивается на длину окружности колеса.
Нажатие на кнопку вызывает прерывание, в котором изменяется флаг режима работы дисплея.
Прерывание по таймеру TIMER1 увеличивает некоторую величину, при превышении которой определенного порога, поднимается флаг засыпания.
Перед засыпанием пробег сохраняется в eeprom, и порты переводятся в высокоомное состояние (за исключением ноги с герконом), чтобы избежать утечек по току.
При пробуждении порты переводятся в нормальное состояние и включается дисплей с последующей инициализацией.
Первый запуск. Это не окончательный вариант, в процессе пришлось переделать плату из-за некоторых изменений.
Окончательный вариант платы. Преобразователь выполнен на отдельном модуле, поскольку я не сразу определился со схемой последнего.
Плата со стороны дорожек.
Конструкция — бутерброд из платы и дисплея. Края обточены, чтобы все вошло в корпус.
А корпус я решил сварить из профиля и кусков металла. Сначала сварил коробок 82X35X30, потом приварил сбоку пластины, немного выступающие за нижнюю часть, для более плотного закрывания крышки. Там, где необходимо, наплавил металл, а затем зашлифовал все болгаркой вот до такой формы.
Корпус из металла дает очевидное преимущество — на него можно наварить любые крепления, в том числе и на руль, не говоря уже и о самом корпусе — он может быть сделан любых размеров и для любых целей.
Крепления сделаны из двух толстых пластин, одна из которых держится на дверной петле. Также на них наварены полудуги из труб, для лучшего обхвата руля и общей надежности.
Примерка платы. Крышку не мешало бы еще загерметизировать куском от велокамеры, что и будет сделано позже.
Верхняя часть с дисплеем.
Разумеется, корпус нужно покрасить, чтобы не ржавел, и для эстетики в том числе.
Вот он, уже покрашенный в желтую краску и просушенный.
Крышка крепится таким вот нехитрым способом — с помощью болтов, согнутых под 90 градусов. Держится вполне неплохо, учитывая и то, что у крышки есть ребра жесткости в виде отгибов.
Запуск велокомпьютера в корпусе.
Подсветка…
Ну и наконец, самое время установить спидометр на руль и посмотреть на него в действии. Я засунул внутрь плоский литий-ионный аккумулятор от какого-то плеера.
Между корпусом и дисплеем вставил кусок оргстекла, который прикрепил герметиком внутри корпуса для герметичности.
На руль намотал полоску резины, чтобы не поцарапать. Крепления держут отлично.
В качестве геркона и магнита использовал старые, от китайского велоспидометра.
Что касается основного предназначения велокомпьютера, то здесь у меня претензий пока нет.
Ток потребления при включенном дисплее около 5 mA, но поскольку я не сразу нашел подходящий транзистор T2, то пришлось вместо него временно впаять твердотельное реле, в результате ток немного завышен — 8 с небольшим.
При отключенном дисплее — 3.1 mA, с включенной подсветкой 36 mA.
В спящем режиме мультиметр не зафиксировал ток, но, как обещает производитель контроллера, должно быть 24 μA.