Приветствую, коллеги Драйвовчане!
В предыдущей СТАТЬЕ была рассмотрена аппаратная часть моего проекта «Монитор». В этой речь пойдёт о программной части проекта, вернее о результате этой части.
И так, в результате я получил штатную приборку простого типа со встроенными в неё двумя мониторами, которые ни как не вмешиваются в жизнь машины, а как сторонние наблюдатели считывают с неё информацию и выводят её на дисплеи.

Левый дисплей показывает информацию на пяти экранах, переключаемых штатными кнопками руля. Для приборки Супервижен используется все 4 кнопки управления БК. А для простой, только две, вот эти-то две кнопки я и использовал для управления левым монитором. В одном экране задействована ещё и кнопка «ОК», нижняя в блоке, которая участвует в управлении БК самой приборки. Это накладывает некоторые ограничения на её использование. А именно, необходимо сначала переключить БК приборки в режим индикации мгновенного расхода топлива, в этом единственном случае, нажатие этой кнопки не приводит ни к какой реакции приборки, т.е. её нажатие игнорируется. А нам это и надо. Конечно, это не совсем удобно, но, так как, в данной конфигурации монитора, кнопка ОК используется только в одном случае и он довольно редкий, то можно спокойно не обращать на это внимание. Возможно, в будущих реализациях, эта кнопка будет задействована в большем количестве случаев, но, пока, её применение ограничено, всего в одном экране.
Первый экран:

На нём выводится информация о состоянии масла ДВС, давлении и температуре. Показания давления и температуры фильтра снимаются с датчиков установленных мною самостоятельно в районе масляного фильтра. Температура блока берётся из машины. Я, как и многие наши коллеги, искал этот датчик на схеме, но не нашёл. Есть предположение нашего коллеги akdarum (так же подсматривал в его записях информацию по UDS запросам), что это виртуальный датчик показания которого формируются на основе каких-то косвенных данных. Но, тем не менее, этот показатель есть во всех сканерах работающих с двигателем Креты 1,6. Этот показатель динамичный и меняется во время работы двигателя. Бывает больше чем температура фильтра, бывает меньше. Иногда совпадает.
Второй экран:

На нём отображается температура охлаждающей жидкости двигателя, температура масла АКПП, остаток бензина в баке в литрах и наработанные моточасы с начала эксплуатации машины. Остаток бензина в баке выдаёт приборка. При чём это необработанное значение, оно реагирует на болтание бензина в баке. В отличии от показаний количества топлива в баке самой приборки (шкала с палочками на центральном дисплее). Истинность показаний количества бензина в баке требует проверки, так как на заправке, при показаниях количества бензина в баке — ровно половина бака (это 27,5 л) и показаниях остатка – 32 л. Залилось 34 литра до отсечки. Буду наблюдать. Так как черточки на дисплеи приборки показывают не конкретное число остатка, а диапазон. Остальные показатели не вызывают сомнений.
Третий экран:

Отображает данные касающиеся аккумуляторной батареи. Такие как напряжение бортовой сети, ток протекающий через АКБ, температуру датчика АКБ стоящего на минусовой клемме АКБ и степень заряженности аккумулятора в процентах (SOC). Машина вычисляет ещё кучу параметров аккумулятора и генератора, но я считаю, они не так важны для повседневного наблюдения. Есть ещё один интересный параметр, это степень изношенности или уровень жизни, а точнее уровень текущей ёмкости АКБ по сравнению с изначальной ёмкостью. Но он всё время показывает 100%. Скорее всего он не активный в данной реализации и выводить его на экран я не стал. А вот уровень заряженности очень даже динамический параметр и постоянно меняется. Думал ещё убрать и ток АКБ, так как он ограничен минус 100А. Хотя пусковой ток значительно больше 100А. Видимо, это программное ограничение самого ЭБУ ДВС. Но решил оставить, так как он показывает картину движения тока через АКБ. Значения меняются очень быстро, поэтому, что бы убрать мелькание на экране, я замедлил обновление показаний, что бы было комфортно смотреть. Совсем замедлять не стал, что бы видеть динамику показаний.
Четвёртый экран, это индикация давления в шинах по штатному варианту, как в приборке супервижен. У кого приборка супервижен могут сравнить.
Данный экран имеет несколько видов (подэкранов) в зависимости от нескольких факторов (стоит или едет автомобиль, исправна или нет система тпмс и т.д.). Старался сделать максимально приближенно к оригиналу (Supervision).

