Планшет вместо приборной панели

Обновлено: 04.07.2024

Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нём некорректно.
Вам необходимо обновить браузер или попробовать использовать другой.

Илья Люкшин

Ребят кто хочет совмесный проект реализовать? Вместо приборки планшет поставить venator

Tars Tarkas

Илья Люкшин

malec

Илья Люкшин

Там все проще чем кажется. Считывание датчиков идет через ардуино и передает на планшет через вайфай

malec

Там все проще чем кажется. Считывание датчиков идет через ардуино и передает на планшет через вайфай

там считывание по кан шине? А то я смотрел видос парняга прям в место своей приборки к проводам подключался. это меня не устраивает, вот бы он распозновал данные по кан шине как штатный комп. тогда то что надо . чтоб не лезть в провода. есть OBD2 сканер , он по синезубу передаёт данные на мой планшет, но нет красивой визуализации приборки не в одной программе. Лепиш програмные мониторы, че попало(((

Илья Люкшин

там считывание по кан шине? А то я смотрел видос парняга прям в место своей приборки к проводам подключался. это меня не устраивает, вот бы он распозновал данные по кан шине как штатный комп. тогда то что надо . чтоб не лезть в провода. есть OBD2 сканер , он по синезубу передаёт данные на мой планшет, но нет красивой визуализации приборки не в одной программе. Лепиш програмные мониторы, че попало(((

Не тут все напрямую. У меня приора. Возьму разьем от приборки на авторазборе и на каждый датчик выведу показание. Для меня так надежнее

profyev

там считывание по кан шине? А то я смотрел видос парняга прям в место своей приборки к проводам подключался. это меня не устраивает, вот бы он распозновал данные по кан шине как штатный комп. тогда то что надо . чтоб не лезть в провода. есть OBD2 сканер , он по синезубу передаёт данные на мой планшет, но нет красивой визуализации приборки не в одной программе. Лепиш програмные мониторы, че попало(((

если очень хотите, можно придумать что-то.
У меня машина только с OBD2, да и не все параметры выдает
т.ч. в моем случае без подключения к приборке никак

Илья Люкшин

если очень хотите, можно придумать что-то.
У меня машина только с OBD2, да и не все параметры выдает
т.ч. в моем случае без подключения к приборке никак

Поэтому я напрямую все делаю. По сути нечего особого сложного там нет

malec

))) понимаю, приора , тут без вариантов. а я бы не хотел внедряться в панель моего хоть и не свежего, но японского)))"Авика", сигналку с прогревом внедрил, всё по уму, т.к. японская без прогрева. Но вот панель. я даже на "голове" штатной езжу из за компа, он с монитором связан и на него все данные выводит. Как-то было чуть не изменил ему, т.е. голову поменял на другую с андроидом. но остановило то, что моник стал сам выезжать когда захочет и заезжать тоже как пожелает. И на монике данных с компа не стало, т.е. всё нарисованно а движений и расчётов нет. Вот и езжу со штатной головой, без навигатора и телика . Зато есть данные в реальном времени о моментальном и среднем расходе топлива (ну и не только).))))

malec

если очень хотите, можно придумать что-то.
У меня машина только с OBD2, да и не все параметры выдает
т.ч. в моем случае без подключения к приборке никак

Я первый раз слышу что через OBD2 т.е. по кан шине чего-то не узнать об автомобиле.

С тех пор, как вышли Nexus 7 и другие производительные планшеты, каждый автолюбитель мечтает установить девайс в свою машину. Но это влечёт за собой ряд определённых трудностей, поэтому многие отказываются от затеи. Среди них бюджет, сохранение элементов управления, автономной навигации, монтаж и бесперебойная работа, как в обычной автомобильной стереосистеме. Давайте более детально рассмотрим процесс подключения планшета в автомобиле на примере Nvidia Shield Tablet LTE, внешнего ЦАП и 4-канального автомобильного усилителя.

Как установить планшет в автомобиль


Установка планшета в автомобиль.

Самый простой способ использования планшета

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

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





