PCCar.ru - Ваш автомобильный компьютер

PCCar.ru - Ваш автомобильный компьютер (http://pccar.ru/index.php)
-   Для новичков (http://pccar.ru/forumdisplay.php?f=170)
-   -   Прошу помощи с кан шиной (http://pccar.ru/showthread.php?t=25862)

demtro 28.04.2017 13:23

Прошу помощи с кан шиной
 
Вложений: 1
адаптер собран по схеме от ув. lti1 подключен к ардуино нано, залит следующий скетч:
PHP код:

#include <SPI.h>
#include <mcp2515.h>

struct can_frame canMsg;
MCP2515 mcp2515(10);

void setup() {
Serial.begin(115200);
SPI.begin();

mcp2515.reset();
mcp2515.setBitrate(CAN_33KBPS);
mcp2515.setNormalMode();

Serial.println("------- CAN Read ----------");
Serial.println("ID DLC DATA");
}

void loop() {

if (
mcp2515.readMessage(&canMsg) == MCP2515::ERROR_OK
{
if (
canMsg.can_id 0x10438040HEX//фильтр по ID, при необходимости раскомментировать
{  //фильтр по ID, при необходимости раскомментировать
Serial.print("[");
Serial.print((canMsg.can_id 0x1FFFFFFF), HEX);
Serial.print("] [");
Serial.print(canMsg.can_dlcHEX);
Serial.print("] ");

for (
int i 0i<canMsg.can_dlci++) {
Serial.print(canMsg.data[i], HEX);
Serial.print(" ");

}
Serial.println();
}
}


машина шевроле круз 2013 года шина GMLAN низкоскооростная работает на частоте 33.3kbps данные с ардуины идут. В интернете нашел значения кнопок руля:
Если вдруг кому интересны пакеты кнопок на руле в Cruze:
10 43 80 40 00 — Unpress (All)
10 43 80 40 01 — Vol Up
10 43 80 40 02 — Vol Down
10 43 80 40 03 — Next
10 43 80 40 04 — Prev
10 43 80 40 05 — SRC
10 43 80 40 07 — Mute
Но не могу понять как теперь сделать из всего этого адаптер кнопок руля для планшета, буду очень благодарен за помощь. Так же в этой шине есть данные о температуре за бортом, в последствии очень хотелось бы найти и их.
Кое как разобрался с фильтром по адресу (возможно не совсем правильно) пример получаемых данных приложил в архиве.

lti1 28.04.2017 17:20

По какому ID должны прилетать значения кнопок?

demtro 28.04.2017 17:52

На сколько я понял это id 10 43 80 40

lti1 29.04.2017 13:22

Попробуй этот скетч, что будет происходить при нажатии на разный кнопки.
PHP код:

#include <SPI.h>
#include <mcp2515.h>

struct can_frame canMsg;
MCP2515 mcp2515(10);

void setup() {
    
Serial.begin(115200);
    
SPI.begin();

    
mcp2515.reset();
    
mcp2515.setBitrate(CAN_33KBPS);
    
mcp2515.setNormalMode();

    
Serial.println("------- CAN Read ----------");
    
Serial.println("ID DLC DATA");


void loop() {
    if (
mcp2515.readMessage(&canMsg) == MCP2515::ERROR_OK) {
        if (
canMsg.can_id == 0x10438040//фильтр по ID, при необходимости раскомментировать
        
{  //фильтр по ID, при необходимости раскомментировать
            
Serial.print("[");
            
Serial.print((canMsg.can_id 0x1FFFFFFF), HEX);
            
Serial.print("] ");
            
Serial.println(canMsg.data[0] & 0x07HEX); 
        }
    }



дмитрий 77 29.04.2017 23:32

Есть альтернатива https://play.google.com/store/apps/d..._bus_interface

blogsylar 01.05.2017 11:40

Цитата:

Сообщение от дмитрий 77 (Сообщение 386976)

Далеко не на всех машинах работает, увы

demtro 01.05.2017 20:10

Вложений: 1
данные пошли в таком виде

lti1 01.05.2017 20:22

Если кнопки не нажимать последняя цифра всегда = 0?
PHP код:

[10438040


demtro 01.05.2017 21:47

Там данные идут постоянно, последний архив собран примерно за минуту, т.е если не нажимать ничего данные продолжают идти

lti1 01.05.2017 21:57

Где Вы взяли информацию, что необходимо читать ID 0x10438040?


Часовой пояс GMT +4, время: 05:10.

Работает на vBulletin® версия 3.8.4.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot