Raspberry pi can шина

Raspberry pi can шина

Видео:Как CanHacker , но дешевле от CDEBYTEСкачать

Как CanHacker , но дешевле от CDEBYTE

CAN-Bus with Raspberry Pi: HowTo/Quickstart MCP2515 Kernel 4.4.x+

In this HowTo I will show you how to connect a MCP2515 CAN-Bus module to your Pi and get it running.
I created this HowTo, because almost all other HowTos were outdated and not working with newer kernels and I want to help others with this information.
I am using a recent (on the date of this post) Raspbian image on a Raspberry Pi 2.

First of all run the following command on your Raspbian to check which overlay will work for your kernel:

It’s necessary to modify the CAN-module from ebay, because it has only one VCC pin, but the MCP2515 needs to be powered from 3V3 and the TJA1050 CAN-transceiver needs to be powered from 5V. Powering both chips from 5V would work, but then a level-shifter for the SPI would be needed. The Pis GPIO pins are NOT 5V tolerant.

In my case I cut a trace on the PCB and soldered a pin onto the trace to deliver 5V only to the TJA1050. Be sure to cut the trace before the capacitor (otherwise if there is no capacitor, add one (about 100nF maybe)).

Raspberry pi can шина

Here is a closeup (pin 3 is VCC on the TJA1050):

Raspberry pi can шина

MCP2515Raspberry Pi
VCC1 (3V3)
TJA 1050 VCC2 (5V)
GND6 (GND)
CS24 (CE0)
MISO21 (MISO)
MOSI19 (MOSI)
SCK23 (SCK)
INT22 (GPIO25)

Raspberry pi can шина

First update software and install can-utils:

To activate the driver for the MCP2515 you have to add a kernel overlay, to do so edit the /boot/config.txt

And add the following lines (for kernel 4.4.x+) (then exit with Ctrl+X):

In my case the MCP2515 CAN module has a 8MHz quartz, so the oscillator value has to be two times the frequency = 16000000. (This is one of the caveats I ran into, this was the only way I got my module working).

Now reboot, after the reboot try to setup the the can interface:

If no errors occurred, the can interface should be ready now.
Try to send some messages:

You can also sniff the CAN-bus using candump:

To make the CAN-interface permanent, add the following lines to /etc/network/interfaces

If you find any errors please let me know in the comments.

Видео:ESP32 CAN Monitor Обзор (простейший монитор шины CAN на ESP32)Скачать

ESP32 CAN Monitor Обзор (простейший монитор шины CAN на ESP32)

How to Connect Raspberry Pi to CAN Bus

This tutorial shows you how to connect Raspberry Pi to CAN Bus (e.g. your car), explaining the role of each part and some recurrent errors.

Raspberry pi can шина

Hardware components

Microchip Technology MCP2515
Microchip Technology MCP2551
Quartz 16Mhz
Resistor 22K
Resistor 10K
Capacitor 22pF

Читайте также: Чем отличаются шины для внедорожника от легкового

Resistor 130Ohms
Resistor 4K7

Software apps and online services

In this post, I will explain you how to connect Raspberry Pi to a CAN Bus (e.g. your car).

Firstly, know that Raspberry Pi boards aren’t ready out-of-the-box for CAN.

Bus. are +50 Google Search pages about this topic, we can sum up them in two points:

  • CAN Bus isn’t supported by Raspberry Pi hardware (GPIO).
  • CAN Bus isn’t wasn’t supported by Raspberry Pi software (Raspbian).
  • We will use a bridge between Raspberry Pi and CAN Bus: SPI Bus.
  • We will use a CAN controller supported by Linux/Raspbian: MCP2515.

That means that the below instructions are tested «mainly» for MCP251x family.
It’s a widely used component, I may add more CAN controllers in the future.

That said, the theory remains the same for any component that you are using.

If you have any question or remark, I’ll be happy to help you, feel free to leave a comment.

1.1.1 CAN Wiring
CAN Bus uses two-wires differential signals.
One is called CAN-H (High) and the other CAN-L (Low).