Первый подэкран показывает давление в колёсах в выбранных единицах измерения. Единиц измерения может быть три: Бары, Кило Паскали и psi (фунт сила на дюйм). Есть ещё в штатном варианте экран с машинкой без указания единиц измерения и цифр. Зачем и как он применяется я не знаю, но сделал и его.

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

И «Низкое давление», общий случай:

И «Низкое давление» с указанием конкретного колеса и его давления:

В реале это выглядит так:
В случае если машина без движения:

Так же как и в штатном варианте сделал выбор единиц измерения давления. Если в машине с завода стоит обычная приборка, то блок ТПМС выдаёт данные по давлению в psi. Логично, что имея показания давления, надо иметь возможность выбора единиц измерения. Для этого есть подэкран выбора единиц давления:

Он вызывается из четвёртого экрана данных ТПМС посредством длительного (5 секунд) нажатия кнопки «ОК». Это как раз тот случай, когда используется эта кнопка. Перемещение по экрану осуществляется кнопками «вверх» и «вниз», а выбор кнопкой «ОК».
Управление получается интуитивно понятное, как в штатном варианте.
Так же как и в штатном варианте, изменение единиц измерения давления возможно только когда автомобиль стоит на месте и находится в режиме «Р». Если эти условия не выполнены, то в меню выбора единиц войти нельзя. А если попытаться это сделать, то будет выдано сообщение:

Пятый экран показывает данные ТПМС, но с указанием, помимо давления, ещё и температуры в шине и состояние батарейки датчика.

Раньше, в специальных сканерах датчиков ТПМС, напряжение батарейки выводилось в натуральном виде в вольтах, в последних приборах выводится только статус заряженности батареи. Статусов всего три. Состояние зарядки батареи в норме, низкий заряд батареи (пора менять) и отсутствие видимости датчика (т.е. батарея разряжена и датчик молчит). Надеюсь раскопать возможность вывода именно напряжения батарейки помимо статуса, что будет более интересно и информативно. Если статус «низкий заряд», значит надо готовиться к замене датчика. В принципе, даже эта информация очень полезна. На следующей фотографии показаны варианты картинок статуса батарейки:

Если машина стоит на месте и на предыдущем экране выведена надпись «Начните движение для отображения», то вид этого экрана будет таким:

Блок не видит датчики и, соответственно, данных нет.
На этом функционал левого монитора закончился. На самом деле, можно было сделать ещё множество экранов с различной информацией, но у микроконтроллера закончилась память ☹. Рисунки занимают очень много места, к сожалению…
Правый монитор имеет всего два экрана. Это основной, где показаны часы, режимы АКПП и индикаторные лампочки. И второй, показывающий открытые двери и багажник.
Первый экран:

Часы в 24-х часовом формате с отсутствием незначащего нуля в часах. Настраиваются часы так же с помощью штатных кнопок руля. Только теперь это кнопки круиза. Они отличительны тем, что если машина стоит на месте (или едет с маленькой скоростью), то работает только кнопка включения самого круиз-контроля (Main – верхняя кнопка). Остальные не работают и нажатие на них любой продолжительности не приводит к каким-либо действиям со стороны машины. Этим я и воспользовался. Длительное нажатие кнопки «Сancel» (5 секунд) приводит ко входу в режим установки времени, короткое нажатие – переключение между часами и минутами, повторное длительное нажатие (3 секунды) – выход из режима настройки времени. Изменение чисел часов и минут кнопками "RES+" вверх и "SET-" вниз.
Коррекция часов возможна только в режиме «Р». Если это не так, то выводится сообщение:

Режимы АКПП отображаются так же как и в штатном варианте, только добавлена индикация включённой в данный момент передачи и режим «S» в случае включения режима псевдомеханики.
В нижней части экрана выводятся значки сигнальных ламп DBC и круиз-контроля. К круизу добавлена индикация реальной скорости с которой машина едет на круизе. Она совпадает с данными GPS и немного отличается только в моменты увеличения или уменьшения скорости на круизе. Система GPS не успевает и немного отстаёт от реальной скорости.
Второй экран показывает какая дверь не закрыта. Сделал так же как в штатном варианте (Supervision), только без анимации, так как объём памяти очень ограничен.
Трудность была сделать саму картинку с открытыми дверями. Картинку машинки я нашёл, а вот картинок открытых дверей, нет… После недели безрезультатных поисков решил сам сделать такие картинки. Сфотографировал свою машину с такого же ракурса как и сама машинка на экране (с лестницы 😊):

И сделал картинки открытых дверей:

Но жена попросила сделать открытые двери красными (на машине ездит в основном она), что бы открытая дверь бросалась в глаза:

Кому-то может и не понравится такая раскраска дверей, но меня вполне устраивает.
Так же сделал красным индикацию открытого багажника, по просьбе жены, сделал индикацию не моргающей. Выглядит это так:
Видео снималось в ходе разработки.
Если открыть дверь в режиме отличном от «Р», то издаётся ненавязчивый короткий звуковой сигнал:
На этом функционал дисплеев исчерпан.
Информация на дисплеях когда машина стоит, выглядит так:
Ещё один приятный момент того, что мониторы встроены в приборку, это совместная и синхронная с приборкой регулировка яркости дисплеев.
В реале яркость дисплеев практически совпадает с яркостью центрального дисплея приборки кроме самой маленькой яркости. На следующем шаге регулировки яркости сравниваются. И особых различий глазом не видно.
При включении зажигания и запуске двигателя:
Ну и в движении, всё это выглядит так:
В видео перепутаны показания давления левого и правого задних колёс на 5 экране. Исправил.
Прошу прощения за качество фото/видео материалов, но снимал всё на телефон без каких-либо приспособлений.
Прошу строго меня не судить, так как это мой реально первый проект на микроконтроллерах STM.
Хочу сказать, что проделанной работой и полученным результатом доволен Ооочень!
Так же доволен полученными в процессе реализации проекта знаниями и навыками.
Отмечу, что наша Кретовская простая приборка даёт большие возможности для подобного творчества. Можно, например, перенести лампочки круиза в циферблат тахометра и сделать только один дисплей, тогда лампочки сохранят свой первозданный вид и их не надо будет переносить на дисплей. Можно вместо центрального дисплея сделать большой цветной графический дисплей и выводить туда всю информацию включая парктроник, систему SWD и вообще всю доступную в машине информацию. А можно к такому центральному дисплею добавить два дисплея как у меня и вывести на них картинки температуры ОЖ и количества бензина в баке как штатном варианте Супервижена. Мыслей, на этот счёт, у меня много. Но все они требуют уже другой элементной базы и более глубоких знаний в программировании. А это значит, есть куда расти!
Ещё раз хочу сказать большое спасибо всем кто помогал, советовал, критиковал, поддерживал в ходе проекта.
Всем Мира и Добра!






Комментарии 58
Колоссальная сделана работа!💪🔥
Очень круто!👍
Спасибо. 🤝
Хорошая работа. В какой программе обрабатывались, рисовались картинки для дисплеев?
Спасибо.
В Поинте.
Спасибо за пост! Здорово получилось, рукастый ты наш!
🤝
В данном проекте поставил точку или пока только запятая?
Доработка шероховатостей и шлифовка их это понятно.
Но глобально с этой приборкой будут изменения? Центральный дисплей другой?
А пока ты делал этот проект явно в голове много новый идей и проектов крутится.
Куда дальше пойдешь в рамках своей креты.
Тако пытливый ум можно только переключить на что-то новое и более глобальное но не как не перестать создавать.
Предполагаю погружение в программирование это то само собой.
Спасибо! 🤝
Да продолжение предполагается. Что конкретно будет, пока не могу сказать, думаю. Но желание есть.
Всегда завидовал целеустремленности и энергичности людей проделывающих подобные вещи 👍 🙂
Спасибо.
Отличная работа, теперь это можно пустить на поток )
Спасибо.
Вот это крутяк! Получается на все машины так можно сделать
Спасибо. Если место есть, куда встраивать, то да, можно на все. Или сделать мониторы выносными 🙂
Надо больше мониторов ( x zibit) и 5я плейстешн
🙂🙂🙂
Поздравляю 🥳🥳🥳🥳🥳
С окончанием такого грандиозного проекта !
Получилось просто великолепно, максимально штатно без лишних проводов и кос в изоленте !
Спасибо тебе большое за знания, за помощь в реализации каких то идей ))🤝
Однозначно лайк — шикарная работа ! 🔥🔥🔥🔥🔥 Снимаю шляпу🙂
Спасибо! 🤝
ну вот а говорили приборками не занимаетесь😇, получается один стм на экран?как крепились сами дисплеи?как понимаю програмно независимы от приборки?
Всё правильно, приборками не занимаюсь. Кодировать приборки, разбираться в комплектациях и то что я сделал, это абсолютно разные вещи.
Крепление описано в статье. Да, независимы.
Вот это реально круто! Грандиозный и впечатляющий проект🤝. А самое, на мой счет, полезное в этой работе — это большое количество информации и особенно информация с датчиков давления! Не надо бегать с бубном вокруг машины в поисках ошибки датчика. Идея насчет замены центрального штатного дисплея думаю очень заманчивая для тех, кто хочет чуть больше красоты у себя на приборке. Такое и в массы не стыдно распространять!
Спасибо.
👍
Спасибо.
Очень круто! Когда сделано просто, со вкусом и действительно красиво. Очень напомнило дисплеи систем диспетчеризации.
Спасибо.
👍
Спасибо.
красавчик.
Спасибо.
мне есть куда стремиться и расти. Описания программной части маловато, или это в других записях?
Это всё что есть. Тут описание разультата программной части.
Громадная работа проделана, и столько вариантов информации!
Еще немного, и Боинг 747 позавидует)
🤣 Спасибо!
Прикольно, надо было всю приборку в цифру превращать
Зачем? Лично мне аналоговые стрелки больше нравятся.
Ну вот честно, на спидометр не смотрю, зачем, когда в центре есть цифровой и показывает скорость точнее, не нужно по делениям высчитывать 77 едешь или 78, тахометр да поглядываю иногда
Так это дело вкуса. Тут не поспоришь :)
Настырность и терпение делают свое положительное дело. Удачи в дальнейших работах!
Спасибо! 🤝
Вот это я понимаю работа! Смотришь, читаешь и охреневаешь от нескучных людей! Молодец! Это вам не посты о замене " на зимние тапки и машину помыл" '
Спасибо.
Это Вам спасибо! Уверен, народ читает и желает того же самого в свою машину!
Ничего себе. Получше любого Супервижена)))
Спасибо.
Колоссально проделанная работа🤝 Жму руку
Спасибо 🤝
Ну просто нет слов! Для меня, как для человека из другой сферы — это что-то из разряда фантастики!
Круто!
А на штатном дисплее нет возможности добавить какую-то информацию?
Спасибо.
Нет, такой возможности нет.
Отличная работа !
Респект !
Спасибо!
Крутяк!
Спасибо.
Поздравляю с проделанной работой и полученным результатом. Молодец! Кому-то наверняка пригодится.
Спасибо! 🤝
👍
Спасибо.
Постоянно читаю. Просто грандиозная работа.