В первой статье «Хакаем CAN шину авто для голосового управления» я подключался непосредственно к CAN шине Comfort в двери своего авто и исследовал пролетающий траффик, это позволило определить команды управления стеклоподъемниками, центральным замком и др.
В этой статье я расскажу как собрать свою уникальную виртуальную или цифровую панель приборов и получить данные с любых датчиков в автомобилях группы VAG (Volkswagen, Audi, Seat, Skoda).
Мною был собран новый CAN сниффер и CAN шилд для Raspberry Pi на базе модуля MCP2515 TJA1050 Niren, полученные с их помощью данные я применил в разработке цифровой панели приборов с использованием 7″ дисплея для Raspberry Pi. Помимо простого отображения информации цифровая панель реагирует на кнопки подрулевого переключателя и другие события в машине.
В качестве фреймворка для рисования приборов отлично подошел Kivy для Python. Работает без Иксов и для вывода графики использует GL.
- CAN сниффер из Arduino Uno
- Подслушиваем запросы с помощью диагностической системы VAG-COM (VCDS)
- Разработка панели приборов на основе Raspberry Pi и 7″ дисплея
- Софт панели приборов на Python и Kivy (UI framework)
- Видео работы цифровой панели приборов на базе Raspberry Pi
Под катом полная реализация проекта, будет интересно!
Водительская дверь открыта
- CAN сниффер из Arduino Uno
- Подслушиваем запросы с помощью диагностической системы VAG-COM (VCDS)
- Разработка панели приборов на основе Raspberry Pi и 7″ дисплея
- Софт панели приборов на Python и Kivy (UI framework)
- Видео работы цифровой панели приборов на базе Raspberry Pi
- Приложение на телефон Виртуальная панель приборов
- Устройство проверки спидометра CAN+G
- Спидометр с can шиной
- 🌟 Видео
CAN сниффер из Arduino Uno
Чтобы послушать, что отправляет VCDS в CAN шину я собрал сниффер на макетке из Arduino и модуля MCP2515 TJA1050 Niren.
Схема подключения следующая:
Для прослушивания трафика использовал анализатор CanHackerV2 и прошивку arduino-canhacker для Arduino, которая реализует API совместимое с этой программой. Прошивка в гите https://github.com/autowp/arduino-canhacker.
CanHackerV2 позволяет смотреть пролетающий трафик, записывать и проигрывать команды с заданным интервалом, что очень сильно помогает в анализе данных.
Подслушиваем запросы с помощью диагностической системы VAG-COM (VCDS)
Описание VCDS с официального сайта ru.ross-tech.com:
Программно-аппаратный сканер VCDS предназначен для диагностики электронных систем управления, устанавливаемых на автомобилях группы VAG. Доступ ко всем системам: двигатель, ACP, АБС, климат-контроль, кузовая электроника и т.п., считывание и стирание кодов неисправностей, вывод текущих параметров, активация, базовые установки, адаптация, кодирование и т.п.
Подключив сниффер к линиям CAN_L и CAN_H в диагностическом шнурке я смог увидеть какие запросы делает VCDS и что отвечает авто.
Особенность авто группы VAG в том, что OBD2 разъем подключен к CAN шине через шлюз и шлюз не пропускает весь гуляющий по сети трафик, т.е. подключившись в OBD2 разъем сниффером вы ничего не увидите. Чтобы получить данные в OBD2 разъёме нужно отправлять шлюзу специальные запросы. Эти запросы и ответы видно при прослушивании трафика от VCDS. Например вот так можно получить пробег.
В VCDS можно получить информацию почти с любого датчика в машине. Меня в первую очередь интересовала информация, которой вообще нет на моей приборке, это:
- температура масла
- какая именно дверь открыта
Читайте также: Размер диска для шин матиза
Скорость, обороты, температура ОЖ, пробег, расход, место в баке и другие запросы я тоже получил, для справки размещу.
Разработка панели приборов на основе Raspberry Pi и 7″ дисплея
В качестве аппаратной части я выбрал Raspberry Pi. Была идея использовать Android планшет, но показалось, что на Raspberry Pi будет проще и быстрее. В итоге докупил официальный 7″ дисплей, и сделал CAN шилд из модуля TJA1050 Niren.
OBD2 штекер использовал от старого ELM327 адаптера.
Используются контакты: CAN_L, CAN_H, +12, GND.
Тесты в машине прошли успешно и теперь нужно было все собрать. Плату дисплея, Raspberry Pi и блок питания разместил на куске черного пластика, очень удачно подобрал пластмассовые втулки, с ними ничего не болтается и надежно закреплено.
Местом установки выбрал бардачок на торпедо, которым я не пользуюсь. По примеркам в него как раз помещается весь бутерброд.
Напильником довел лист черного пластика до размера крышки бардачка, к нему прикрепил бутерброд и дисплей. Для прототипа сойдет, а 3D модель с крышкой для дисплея и всеми нужными крепежами уже в разработке.
Софт панели приборов на Python и Kivy (UI framework)
Параллельно со сборкой самой панели приборов я вел разработку приложения для отображения информации с датчиков. В самом начале я не планировал какой либо дизайн.
Первая версия панели приборов
По мере разработки решил визуализировать данные более наглядно. Хотел гоночный дизайн, а получилось, что-то в стиле 80-х.
Вторая версия панели приборов
Продолжив поиски более современного дизайна я обратил внимание какие цифровые приборки делают автопроизводители и постарался сделать что-то похожее.
Третья версия панели приборов
Ранее, я никогда не разрабатывал графические приложения под Linux поэтому не знал с чего начать. Вариант на вебе простой в разработке, но слишком много лишних компонентов: иксы, браузер, nodejs, хотелось быстрой загрузки. Попробовав Qt PySide2 я понял, что это займет у меня много времени, т.к. мало опыта. Остановился на Kivy — графический фреймворк для Python, простой в понимании с полной библиотекой графических элементов и дающий возможность быстро создать мобильный интерфейс.
Kivy позволяет запускать приложение без Иксов, прямо из консоли, в качестве рендера используется OpenGL. Благодаря этому полная загрузка системы может происходить за 10 секунд.
Алгоритм работы следующий, используется 3 потока:
- В главном потоке работаем с графическими элементы (спидометр, тахометр, часы, температуры и др) на экране
- Во втором потоке каждые 5 мс делаем опрос следующего датчика
- В третьем потоке слушаем CAN шину, получив ответ парсим его и обновляем соответствующий графический элемент
Работает стабильно, самый долгий процесс в разработке был связан с рисованием дизайна. На данный момент обкатываю решение и потихоньку пишу мобильное приложение для iOS, чтобы любой мог попробовать цифровую панель приборов.
Читайте также: Как списывать шины в бюджетной организации
Проект цифровой панель приборов открытый. Рад буду предложениям и комментариям!
Видео работы цифровой панели приборов на базе Raspberry Pi
Приложение на телефон Виртуальная панель приборов
Для телефона написал приложение — виртуальная панель приборов, данные от машины передаются через ELM327 Wi-Fi адаптер. Адаптер подключается в OBD2 разъем, делает запросы по CAN шине и возвращается ответы в приложение по Wi-Fi.
Приложение VAG Virtual Cockpit уже в AppStore. Пока, что только под iPhone/iPad, но Android версия планируется. Приложение решил сделать платным с минимальной символической стоимостью.
Если есть желание поддержать проект, то вот ссылка на приложение, принимаю любые замечания и предложения!
VAG Virtual Cockpit
Видео:CAN шина👏 Как это работаетСкачать
Устройство проверки спидометра CAN+G
Устройство проверки спидометра CAN+G
Предназначено для автомобилей оборудованных цифровой шиной данных CAN или использующих датчик скорости. Назначение: Устройство предназначено для проверки работы электронных спидометров автомобилей, а так же связанных систем автомобиля контролирующих скорость и пробег.
Принцип работы заключается в эмуляции движения автомобиля используя штатные процедуры работы автомобиля. Тем самым устройство обеспечивает полное прохождение сигнала скорости по всем узлам автомобиля.
Основные особенности: Поддержка: CAN и датчиков скорости в одном устройстве. Программируемая скорость. Имитация движения для работы с тахографом. Все настройки устройства с помощью переключателей. Как это работает? В режиме “датчик скорости” устройство выполняет роль датчика скорости автомобиля и полностью его заменяет. Датчик скорости выдает скорость в виде импульсного сигнала. Чем чаще импульсы, тем выше скорость. Пробег автомобиля вычисляется подсчетом количества импульсов, которые суммируются с текущим основным пробегом.
В режиме “CAN” устройство как правило выполняет роль модуля ABS и подключается к цифровой шине данных CAN. На большинстве автомобилей эта цифровая шина данных является ещё и диагностической и выведена в диагностический разъём автомобиля. Подавая сигнал скорости цифровую сеть автомобиля, в точности так же как модуль ABS, устройство заставляет автомобиль полностью ощущать себя в движении.
Переключатель “A” предназначен для выбора, как будет работать устройство, с датчиком скорости или по CAN. Переключатель “B” предназначен для коммутации выходных сигналов устройства на контакты разъёма ОБД2.
Это позволяет легко направить CAN или импульсный сигнал на нужные контакты разъёма по желанию. Настройка. Новое устройство перед использованием обязательно нужно настроить для работы с автомобилем.
Выберите с помощью переключателя A режим работы “CAN” или “ДАТЧИК СКОРОСТИ”.
Настройка устройства в режиме CAN 1 и CAN 2 на нужную марку автомобиля: Находим в Таблице режимов нужную марку и модель автомобиля. Номер пункта таблицы соответствует номеру этой марки. Для того, чтобы установить нужный номер марки авто необходимо проделать следующее: 1. нажать кнопку устройства и удерживая её подключить устройство к диагностическому разъему автомобиля (кнопку не отпускаем). 2. индикатор загорится на 2 сек и, погаснет, с этого момента необходимо отсчитывать количество последующих вспышек индикатора, которое соответствует номеру устанавливаемой марки авто. Когда индикатор включится нужное количество раз, необходимо отпустить кнопку устройства. 3. индикатор погаснет, устройство перезагрузится, затем быстрыми морганиями отобразит номер установленной марки автомобиля.. Если нужный режим установлен правильно, включаем зажигание и контролируем скорость и увеличение пробега по одометру. Если нет повторяем процедуру. Для некоторых автомобилей необходимо подобрать оптимальный подрежим, обеспечивающий максимальную скорость намотки. Переключение подрежима осуществляется кратковременным нажатием на кнопку устройства, (только когда зажигание включено и индикатор устройства горит постоянно). В каждом режиме может быть до от 4 до 16 подрежимов, переключающихся по кольцу. Последний выбранная марка автомобиля и подрежим запоминается.
Читайте также: Давление в шинах тойота раум
При подключении устройства к диагностическому разъёму индикатор загорится на 2 секунды, показывая, что питание присутствует и устройство работает. Затем индикатор гаснет на 2 секунды, и начинает быстро с интервалом 0,5 сек, отображать номер марки автомобиля. После этого включаем зажигание. Примечание, новое устройство поставляется с установленной маркой автомобиля 1. Если параметры шины данных автомобиля и выбранной марки авто совпадают, индикатор устройства будет гореть постоянно, и показания одометра начнут увеличиваться. В этом состоянии можно с помощью кнопки, переключать подрежимы работы устройства. Работа устройства контролируется по индикатору основного или суточного пробега. В Рено Fluense и Latitude только по основному пробегу.
Не используйте устройство в режиме CAN на движущемся автомобиле!
Видео:Приборка Приора на CAN-шине. Не работает стрелка.Скачать
Спидометр с can шиной
Электронный спидометр CAN Cockpit – это прибор для индикации данных о скорости и пробеге автомобиля, поступающих из CAN-шины транспортного средства. CAN Cockpit способен обрабатывать и передавать информацию на другие приборы.
Основные преимущества данной модели это:
· Работа по стандартному интерфейсу и CAN-протоколу SAE J1939;
· Отображение текущего значения времени и показаний пробега на дополнительном дисплее, которое вызывается при помощи кнопки управления спидометра;
· Возможность подключения импульсных датчиков или датчиков KITAS®
— Микропроцессорная технология позволяет максимально точно отображать скорость и пройденное расстояние;
— Отображение пройденного расстояния в 7-значном формате на жидкокристаллическом дисплее с дискретностью до 100 м.
— Компактность и удобство конструкции позволяют легко встроить CAN Cockpit в панель приборов любого транспортного средства.
— Выходы для сигналов скорости;
— Выход сигнала с показаниями пробега в формате: 4 импульса/м;
— Выходы сигналов движения/остановки для автономной версии;
— Связь с тахографом посредством шины CAN;
— Возможность подключения импульсных датчиков/датчиков KITAS ®
— Транспортные средства, оснащенные тахографами, для замены штатного спидометра в случае его несовместимости с выходными сигналами тахографа
— Транспортные средства, не оснащенные тахографами
- Свежие записи
- Нужно ли менять пружины при замене амортизаторов
- Скрипят амортизаторы на машине что делать
- Из чего состоит стойка амортизатора передняя
- Чем стянуть пружину амортизатора без стяжек
- Для чего нужны амортизаторы в автомобиле
🌟 Видео
Как определить скорость CAN шины. Диагностика Mitsibushi ASX SRS на столе.Скачать
MCP2515, контроллер CAN шины с интерфейсом SPIСкачать
CAN шина на осциллографе FINIRSI ADS1013DСкачать
Кан шина, что это? Поймет школьник! принцип работыСкачать
Экспресс диагностика CAN шины на автомобиле. №21Скачать
Простая проверка CAN шины. Сканер не видит автомобиль через OBD2. Как правильно выбрать изоленту.Скачать
поиск нерабочей can шины, часть дваСкачать
Кан шина Камаз. Не показывают указателиСкачать
Панель приборов с навигацией CAN на Калину 1Скачать
Подробно про CAN шинуСкачать
установил ЩИТОК приборов ПРИОРА 2 с КАН ШИНОЙ на ПРИОРУ 1 БЕЗ КАН ШИНЫ! салон мечты!Скачать
Обзор трекеров и считывателей для работы с CAN шинойСкачать
Поиск уровня топлива в CAN шине Toyota Camry 2017Скачать
Намотка пробега с помощью CAN крутилки/моталки спидометра через разъем OBD2Скачать
Arduino CAN Sender ( Ардуино отправка пакетов в КАН шину)Скачать
Как управлять автомобилем через CAN-шину?Скачать
arduino can подмотка своими рукамиСкачать
Подмотка спидометра НИВА 2020 CAN через разъем обд2Скачать