1.1.2 CAN Node
CAN Bus needs at least two nodes to make the network «up».
So testing with one node will not work: this is the mistake n°1: Never use only one CAN Bus node.

1.1.3 CAN Termination
CAN Bus needs termination resistors between CAN-H and CAN-L at each end.
Mainly to avoid signal reflections. ISO 11898 recommends the value R=120Ω.
And that’s the mistake n°2: Without termination your CAN Bus will not work correctly.

1.1.4 CAN Controller
CAN Bus is a multi-master protocol, each node needs a controller to manage its data.
CAN controller is connected to the CAN bus using CAN-H and CAN-L.Example of controllers: MCP2515, SJA100.

1.1.5 CAN Transceiver
CAN controller needs a send/receive chip to adapt signals to CAN Bus levels.
Controller and Transceiver are connected by two wires TxD and RxD.
Examples: MCP2551, TJA1040.

Видео:MCP2515, контроллер CAN шины с интерфейсом SPIСкачать

MCP2515, контроллер CAN шины с интерфейсом SPI

Хакаем CAN шину авто. Виртуальная панель приборов

Raspberry pi can шина

В первой статье «Хакаем CAN шину авто для голосового управления» я подключался непосредственно к CAN шине Comfort в двери своего авто и исследовал пролетающий траффик, это позволило определить команды управления стеклоподъемниками, центральным замком и др.

В этой статье я расскажу как собрать свою уникальную виртуальную или цифровую панель приборов и получить данные с любых датчиков в автомобилях группы VAG (Volkswagen, Audi, Seat, Skoda).

Мною был собран новый CAN сниффер и CAN шилд для Raspberry Pi на базе модуля MCP2515 TJA1050 Niren, полученные с их помощью данные я применил в разработке цифровой панели приборов с использованием 7″ дисплея для Raspberry Pi. Помимо простого отображения информации цифровая панель реагирует на кнопки подрулевого переключателя и другие события в машине.

Читайте также: Шины кама 205 в кирове

В качестве фреймворка для рисования приборов отлично подошел Kivy для Python. Работает без Иксов и для вывода графики использует GL.

  1. CAN сниффер из Arduino Uno
  2. Подслушиваем запросы с помощью диагностической системы VAG-COM (VCDS)
  3. Разработка панели приборов на основе Raspberry Pi и 7″ дисплея
  4. Софт панели приборов на Python и Kivy (UI framework)
  5. Видео работы цифровой панели приборов на базе Raspberry Pi

Под катом полная реализация проекта, будет интересно!

Raspberry pi can шина

Водительская дверь открыта

CAN сниффер из Arduino Uno

Чтобы послушать, что отправляет VCDS в CAN шину я собрал сниффер на макетке из Arduino и модуля MCP2515 TJA1050 Niren.

Raspberry pi can шина

Схема подключения следующая:

Для прослушивания трафика использовал анализатор CanHackerV2 и прошивку arduino-canhacker для Arduino, которая реализует API совместимое с этой программой. Прошивка в гите https://github.com/autowp/arduino-canhacker.

CanHackerV2 позволяет смотреть пролетающий трафик, записывать и проигрывать команды с заданным интервалом, что очень сильно помогает в анализе данных.

Подслушиваем запросы с помощью диагностической системы VAG-COM (VCDS)

Описание VCDS с официального сайта ru.ross-tech.com:

Программно-аппаратный сканер VCDS предназначен для диагностики электронных систем управления, устанавливаемых на автомобилях группы VAG. Доступ ко всем системам: двигатель, ACP, АБС, климат-контроль, кузовая электроника и т.п., считывание и стирание кодов неисправностей, вывод текущих параметров, активация, базовые установки, адаптация, кодирование и т.п.

Raspberry pi can шина

Подключив сниффер к линиям CAN_L и CAN_H в диагностическом шнурке я смог увидеть какие запросы делает VCDS и что отвечает авто.

