Самодельный велокомпьютер
Сразу после покупки велосипеда пришлось закупиться всякой необходимой мелочевкой: спидометр, фара, задняя мигалка, насос…
Хотелось как всегда, побыстрее все взять, поставить и кататься. Первая попавшаяся фара оказалась говеной, вторую подарили – чуть лучше, но еще есть, что улучшить. Насос тоже пришлось обновить…
Велокомпьютер.
Опять же, по-быстрому был куплен первый подвернувшийся за 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, но там и фукнкционал гораздо скромнее, и непонятно чем все закончилось.
Оценив, что можно сделать, что есть в наличии, что можно достать(заказать) из компонентов, набросал такую схему:
По деталям получилось следующее:
- ATMEGA644P – основной контроллер (документация) ~6$;
- EB-500 – GPS-модуль (документация) 18$ + пассивная керамическая антенна 13х13мм 2,5$;
- HP03MA – барометр/альтиметр (документация) 12$;
- MMA7620 – акселерометр (документация) 3$;
- TR24A – приемопередатчик 2,4Ггц (документация) 3$;
- TIC154 – ЖКИ-экран 133х64 (документация) на контроллер PCF8535 (документация) 6$;
- TB1038S – зеленая подсветка для экрана (документация) 2$;
- CP2102 – преобразователь USB-UART (документация) 2$;
- LP2985 – LDO-реглятор напряжения с выходным напряжением 3,3В (документация) 1,5$;
- LTC4054 – контроллер заряда Li-Ion (документация) 4$;
- PCF8563 – контроллер часов реального времени (документация) 1$;
- DS18B20 – народный термометр с однопроводным интерфейсом 1$.
Экран используется именно такой, потому что цветной отпадает как неэффективный на улице(на солнце), HD44780 и аналоги неинтересно, нужна именно графика, ну и просто, недорогой экран с подсветкой и очень низким потреблением (~500мкА).
В качестве модуля радиоканала думал также что-то из серии CC2500, но там нужен обвес, неудобно паять, тем более, TR24 уменя есть несколько. В принципе, в следующей версии, скорее всего, будет именно CC.
GPS-модуль EB-500 выбран из-за удобства пайки, хорошей чувствительности и самое главное, низкого потребления: обещают порядка 25ма в режиме слежения.
Плату постарался развести одностороннюю с небольшим поличеством перемычек:
По хорошему, надо было брать двусторонний текстолит и нижний слой делать земляным. Но в запасах не оказалось двустороннего куска необходимого размера, пришлось делать на одностороннем. Платы делаю довольно редко, потому получилось не очень красиво, да и пришлось подрисовать маркером некоторые дорожки перед травлением.
После лужения:
В тот же день были запаяны основные детали и заущен GPS, акселерометр и экранчик. Акслерометр пришлось пропаять повторно, а все остальное завелось без проблем:
Порадовал 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-площадки аод корпусом – залезли на сосдение дорожки.