Заменяем планшетом магнитолу (с подключением дополнительного усилителя)

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

  • Лучше всего выбирать устройство, в котором есть много функций. Важно чтобы в нем был Wi-Fi, Bluetooth, GPS-навигация.
  • Если принципиально наличие радиостанций, то лучше отдавать предпочтение моделям от малоизвестных производителей. Более крупные компании уже давно отказались от этого модуля.
  • В планшете должна быть возможность подключения сим-карты. В этом случае удастся настроить навигатор и пропадет проблема с радио. Можно прослушивать любые станции через интернет, не переживая о помехах.


Какие проблемы могут возникнуть

Большинство машин оснащены цифровой CAN-шиной. Поэтому просто поставить планшет не всегда получается. Придется найти способ, как «подружить» гаджет со штатным усилителем. Самый простой вариант приобрести небольшой адаптер AZ-FM. Оно помогает «обмануть» штатную систему, которая начинает видеть планшет в качестве стандартной магнитолы. Но, в этом случае будет недостаточно громкости. Тогда придется все равно ставить дополнительный «усилок». Проще всего использовать для этого любую старую магнитолу. Она подсоединяется к AUX, потом идет на AZ-FM и после этого к штатному усилителю. Но, это слишком длинная цепь. К тому же адаптер стоит не так дешево, порядка 900-1000 рублей.

Тогда можно купить в радиомагазине дополнительный усилитель. Он, безусловно, будет работать, но во время прослушивания музыки появится фон.

Поэтому проще всего разобрать AZ-FM и перепаять на нем сопротивление. Но фон может остаться. Можно попробовать выпаять из планшета провода, выводить массу в разные места. Но все равно дополнительный шум может оставаться, даже если подсоединиться напрямую к аккумулятору. Тогда покупаем фильтр (для автомагнитолы) и шумы исчезают.


Однако планшет, работающий на своем ОС, не станет самостоятельно интегрироваться с автомобильной системой. Поэтому нужно подумать о том, как его настроить.


Работа с посадочным местом

Теперь нужно замерить отверстие, где ранее находилась магнитола. Исходя из размеров, необходимо вырезать лист пластика. Его ширина и длина должны приблизительно на 1 см превосходить замеренные размеры. Этот лист пластика крепится с помощью эпоксидной смолы на месте, где ранее была магнитола. Закрепить ее нужно в 6 точках.

В середине этой пластины высверливается отверстие для кабелей. Затем поверхность пластиковой пластины желательно закрасить подходящим цветом. По уголкам нужно приклеить держатели. Они клеятся на эпоксидную смолу.

После этого кабеля подключаются к планшету.





Программируем планшет

Прежде всего, нужно сделать так, чтобы планет включался после зажигания. Для этого можно воспользоваться полезной утилитой microDroid. Однако в некоторых автомобилях «музыка» должна включаться через несколько секунд после включения двигателя. Поэтому можно воспользоваться более «навороченной» программой Tasker (правда утилита платная, обойдется в 100 рублей). Она позволяет произвести более тонкую настройку включения гаджета.

Также нужно продумать об организации медиа проигрывателя. Можно найти огромное количество скинов и подобрать наиболее удобный для себя. Но, как правило, автовладельцы отдают предпочтение утилитам Astro и Google Music. Второй вариант удобнее, но многие отмечают, что после очередного обновления, программу наделили слишком светлым интерфейсом, из-за чего плейлист и навигация в солнечный день видны намного хуже.


Кто-то для создания плейлистов использует всеми любимый WinAmp и потом закидывает треки на планшет. Однако в этом случае могут возникнуть проблемы с определением времени проигрывания музыки и русскоязычными названиями песен. К слову, такая же проблема нередко возникает и у Google Music. В этом случае можно воспользоваться программами Multi File Translator или TagScanner или аналогичными. Они автоматически переименуют треки, используя латиницу.


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

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

В этом случае оптимальными будут два решения:

    Button Savior. Это симулятор аппаратных кнопок ОС Andro >


Дополнительно можно установить утилиты для контроля систем автомобиля (например, можно вывести диагностику с ELM 327).

Такую приборную панель можно собрать на любой автомобиль, это универсальное устройство. Мы собирали приборную панель на базе уже существующей под названием Venator.

Для ее создания потребуются следующие комплектующие:

  • Контроллер Arduino MEGA
  • Планшет с операционной систем Androir
  • Модуль Wi-Fi esp8266
  • Преобразователь питания с 12 до 5 вольт (можно использовать любое автомобильное зарядное устройство для мобильных телефонов).

К контроллеру Arduino подключаются все датчики автомобиля. В нашем случае потребовалось еще установить датчик скорости в коробку передач вместо тросика привода спидометра. А так же завести провод в салон автомобиля от коммутатора зажигания, чтобы контроллер смог отображать обороты двигателя (это нужно было сделать, так как в ОКЕ не был установлен тахометр).

Универсальная панель приборов VENATOR

Программа Venator

использует платформу
Adobe AIR
. Благодаря этому достигается высокое качество графики и совместимость с платформами
Windows
и
Android
. Так же присутствуют несколько стилей оформления активных элементов пользовательского интерфейса и возможность использовать пользовательские фоны (скины). Передача обработанных данных осуществляется по интерфейсам
COM over USB, Ethernet, Wi-Fi
, причем одновременно, что дает возможность, запустив программу на нескольких устройствах, получать на них данные с одного блока обработки

На сегодняшний день доступен следующий функционал:

1. Индикация скорости 2. Индикация оборотов ДВС 3. Сигналы зеленой и красной зоны оборотов ДВС т.н. SHIFT (настраиваются пользователем) 4. Общий одометр (начальный пробег задается пользователем) 5. Суточный сбрасываемый одометр (сбрасывается кнопкой) 6. Сервисный счетчик обратного отсчета (интервал межсервисного пробега задается пользователем) 7. Индикация напряжения бортсети (калибруется пользователем) 8. Индикация температуры ДВС (калибруется пользователем) 9. Индикация остатка топлива (калибруется пользователем) 10. Контрольные лампы 11. Часы 12. 5 скинов 13. Дневной и ночной режим каждого скина (переключение при включении габаритов или по датчику освещенности) 14. 4 стиля стрелок (выбирается пользователем)

На данный момент в базовую версию программы включены 5 скинов:

Возможно изготовления скина по персональному заказу

Ограничение демоверсии всего одно – не отображается скорость выше 60 км/ч

Опробованные варианты построения системы

Последний раз редактировалось Venator; 13.01.2016 в 00:22 . Причина: Обновления

Скетч (прошивка) для контроллера Arduino Mega

unsigned long micros_sp = 0, micros_th = 0; volatile int tz; volatile int sz; volatile int sp; //импульсы спидометра volatile int th; //импульсы тахометра int analogInput [15]; //массив аналоговых значений int digitalInput[29]; //массив цифровых значений String resultString = «»; //строка int i; //счетчик циклов //******************************************************************** void setup() < for(i=0; i digitalInput=0; > for(i=0; i analogInput=0; > Serial.begin(115200); Serial2.begin(115200); //инициализация ком порта attachInterrupt(0, speedometr, RISING); //прерывание спидометра по фронтам импульса attachInterrupt(1, tahometr, RISING); //прерывание тахометра по фронтам импульса > //******************************************************************** void loop() < analogInput[0] = analogRead(0); // B13 напряжение analogInput[1] = analogRead(1); // B24 топливо analogInput[2] = analogRead(2); // B21 температура охлаждения analogInput[3] = analogRead(8); // analogInput[4] = analogRead(7); // analogInput[5] = analogRead(3); // analogInput[6] = analogRead(4); // analogInput[7] = analogRead(9); // analogInput[8] = analogRead(10); // analogInput[9] = analogRead(11); // analogInput[10] = analogRead(12); // analogInput[11] = analogRead(13); // analogInput[12] = analogRead(14); // analogInput[13] = analogRead(15); // analogInput[14] = analogRead(6); //

digitalInput[0] = digitalRead(4); // зажигание // digitalInput[1] = digitalRead(5); // //******************************************************************** digitalInput[2] = digitalRead(53) + // digitalRead(51) * 2; // //******************************************************************** digitalInput[3] = digitalRead(5) + // A14 левый поворот digitalRead(6) * 2; // A13 правый поворот //******************************************************************** digitalInput[4] = digitalRead(8) + // A18 ближний digitalRead(9) * 2; // A17 дальний //******************************************************************** digitalInput[5] = digitalRead(10) + // А16 птф передние digitalRead(11) * 2; // A15 птф задний //******************************************************************** digitalInput[6] = digitalRead(23); // A23 чек digitalInput[7] = !digitalRead(21); // B 9 — уровень тж digitalInput[8] = !digitalRead(31); // A19 — ручник digitalInput[9] = digitalRead(25); // B 3 износ колодок digitalInput[10] = !digitalRead(45); // B10 — лампа топлива digitalInput[11] = !digitalRead(51); // B12 — уровень ож digitalInput[12] = !digitalRead(47); // А24 — давление масла digitalInput[13] = digitalRead(27); // A20 лампа вентилятора digitalInput[14] = !digitalRead(29); // A23 зарядка digitalInput[15] = digitalRead(33); // A 5 абс digitalInput[16] = digitalRead(35); // A20 srs digitalInput[17] = digitalRead(37); // A 3 ремень digitalInput[18] = digitalRead(39); // B 1 двери digitalInput[19] = 0;//digitalRead(22); // B 2 p digitalInput[20] = 0;//digitalRead(24); // А22 r digitalInput[21] = 0;//digitalRead(26); // A 7 n digitalInput[22] = 0;//digitalRead(28); // B 6 d digitalInput[23] = 0;//digitalRead(30); // B 5 s digitalInput[24] = digitalRead(41); // A 8 резерв digitalInput[25] = 0;//digitalRead(32); // A 9 резерв digitalInput[26] = digitalRead(43); // A10 резерв digitalInput[27] = 0;//digitalRead(34); // A11 резерв digitalInput[28] = digitalRead(49); // B 4 резерв

1 Тема от Admin 2016-01-19 07:23:52

Тема: Виртуальная комбинация приборов ВАЗ на Andro >

[видео] Вот такой тюнинг приборной панели. Состоит целиком из экрана (дисплея), как на современных иномарках, например, audi. Как такое удалось реализовать? Автор не отвечает.


Такую приборную панель можно собрать на любой автомобиль, это универсальное устройство. Мы собирали приборную панель на базе уже существующей под названием Venator.

Для ее создания потребуются следующие комплектующие:

  • Контроллер Arduino MEGA
  • Планшет с операционной систем Androir
  • Модуль Wi-Fi esp8266
  • Преобразователь питания с 12 до 5 вольт (можно использовать любое автомобильное зарядное устройство для мобильных телефонов).

К контроллеру Arduino подключаются все датчики автомобиля. В нашем случае потребовалось еще установить датчик скорости в коробку передач вместо тросика привода спидометра. А так же завести провод в салон автомобиля от коммутатора зажигания, чтобы контроллер смог отображать обороты двигателя (это нужно было сделать, так как в ОКЕ не был установлен тахометр).

Схема

Датчики к контроллеру подключить необходимо по следующей схеме:


Скетч (прошивка) для контроллера Arduino Mega

Настройка ESP-8266

Перед тем как подключать Модуль ESP8266 к схеме его нужно прошить и настроить в режиме прозрачного моста Tcp2uart (tcp to uart), чтобы полученные данные с ком-порта он передавал планшету по Wi-Fi.

Прошивать лучше через USB-UART преобразователь, который должен иметь выход источника 3.3V для питания ESP8266. Так же этот источник должен обеспечить необходимый ток не менее 200мА.

Готово! Теперь при подключении модуля ESP-8266 к ардуино он работает в режиме прозрачного моста и по Wi-Fi передает необходимые данные.

Приложение можете скачать по ссылке.

Благодарим пользователя Frud портала Drive2 за опубликованную версию приложения и описание метода установки приложения:

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

ПРИМЕЧАНИЕ! Перед установкой автозагрузки желательно настроить и отладить работу приложения.

После запуска приложения нужно зайти в настройки (нажать на значок шестеренки справа вверху). Тут надо указать ip-адрес и порт (В нашем примере этими значениями являются: адрес 192.168.4.1 и порт 3333).

А вот как выглядит приборная панель, установленная в ОКУ:

Желаем успеха в реализации данного проекта