Raspberry pi can шина

Особенность авто группы VAG в том, что OBD2 разъем подключен к CAN шине через шлюз и шлюз не пропускает весь гуляющий по сети трафик, т.е. подключившись в OBD2 разъем сниффером вы ничего не увидите. Чтобы получить данные в OBD2 разъёме нужно отправлять шлюзу специальные запросы. Эти запросы и ответы видно при прослушивании трафика от VCDS. Например вот так можно получить пробег.

В VCDS можно получить информацию почти с любого датчика в машине. Меня в первую очередь интересовала информация, которой вообще нет на моей приборке, это:

  • температура масла
  • какая именно дверь открыта

Скорость, обороты, температура ОЖ, пробег, расход, место в баке и другие запросы я тоже получил, для справки размещу.

Разработка панели приборов на основе Raspberry Pi и 7″ дисплея

В качестве аппаратной части я выбрал Raspberry Pi. Была идея использовать Android планшет, но показалось, что на Raspberry Pi будет проще и быстрее. В итоге докупил официальный 7″ дисплей, и сделал CAN шилд из модуля TJA1050 Niren.

Raspberry pi can шина

OBD2 штекер использовал от старого ELM327 адаптера.

Raspberry pi can шина

Используются контакты: CAN_L, CAN_H, +12, GND.

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

Читайте также: Адреса заправок с подкачкой шин

Raspberry pi can шина

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

Raspberry pi can шина

Напильником довел лист черного пластика до размера крышки бардачка, к нему прикрепил бутерброд и дисплей. Для прототипа сойдет, а 3D модель с крышкой для дисплея и всеми нужными крепежами уже в разработке.

Raspberry pi can шина

Софт панели приборов на Python и Kivy (UI framework)

Параллельно со сборкой самой панели приборов я вел разработку приложения для отображения информации с датчиков. В самом начале я не планировал какой либо дизайн.

Первая версия панели приборов

По мере разработки решил визуализировать данные более наглядно. Хотел гоночный дизайн, а получилось, что-то в стиле 80-х.

Вторая версия панели приборов

Продолжив поиски более современного дизайна я обратил внимание какие цифровые приборки делают автопроизводители и постарался сделать что-то похожее.

Третья версия панели приборов

Ранее, я никогда не разрабатывал графические приложения под Linux поэтому не знал с чего начать. Вариант на вебе простой в разработке, но слишком много лишних компонентов: иксы, браузер, nodejs, хотелось быстрой загрузки. Попробовав Qt PySide2 я понял, что это займет у меня много времени, т.к. мало опыта. Остановился на Kivy — графический фреймворк для Python, простой в понимании с полной библиотекой графических элементов и дающий возможность быстро создать мобильный интерфейс.

Kivy позволяет запускать приложение без Иксов, прямо из консоли, в качестве рендера используется OpenGL. Благодаря этому полная загрузка системы может происходить за 10 секунд.

Алгоритм работы следующий, используется 3 потока:

  1. В главном потоке работаем с графическими элементы (спидометр, тахометр, часы, температуры и др) на экране
  2. Во втором потоке каждые 5 мс делаем опрос следующего датчика
  3. В третьем потоке слушаем CAN шину, получив ответ парсим его и обновляем соответствующий графический элемент

Работает стабильно, самый долгий процесс в разработке был связан с рисованием дизайна. На данный момент обкатываю решение и потихоньку пишу мобильное приложение для iOS, чтобы любой мог попробовать цифровую панель приборов.

Проект цифровой панель приборов открытый. Рад буду предложениям и комментариям!

Видео работы цифровой панели приборов на базе Raspberry Pi

Приложение на телефон Виртуальная панель приборов

Для телефона написал приложение — виртуальная панель приборов, данные от машины передаются через ELM327 Wi-Fi адаптер. Адаптер подключается в OBD2 разъем, делает запросы по CAN шине и возвращается ответы в приложение по Wi-Fi.

