Главная > Вело, Программирование, Радиоэлектроника > Самодельный велокомпьютер

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

Сразу после покупки велосипеда пришлось закупиться всякой необходимой мелочевкой: спидометр, фара, задняя мигалка, насос…
Хотелось как всегда, побыстрее все взять, поставить и кататься. Первая попавшаяся фара оказалась говеной, вторую подарили — чуть лучше, но еще есть, что улучшить. Насос тоже пришлось обновить…
Велокомпьютер.
Опять же, по-быстрому был куплен первый подвернувшийся за 12-15$ «велокомпьютер» типа Longus BR3. Стандартная фигня с одним датчиком и стандартным для этого дела набором функций (в количестве около 10). Но именно велокомпьютером эту штуку, лично я, называть не могу. Спидометр+одометр. Вычисление скорости мгновенной и средней не такая уже серьезная задача, чтоб называться компьютером.
Для того чтобы девайс назывался велокомьютером или же велонавигатором, на мой взгляд, необходимы следующие стандартные функции(модули):

  • скорость (датчик на колесе);
  • скорость вращения педалей(датчик на педалях);
  • измерение пульса (пока не особо знаю теорию);
  • измерение высоты (барометр/GPS);
  • определение угла подъема/спуска (акселерометр);
  • измерение температуры (DS1820);
  • и стандарные функции подсчета расстояния, средних скоростей и т.д.


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

  • Измерение текущих координат, скорости, направления (GPS);
  • Хранение трека пройденного пути (SD-MMC-карточка);
  • Задание путевых точек и указание направления к ним;
  • Связь с компутером (Картридер, USB или беспроводная);
  • Беспроводная связь с датчиками (чтоб не было лишних проводов);
  • Управление освещением (тоже по радиоканалу);


Опять же, список можно дополнять, но в при наличии готового правильного железа это все будет несложно реализовать позднее программно.
Из готовых девайсов с похожим функционалом нашлось что-то типа, Garmin Edge, Polar CS600 Power, где цена начинается от 500$ и датчики по 100$. Но на такое и денег жалко и самому все-таки гораздо интереснее сделать.
Также когда-то находил такую тему: http://forum.ixbt.com/topic.cgi?id=48:7153, но там и фукнкционал гораздо скромнее, и непонятно чем все закончилось.

Оценив, что можно сделать, что есть в наличии, что можно достать(заказать) из компонентов, набросал такую схему:

Велокомпьютер v0.1. Схема

По деталям получилось следующее:

Экран используется именно такой, потому что цветной отпадает как неэффективный на улице(на солнце), HD44780 и аналоги неинтересно, нужна именно графика, ну и просто, недорогой экран с подсветкой и очень низким потреблением (~500мкА).
В качестве модуля радиоканала думал также что-то из серии CC2500, но там нужен обвес, неудобно паять, тем более, TR24 уменя есть несколько. В принципе, в следующей версии, скорее всего, будет именно CC.
GPS-модуль EB-500 выбран из-за удобства пайки, хорошей чувствительности и самое главное, низкого потребления: обещают порядка 25ма в режиме слежения.

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

Велокомпьютер v0.1. Плата

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

Велокомпьютер v0.1. Готовая плата

В тот же день были запаяны основные детали и заущен GPS, акселерометр и экранчик. Акслерометр пришлось пропаять повторно, а все остальное завелось без проблем:

Велокомпьютер v0.1. Первый запуск

Порадовал GPS-модуль: при первом запуске в глубине комнаты (2 метра от окна) с холодного старта выдал время через 15 секунд и поймал спутники через 2 минуты. Правда больше такой фокус не удавался. Зато на подоконнике ловит отлично (2-3 минуты), при том что КПК с Sirf3 и внешний приемник на Atmel ANTARIS4 там могут час пролежать и не поймать ничего.

Сразу же после сборки обнаружилась куча ошибок…