Универсальная панель приборов VENATOR представляет собой программно-аппаратную систему, позволяющую дублировать показания штатной приборной панели автомобиля, и выводить их в графическом виде, на дисплее CAR PC под управлением Windows (на отдельном, или в составе фронтенда на основном) или на разного рода ANDROID устройствах. Блок сбора данных не использует протоколы СAN, K-line, OBD и подобные, чем принципиально отличается от аналогичных решений. Все штатные датчики подключаются непосредственно к блоку. Блок опрашивает датчики с периодом 50 мс, и передает данные в цифровом виде в программу визуализации. Независимый опрос датчиков позволяет значительно повысить частоту опроса, а также использовать систему на автомобилях не имеющих ЭБУ (карбюраторные, дизельные, электро).
Система состоит из Блока сбора и обработки данных Venator PSU, программы Venator и устройства отображения (компьютер на Windows или Android устройство)

Программа Venator использует платформу Adobe AIR. Благодаря этому достигается высокое качество графики и совместимость с платформами Windows и Android. Так же присутствуют несколько стилей оформления активных элементов пользовательского интерфейса и возможность использовать пользовательские фоны (скины).
Передача обработанных данных осуществляется по интерфейсам COM over USB, Ethernet, Wi-Fi, причем одновременно, что дает возможность, запустив программу на нескольких устройствах, получать на них данные с одного блока обработки

На сегодняшний день доступен следующий функционал:
1. Индикация скорости
2. Индикация оборотов ДВС
3. Сигналы зеленой и красной зоны оборотов ДВС т.н. SHIFT (настраиваются пользователем)
4. Общий одометр (начальный пробег задается пользователем)
5. Суточный сбрасываемый одометр (сбрасывается кнопкой)
6. Сервисный счетчик обратного отсчета (интервал межсервисного пробега задается пользователем)
7. Индикация напряжения бортсети (калибруется пользователем)
8. Индикация температуры ДВС (калибруется пользователем)
9. Индикация остатка топлива (калибруется пользователем)
10. Контрольные лампы
11. Часы
12. 5 скинов
13. Дневной и ночной режим каждого скина (переключение при включении габаритов или по датчику освещенности)
14. 4 стиля стрелок (выбирается пользователем)

Мобильное приложение VAG Virtual Cockpit

Мобильное приложение VAG Virtual Cockpit

Я продолжаю изучать CAN шину авто. В предыдущих статьях я голосом открывал окна в машине и собирал виртуальную панель приборов на RPi. Теперь я разрабатываю мобильное приложение VAG Virtual Cockpit, которое должно полностью заменить приборную панель любой модели VW/Audi/Skoda/Seat. Работает оно так: телефон подключается к ELM327 адаптеру по Wi-Fi или Bluetooth и отправляет диагностические запросы в CAN шину, в ответ получает информацию о датчиках.

По ходу разработки мобильного приложения пришлось узнать, что разные электронные блоки управления (двигателя, трансмиссии, приборной панели и др.) подключенные к CAN шине могут использовать разные протоколы для диагностики, а именно UDS и KWP2000 в обертке из VW Transport Protocol 2.0.

Программный сниффер VCDS

Программный сниффер VCDS: CAN-Sniffer

Программный сниффер VCDS: CAN-Sniffer

Чтобы узнать по какому протоколу общаются электронные блоки я использовал специальную версию VCDS с программным сниффером в комплекте. В этот раз никаких железных снифферов на Arduino или RPi не пришлось изобретать. С помощью CAN-Sniffer можно подсмотреть общение между VCDS и автомобилем, чтобы затем телефон мог прикинуться диагностической утилитой и отправлять те же самые запросы.

Я собрал некоторую статистику по использованию диагностических протоколов на разных моделях автомобилей:

VW/Skoda/Seat (2006-2012) - приборная панель UDS. Двигатель и трансмиссия VW TP 2.0

Audi (2006-2012) - приборная панель VW TP 2.0. Двигатель UDS. Трансмиссия VW TP 2.0

VW/Skoda/Seat/Audi (2012-2021) - везде UDS

Протокол UDS

Unified Diagnostic Services (UDS) - это диагностический протокол, используемый в электронных блоках управления (ЭБУ) автомобильной электроники. Протокол описан в стандарте ISO 14229-1 и является производным от стандарта ISO 14230-3 (KWP2000) и ныне устаревшего стандарта ISO 15765-3 (Diagnostic Communication over Controller Area Network (DoCAN)). Более подробно в википедии.

Диагностические данные от двигателя по протоколу UDS (Skoda Octavia A7)

Диагностические данные от двигателя по протоколу UDS (Skoda Octavia A7)