Приложение VAG Virtual Cockpit уже в AppStore. Пока, что только под iPhone/iPad, но Android версия планируется. Приложение решил сделать платным с минимальной символической стоимостью.
Если есть желание поддержать проект, то вот ссылка на приложение, принимаю любые замечания и предложения!
VAG Virtual Cockpit

  • Свежие записи
    • Нужно ли менять пружины при замене амортизаторов
    • Скрипят амортизаторы на машине что делать
    • Из чего состоит стойка амортизатора передняя
    • Чем стянуть пружину амортизатора без стяжек
    • Для чего нужны амортизаторы в автомобиле
    • Правообладателям
    • Политика конфиденциальности


    📹 Видео

    Запускаем приборную панель от Ford Fusion на столе, с помощью Arduino и Raspberry PiСкачать

    Запускаем приборную панель от Ford Fusion на столе, с помощью Arduino и Raspberry Pi

    Подробно про CAN шинуСкачать

    Подробно про CAN шину

    CarPlay на Raspberry Pi 4 управляется кнопками автомобиля (Skoda Octavia A5)Скачать

    CarPlay на Raspberry Pi 4 управляется кнопками автомобиля (Skoda Octavia A5)

    Универсальная плата CAN шиныСкачать

    Универсальная плата CAN шины

    ЧТО МОЖНО СДЕЛАТЬ НА Raspberry Pi с AliExpress. Крутые проэкты для Raspberry PiСкачать

    ЧТО МОЖНО СДЕЛАТЬ НА Raspberry Pi с AliExpress. Крутые проэкты для Raspberry Pi

    лекция 403 CAN шина- введениеСкачать

    лекция 403  CAN шина- введение

    CAN шина на осциллографе FINIRSI ADS1013DСкачать

    CAN шина на осциллографе FINIRSI ADS1013D

    Как управлять автомобилем через CAN-шину?Скачать

    Как управлять автомобилем через CAN-шину?

    CAN-шина, простой поиск данных в кан шине автомобиля. Как расшифровать и найти данные в кан шине?Скачать

    CAN-шина, простой поиск данных в кан шине автомобиля. Как расшифровать и найти данные в кан шине?

    Как записать логи CAN шины автомобиля / can bus data logging (English subtitles)Скачать

    Как записать логи CAN шины автомобиля / can bus data logging  (English subtitles)

    Waveshare RS485 CAN HAT For Raspberry Pi, Allows Stable Long-Distance CommunicationСкачать

    Waveshare RS485 CAN HAT For Raspberry Pi, Allows Stable Long-Distance Communication

    LIN шина - пример работы. LIN bus exampleСкачать

    LIN шина - пример работы. LIN bus example

    Siri управляет Skoda Octavia через CAN BUS+Raspberry Pi + HomebridgeСкачать

    Siri управляет Skoda Octavia через CAN BUS+Raspberry Pi + Homebridge

    Arduino CAN Monitor (простейший монитор шины CAN)Скачать

    Arduino CAN Monitor (простейший монитор шины CAN)

    CAN ШИНА || КАК ПОДКЛЮЧИТСЯ К АВТО? || КАК ОТПРАВЛЯТЬ ПАКЕТЫ? || ЧТО МОЖНО ПРОЧИТАТЬ? || RM3Скачать

    CAN ШИНА || КАК ПОДКЛЮЧИТСЯ К АВТО? || КАК ОТПРАВЛЯТЬ ПАКЕТЫ? || ЧТО МОЖНО ПРОЧИТАТЬ? || RM3

    Чтение ID 0B6 шины CAN CONFORT c помощью ESP32 на автомобиле Citroen C5 X7Скачать

    Чтение ID 0B6 шины CAN CONFORT c помощью ESP32 на автомобиле Citroen C5 X7

    CAN Bus Gateway (самодельный кан шлюз с дополнительными плюшками)Скачать

    CAN Bus Gateway (самодельный кан шлюз с дополнительными плюшками)
Поделиться или сохранить к себе:
Технарь знаток