И как продвигается проект?
Пока работает экран, регулируется подсветка, отображаются координаты GPS, показания акселерометра и барометра, и пишется все на карточку.
Времени оосбо нету, для продолжения разработки надо сделать датчик оборотов колеса – тогда можно будет доделать блок работы с радиомодулем.
Интересный проект, давно хотел что-то подобное для велосипеда сделать . Можете выложить hex и исходники. Сам не программист , но есть знакомые кто может. Вообще искал проект чтобы платка была поменьше и на нее ставился экран (чтобы совпадали размеры) и чтобы только коодинаты на LCD отображались , но это даже лучше, что вы делаете , спасибо.
Выложу проект, как только будет что-то более-менее рабочее.
Еще надо переделать картинку схемы-платы, а то уже достаточно ошибок и «соплей».
Кстати, для минимизации размера можно взять экранчик TIC234, выкинуть отдельный RTC и сделать двухстороннюю плату и двухсторонний монтаж. Потому как, в текущем варианте плата получилась 70х70 – что довольно много для подобного девайса. До сих пор не придумал нормальный корпус.
Ок, спасибо. Кстати экранчик именно заинтересовал этот – и дешевый, и простой , и стандарт I2C(хочется применить и в других проектах). Cделайте , если получится , плату под размеры экрана. Если нужна помощь- могу помочь развести в Sprint Layout. Корпус наверно лучше купить готовый- есть в Чип и Дип, в Промэлектронике, в Кварце, в Буром Медведе…еще вроде в Промэлектронике….там и эргономичные есть. Мой мейл, если нужен – kombi_ru@rambler.ru
Под этот экранчик ? или все-таки TIC234? Разрешение то же, но размеры меньше. Правда второй – без подсветки.
Совсем по размеру – не получится – надо куда-то антенну GPS ставить, причем не под экранчик.
Под тот , который выберете ,но чтобы читабельность с расстояния не страдала хотелось бы))) можно в принципе и поменьше, но то что без подсветки – это наверно плохо. Насчет GPS – не знаю как насчет вашего модуля , но я испытывал Leadtek LR9101 c пасивной антенной- очень чувствительный модуль, антенна ловит сигнал даже в комнате, даже когда расположена «вниз». Подключал его счас к Bluetooth модулю BTM-20 и BTM-111 – работает , надо только чтобы скорости передачи и приема только совпадали, это я к тому , что эти модули Bluetooth можно использовать в качестве беспроводного канала, для передачи сердечного ритма навелокомпьютер (для этого правда лучше подойдет Zig Bee- меньше жрет , но с ним надо разбираться)
Ну это надо будет заказть второй экранчик, который поменьше и посмотреть, как будет с читабельностью. Насчет подсветки, тоже, думаю, можно будет что-то подобрать по размеру.
Про антенну GPS – скорее всего нормально будет работать если ее разместить на нижней стороне платы. Только в покупных модулях обычно ставят большие антенны (25х25х8мм примерно).
Блютус со своим потреблением явно отпадает. Думаю, вполне подойдет что-нибуть вроде CC2500 от Техасских Инструментов.
Здравствуйте ! Да TI рулит в производстве всяких микрух…) Как продвигается работа?
Пока никак. Датчик надо сделать хоть один.
тест
Klim, выложи файлы к статье пожалуйста…
Какие именно файлы интересуют ?
Исходник прошивки
ну дык прошивки версии, хотя бы, 0.1 еще и в помине нету.
Пока только куски… функции работы почти со всей периферией, кроме радиомодуля…
Выложить могу только зачем оно вам? Или интересуют какие-то конкретные детали реализации ?
Интересно посмотреть как что реализовано
Вот нашел интересный графический дисплей , производит австралийская фирма 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А).
Что примечательно – программируется на языке похожим на Паскаль – очень удобно , можно и стандартный контроллер подключить . Продается в Терраэлктроника.
ну все хрошо, кроме нескольких мелочей)):
- 40ма
- 5В
- 90$
НУ 40 МА – это вроде нормально , тем более что это OLED- чем меньше пикселей светится , тем меньше потребляет, а светится оно действительно ярко.
OLED? А как он себя на солнце ведет?
весьма неплохо
http://www.4dsystems.com.au/prod.php?id=85 ccылка на 4d systems
http://www.youtube.com/watch?v=RH1UqPkthgk пример отображения данных от GPS приемника
Можешь выложить библиотеку EB-500 для Eagle?
Завтра буду дома – выложу.
Привет Klim. Можешь выложить библиотеку EB-500 для Eagle.
хм. видимо, забыл… ( прошу прощения
eb-500.lbr
Спасибо выручил. Скажи пожалуйста зачем там два RX и два TX и какие подключать к компу нужно
и есть ли там cts rts.
у меня подключено к нулевому, но я задавал подобный вопрос на форуме, ответили, что они равнозначны.
А RTS, CTS там ни к чему – не те объемы информации. Если существует риск того, что контроллер не успеет обработать – то можно уменьшить скорость или уменьшить частоту выдачи сообщений.
OLED деградирую довольно быстро, причём не равномерно, в итоге получается что-то вроде шума на стареньком дисплейчике. Я заюзал TIC32 и TIC48, замечательные дисплейчики!