Велокомпьютер построен на базе ATmega328p и цветного графического дисплея разрешением 320x240 на базе контроллера ILI9341, подключенного по SPI. Код написан под avr-gcc.
Также можно взять не сам МК, а готовую плату с ним, например, Arduino Pro Mini и использовать её просто как обычный МК с уже удобно разведёнными ножками и готовым кварцем на 16МГц. Всё зависит от того, насколько компактным велокомпьютер хочется видеть.
Немного технических деталей.
При работе на 16МГц максимальную частоту по SPI можно получить 8МГц. Для обновления (например, очистки) всего экрана нужно отправить по шине SPI 320 * 240 * 16 (бит на точку) = 1228800 бит (плюс немного за счёт команд, не только данных). Поэтому экран обновлять чаще 6Гц не получится в принципе.
Чтобы избежать видимых медленных перерисовок экрана, код написан так, что экран целиком обновляется достаточно редко. Перерисовываются только малые области экрана - там, где поменялись цифры. Для ускорения этого был разработан специальный (а-ля векторный) набор семисегментных шрифтов для цифр.
Как всё это работает, можно глянуть на видеоролике.
Re: Простой велокомпьютер с цветным графическим LCD
Вс июл 16, 2017 11:53:59
Не без этого. Для того, собственно, режимы "чёрным по белому" и "белым по чёрному" и сделаны, чтобы максимальную контрастность получить. Но вообще нормально читается.
Re: Простой велокомпьютер с цветным графическим LCD
Чт июл 20, 2017 05:59:26
Говорите, у АтМеги 70% памяти свободно? А если подвязать к ВК еще и FM радио на м/с ну, типа, RDA5807P, TEA5761UK или подобных? С синим зубом в придачу, чтобы не тащить к голове провода!?
Re: Простой велокомпьютер с цветным графическим LCD
Чт июл 20, 2017 08:49:15
Мне показалось, что алгоритм работы с экраном не оптимальный. Вроде как сначала идет очистка заливкой, а затем вывод нового содержимого в достаточно большую область - так? Если так, что достаточно изменить алгоритм, и мерцание станет полностью незаметным: выводить новое сразу так, чтобы затирать старое, и только в тех областях, где это затирание на самом деле необходимо. Например, для семисегментной цифры только затирать погасающие сегменты и отрисовывать зажигаемые, не меняя те, что сохраняют свое состояние. Например, при замене 7 на 0 только дорисовать 3 сегмента, и при замене 8 на 9 - только стереть один.
Re: Простой велокомпьютер с цветным графическим LCD
Чт июл 20, 2017 09:03:12
Нет, так происходит только при смене экранов (главный - настройки). На них разные размеры шрифта и областей заливки, поэтому проще было именно так сделать.
А при обычной работе перерисовываются только те цифры (не числа, а именно отдельные цифры!), которые меняются.
Можно было бы вообще перерисовывать только изменившиеся сегменты, но и без того получается очень быстро. Посегментная прорисовка уже требовала бы в 7 раз больше памяти для хранения предыдущего состояния. Хотя и памяти свободной прилично.
P.S. Хотя, если передавать в функцию glcdWriteLcdChar() не только текущую цифру, а ещё и предыдущую, то уже в самой ней можно разобраться, как перерисовать символ быстрее.
Последний раз редактировалось WiseLord Чт июл 20, 2017 09:29:09, всего редактировалось 1 раз.
Re: Простой велокомпьютер с цветным графическим LCD
Чт июл 20, 2017 21:54:34
WiseLord, Если будет желание, попробуйте сделать велокомпьютер на таком индикаторе 3,5". Это "монохром с оттенками серого", у него ток потребления около 1mA и высокая контрастность при ярком внешнем освещении.
Откуда: Самая большая деревня. (По мнению Габриэля Гарсиа Маркеса)
Re: Простой велокомпьютер с цветным графическим LCD
Чт июл 20, 2017 22:44:48
Хороший проект, я думаю народ заценит для повторения. Но я бы не стал отпиливать полплаты - тогда можно было бы сделать даталоггер с записью на SD, а там уж заодно и подцепить DS3231 для привязки логов, ну и может быть датчик пульса, хотя бы проводной, для "спортивного" интереса... ИМХО конечно (это типа идей для расширения). Ведь и толщина прибора не критична, как мне кажется.
Re: Простой велокомпьютер с цветным графическим LCD
Пт июл 21, 2017 05:39:18
Если цеплять часы и sd-карту, то лучше было бы убрать оригинальную плату дисплея вообще, сделав свою под шлейф дисплея, где и разместить вообще всё. Может быть, когда-нибудь так всё и будет.
Откуда: Самая большая деревня. (По мнению Габриэля Гарсиа Маркеса)
Re: Простой велокомпьютер с цветным графическим LCD
Пт июл 21, 2017 10:55:31
Имея в виду Вашу фразу "Да и лежали у меня в закромах когда-то давно купленные на Aliexpress разные платки, которые и решено было пустить в дело." я подумал, что для логгера достаточно просто подцепить еще одну дешевую платочку с часами и батарейкой, всего несколько проводов. Хотя, конечно, хорошо бы сделать новый проект с моноплатой. Будем ждать ))
Предлагаю вашему вниманию простой велокомпьютер для велосипеда...
Как для радиолюбительской конструкции - круто!... И всё же. Практика использования заводского-покупного велокомпьютера показала явные излишества, забитые в прошивку (ки)тайской "офисной детворой". Каденс, килокаллории, частота вращения колеса и прочая лобуда, для "простого" велотуриста-хозяйственника... вызывают больше мороки (пустое ожидание в режиме SCAN), чем пользы. Вопрос то о наличии датчика частоты вращения ведущей звёздочки (каденса) касательно большинства велоНЕгонщиков - однозначно риторический... Неудобно, (если не сказать - небезопасно!) отображать на экране одновременно несколько параметров, ещё и разного размера. Во первых - мелкие знаки хуже видно. Во-вторых - прибор больше отвлекает от контроля за дорожной ситуацией. Неплохо было бы иметь возможность отображения напряжения аккумулятора в случае "электрификации"/моторизации двухколёсного коня. Без особого опыта в области МК, первое, что придумалось - соорудить преобразователь напряжение-частота, и при помощи удобного переключателя соединять по мере надобности велокомпьютер либо с герконовым датчиком, либо с преобразователем, понимая при этом, например 24,5 км/h как 24,5 В. Это, так сказать - в примитиве. Варианты, варианты... Лет пять промучился с прибором AS 401. Часы уходили вперёд на десяток минут в месяц. Узнать общий пробег за сезон не позволял постоянный "авто" сброс. Когда надоело припаивать батарейку, чистить и т.п., взял весьма недорогой ASSIZE AS 820, которым вот уж пол-сезона вполне доволен. Окромя - в начале сказанного. Сэнкс фор эттэншн.
Re: Простой велокомпьютер с цветным графическим LCD
Пт авг 04, 2017 05:54:28
У китайцев появились относительно не дорогие E-lnk https://ru.aliexpress.com/store/product ... 5c0cmKt2jN. Вроде и энергопотребление низкое, и читаемость на солнце, интерфейс SPI. Можно было бы на пробу заказать, усли ув. автор подправит прошивку под любой из трёх типоразмеров.
Re: Простой велокомпьютер с цветным графическим LCD
Пт авг 04, 2017 12:01:08
Размер прошивки около 11кБ, так что в ATmega168 влезть должно. Но, наверное, пересобрать из исходников придётся. По поводу дисплея не знаю, если он на контроллере ILI9341, должен подойти.