Разьем microUSB надо было ставить с самого края платы — пришлось отпилить кусок.
Между акселерометром и АЦП забыл нарисовать RC-фильтр. Без него показания ну очень сильно скачут.
Кстати с акселерометром протупил — надо было спроектировать на MMA7455 (он работает по I2C — меньше обвеса и осталось бы три свободных ноги с АЦП).
И, самое главное, неправильно разведенное питание. Если подавать питание GPS-модулю через ключ спустя некоторое время после подачи питания на всю схему происходит сброс контроллера. По идее из-за включенного BOD’a. Либо LDO не справляется — надо копать.
Также не очень удачно получился футпринт под CP2102 — сильно тонкие доржки немного расплылись.

В ближайших планах — датчик на колесо (ATTINY261A + TR24A + PCF8563 + геркон + CR2032). Этот вариант уже практически готов и отлажен, но дальше думаю tiny и RTC заменить на ATMEGA48PA — будет проще и эффективнее.
Ну и самое тяжелое — софт…

UPD: Еще нашел ошибки: у UART1, который идет к CP2102 перепутаны местами RXD и TXD. У HP03MA не учел SMD-площадки аод корпусом — залезли на сосдение дорожки.

комментария 32 to “Самодельный велокомпьютер”

  1. Sanchos:

    И как продвигается проект?

    • Klim:

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

  2. Kombi:

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

    • Klim:

      Выложу проект, как только будет что-то более-менее рабочее.
      Еще надо переделать картинку схемы-платы, а то уже достаточно ошибок и «соплей».
      Кстати, для минимизации размера можно взять экранчик TIC234, выкинуть отдельный RTC и сделать двухстороннюю плату и двухсторонний монтаж. Потому как, в текущем варианте плата получилась 70х70 — что довольно много для подобного девайса. До сих пор не придумал нормальный корпус.

  3. Kombi:

    Ок, спасибо. Кстати экранчик именно заинтересовал этот — и дешевый, и простой , и стандарт I2C(хочется применить и в других проектах). Cделайте , если получится , плату под размеры экрана. Если нужна помощь- могу помочь развести в Sprint Layout. Корпус наверно лучше купить готовый- есть в Чип и Дип, в Промэлектронике, в Кварце, в Буром Медведе…еще вроде в Промэлектронике….там и эргономичные есть. Мой мейл, если нужен — kombi_ru@rambler.ru

    • Klim:

      Под этот экранчик ? или все-таки TIC234? Разрешение то же, но размеры меньше. Правда второй — без подсветки.
      Совсем по размеру — не получится — надо куда-то антенну GPS ставить, причем не под экранчик.

  4. Kombi:

    Под тот , который выберете ,но чтобы читабельность с расстояния не страдала хотелось бы))) можно в принципе и поменьше, но то что без подсветки — это наверно плохо. Насчет GPS — не знаю как насчет вашего модуля , но я испытывал Leadtek LR9101 c пасивной антенной- очень чувствительный модуль, антенна ловит сигнал даже в комнате, даже когда расположена «вниз». Подключал его счас к Bluetooth модулю BTM-20 и BTM-111 — работает , надо только чтобы скорости передачи и приема только совпадали, это я к тому , что эти модули Bluetooth можно использовать в качестве беспроводного канала, для передачи сердечного ритма навелокомпьютер (для этого правда лучше подойдет Zig Bee- меньше жрет , но с ним надо разбираться)

    • Klim:

      Ну это надо будет заказть второй экранчик, который поменьше и посмотреть, как будет с читабельностью. Насчет подсветки, тоже, думаю, можно будет что-то подобрать по размеру.
      Про антенну GPS — скорее всего нормально будет работать если ее разместить на нижней стороне платы. Только в покупных модулях обычно ставят большие антенны (25х25х8мм примерно).
      Блютус со своим потреблением явно отпадает. Думаю, вполне подойдет что-нибуть вроде CC2500 от Техасских Инструментов.

  5. Kombi:

    Здравствуйте ! Да TI рулит в производстве всяких микрух…) Как продвигается работа?

  6. snowleopard:

    Klim, выложи файлы к статье пожалуйста…

    • Klim:

      Какие именно файлы интересуют ?

      • snowleopard:

        Исходник прошивки

        • Klim:

          ну дык прошивки версии, хотя бы, 0.1 еще и в помине нету.
          Пока только куски… функции работы почти со всей периферией, кроме радиомодуля…
          Выложить могу только зачем оно вам? Или интересуют какие-то конкретные детали реализации ?

  7. Kombi:

    Вот нашел интересный графический дисплей , производит австралийская фирма 4d systems
    характеристикиu
    OLED-160-G1- интеллектуальный Passive Matrix OLED модуль со встроенным процессором GOLDELOX-GFX и поддержкой программирования на 4DGL (4D Graphics Language). Диагональ 1,7”, разрешение 160×128 точек, габаритный размер: 52 x 32 x 6.1 мм., размер видимой области: 33.6mm x 27мм., количество цветов 65K. , рабочая температура -35°C .. +75°C, температура хранения -40°C .. +80°C, питание VCC = 5.0V при типовом токе 40 mA (максимальный ток 120 mА).
    Что примечательно — программируется на языке похожим на Паскаль — очень удобно , можно и стандартный контроллер подключить . Продается в Терраэлктроника.

  8. Kombi:

    http://www.4dsystems.com.au/prod.php?id=85 ccылка на 4d systems
    http://www.youtube.com/watch?v=RH1UqPkthgk пример отображения данных от GPS приемника

  9. Alex27:

    Можешь выложить библиотеку EB-500 для Eagle?

    • Klim:

      Завтра буду дома — выложу.

      • Tolyn:

        Привет Klim. Можешь выложить библиотеку EB-500 для Eagle.

        • Klim:

          хм. видимо, забыл… ( прошу прощения
          eb-500.lbr

          • Tolyn:

            Спасибо выручил. Скажи пожалуйста зачем там два RX и два TX и какие подключать к компу нужно
            и есть ли там cts rts.

            • Klim:

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

  10. I-Van:

    OLED деградирую довольно быстро, причём не равномерно, в итоге получается что-то вроде шума на стареньком дисплейчике. Я заюзал TIC32 и TIC48, замечательные дисплейчики!

  11. Snake:

    Датчики не обязательно RF. У простых моделей используется 5 кГц (Sigma, Cateye, Polar в т.ч). Они не дорогие. Расстояние не большое, правда, в районе 1 м.
    Пульсометр обязательно. Без него — несерьёзно.))

  12. шанти:

    приветствую! плохо что тема заглохла но она мне много чем помогает,решил сделать вело комп и вот на чем остановился
    atmega64
    GPS модуль Ublox NEO6MV1 / Arduino28,00 $
    Датчик универсальный GY-80 (акселерометр, компас, гироскоп, давления, L3G4200D + ADXL345 + HMC5883L + BMP085)
    22,00 $
    контроллер заряда акума
    дисплей он нокии 3110
    карта памяти для записи трека
    радио модуль поставлю если куплю сигму пульсометр если прочитаю сигал с него.
    Собрал все на макете запихнул в корпус из под считывателя ,вроде так нормально смориться
    далее код естественно на барсике весь на сайте http://avrproject.ru взял исходники для про читки сенсоров и так далее и так остановился не потому что трудности а потому что немного уже достало это все лень или черт знает что
    результат на дисплей выводится угол ,температура ,давление ,графический компас ,две скорости колесо и каденс, отдельно работаю над GPS модуль Ublox NEO6MV1 модуль через ключ включается поливиком ,
    координаты ,время, дата,высота скорость и так далее…
    кардридер не впаял на макетку это сложно но программно это не сложно реализовать,
    пока что две прошивки на GPS модуль и GY-80 ,нужна помощь а то лето закончится а я не доделаю ,
    что нужно сделать шаблон печатной платы ,ну и программно закончить , а то я устал мой мел если есть желание продолжать sireniti@gmail.com

    • Klim:

      Да уж забросил это дело. По факту, сейчас пытаюсь сделать что-то полезное с Bluetooth Low Energy (CC2541) также его можно использовать в качестве «ядра». BLE Stack занимает порядка половины прошивки (130кб), остается почти столько же. Из интерфейсов есть все что надо: 2xSPI/UART совмещенных, I2C, АЦП. Токи потребеления минимальны. А самое главное, можно использовать готовые внешние датчики с BLE раиоканалом.

Оставить комментарий

Или