Разбор UDS пакета в формате Single Frame

Разбор UDS пакета в формате Single Frame

Пример запроса и ответа температуры моторного масла:

Запрос температуры моторного масла:

7E0 - Адрес назначения (ЭБУ двигателя)

Байт 0 (0x03) - Размер данных (3 байта)

Байт 1 (0x22) - SID идентификатор сервиса (запрос текущих параметров)

Байт 2, 3 (0x11 0xBD) - PID идентификатор параметра (температура моторного масла)

Байт 4, 5, 6, 7 (0x55) - Заполнитель до 8 байт

Ответ температуры моторного масла:

7E8 - Адрес источника (Диагностический прибор)

Байт 0 (0x05) - Размер данных (5 байт)

Байт 1 (0x62) - Положительный ответ, такой SID существует. 0x22 + 0x40 = 0x62. (0x7F) - отрицательный ответ

Байт 2, 3 (0x11 0xBD) - PID идентификатор параметра (температура моторного масла)

Байт 4, 5 (0x0B 0x74) - значение температуры моторного масла (20.1 °C формулу пока что не смог подобрать)

Байт 6, 7 (0x55) - Заполнитель до 8 байт

Первая версия мобильного приложения VAG Virtual Cockpit умела подключаться только к приборной панели по UDS.

VAG Virtual Cockpit - экран с данными от приборной панели по протоколу UDS

VAG Virtual Cockpit - экран с данными от приборной панели по протоколу UDS

VW Transport Protocol 2.0

Volkswagen Transport Protocol 2.0 используется в качестве транспортного уровня, а данные передаются в формате KWP2000. Keyword Protocol 2000 - это протокол для бортовой диагностики автомобиля стандартизированный как ISO 14230. Прикладной уровень описан в стандарте ISO 14230-3. Более подробно в википедии.

Диагностические данные от двигателя по протоколу KWP2000 (Skoda Octavia A5)

Диагностические данные от двигателя по протоколу KWP2000 (Skoda Octavia A5)

Разбор протокола VW TP 2.0 на примере подключения к первой группе двигателя:

200 01 C0 00 10 00 03 01

Настраиваем канал с двигателем. Байт 0: 0x01 - двигатель, 0x02 - трансмиссия. Байт 5,4: 0x300 - адрес источника

201 00 D0 00 03 40 07 01

Получили положительный ответ. Байт 5,4: 0x740 - к двигателю обращаемся по этому адресу

740 A0 0F 8A FF 32 FF

Настраиваем ЭБУ на отправку сразу 16 пакетов и выставляем временные параметры

300 A1 0F 8A FF 4A FF

Получили положительный ответ

740 10 00 02 10 89

Отправляем команду KWP2000 startDiagnosticSession. Байт 0: 0x10 = 0b0001 - последняя строка данных + 0x0 счетчик отправляемых пакетов 0 (0x0 - 0xF)

Получили первый ACK

300 10 00 02 50 89

Получили положительный ответ. Байт 0: 0x10 - cчетчик принимаемых пакетов 0

Мы отправили первый ACK, что получили ответ

740 11 00 02 21 01

Делаем запрос. Байт 0: 0x11 - счетчик отправляемых пакетов 1. Байт 3: 0x21 - запрос параметров. Байт 4: 0x01 - из группы 1

Получили второй ACK

300 22 00 1A 61 01 01 C8 13

Байт 0: 0x22 - 0b0010 (не последняя строка данных) + 0x02 (cчетчик принимаемых пакетов 2). Байт 1,2: 0x00 0x1A длина 26 байт. Байт 3,4: 0x61 0x01 - положительный ответ на команду запроса параметров 0x21+0x40=0x61 из 0x1 группы. Байт 5: 0х01 - Запрос RPM (соответсвует протоколу KW1281). Байт 6,7: (0xC8 * 0x13)/5 = 760 RPM (формула соответствует протоколу KW1281)

300 23 05 0A 99 14 32 86 10

Байт 1: 0x05 - запрос ОЖ. Байт 2,3: (0x0A * 0x99)/26 = 57.0 C. Байт 4: 0x14 = запрос лямбда контроль %. Байт 5,6: 0x32*0x86; Байт 7: 0х10 - двоичная настройка

300 24 FF BE 25 00 00 25 00

0x25 0x00 x00 - Заполнитель, до 8 параметров

300 15 00 25 00 00 25 00 00

Байт 0: 0x15 - 0b0001 (последняя строка данных) + 0x5 (счетчик принимаемых пакетов 5)

Отправляем ACK. Прибывляем к нашему предыдущему ACK количество полученных пакетов 0xB1 + 0x4 = 0xB5

Запрос KeepAlive, что мы еще на связи

740 A1 0F 8A FF 4A FF

Мы разрываем связь

ЭБУ в ответ тоже разрывает связь

Во второй версии мобильного приложения VAG Virtual Cockpit появилась возможность диагностировать двигатель и трансмиссию по протоколу VW TP 2.0.

VAG Virtual Cockpit - экран с данными от двигателя по протоколу VW TP 2.0

VAG Virtual Cockpit - экран с данными от двигателя по протоколу VW TP 2.0

Диагностический адаптер ELM327

Для меня некоторое время было вопросом, как получить данные из CAN шины и передать на телефон. Можно было бы разработать собственный шлюз с Wi-Fi или Bluetooth, как это делают производители сигнализаций, например Starline. Но изучив документацию на популярный автомобильный сканер ELM327 понял, что его можно настроить с помощью AT команд на доступ к CAN шине.

Копия диагностического сканера ELM327

Копия диагностического сканера ELM327 Не все ELM327 одинаково полезны

Оригинальный ELM327 от компании elmelectronics стоит порядка 50$, в России я таких не встречал в продаже. У нас продаются только китайские копии/подделки, разного качества и цены 10-30$. Бывают полноценные копии, которые поддерживают все протоколы, а бывают и те которые умеют отвечать только на несколько команд, остальные игнорируют, такие адаптеры не имеют доступ к CAN шине. Я например пользуюсь копией Viecar BLE 4.0, который поддерживает 100% всех функций оригинала.

Последовательность ELM327 AT команд для работы с UDS по CAN шине:

Для работы с протоколом KWP2000 через ELM327 нужно только указать адреса назначения и источника.

Последовательность ELM327 AT команд для работы с VW TP 2.0 по CAN шине:

Мобильное приложение VAG Virtual Cockpit

Для разработки мобильного приложения подключаемого к автомобилю требовалось:

Сниффером собрать трафик от диагностической утилиты VCDS

Изучить работу протоколов UDS, VW TP 2.0, KWP2000

Настроить диагностический сканер ELM327 на работу с UDS и VW TP 2.0

Изучить новый для меня язык программирования Swift

В итоге получилось приложение, которое сочетает в себе функции отображения точных данных панели приборов и диагностика основных параметров двигателя и трансмиссии.

Пару слов про точность данных. Штатная панель приборов не точно показывает скорость - завышает показания на 5-10 км/ч, стрелка охлаждающей жидкости всегда на 90 °C, хотя реальная температура может быть 80 - 110 °C, стрелка уровня топлива до середины идет медленно, хотя топлива уже меньше половины и при нуле на самом деле топливо еще есть в баке. Производитель это делает для удобства и безопасности водителя.

На данный момент приложение показывает следующие параметры:

Приборная панель

Двигатель

Трансмиссия (температура)

1) Какая дверь открыта
2) Скорость
3) Обороты
4) Температура масла
5) Температура ОЖ
6) Топливо в баке в л.
7) Запас хода в км.
8) Средний расход
9) Время в машине
10) Пробег
11) Температура за бортом

1) Обороты
2) Массовый расход воздуха
3) Температура забора воздуха
4) Температура выхлопа (рассчитанная)
5) Критический уровень масла
6) Уровень масла
7) Наддув турбины (реальный)
8) Наддув турбины (ожидаемый)
9) Пропуски зажигания в цилиндрах
10) Углы откатов зажигания в цилиндрах

1) ATF AISIN (G93)
2) DSG6 (G93)
3) Блок управления DSG6 (G510)
4) Масло диска сцепления DSG6 (G509)
5) Мехатроник DSG7 (G510)
6) Процессор DSG7
7) Диск сцепления DSG7

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

Сейчас я провожу тестирование версии 3.0. Приложение доступно только на iOS, после релиза 3.0 перейду к разработке версии для Android.

Читайте также: