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

PCCar.ru - Ваш автомобильный компьютер (http://pccar.ru/index.php)
-   Общение с машиной (http://pccar.ru/forumdisplay.php?f=14)
-   -   Arduino+CANBUS Shield (http://pccar.ru/showthread.php?t=23221)

T_r_D 29.07.2016 14:22

Цитата:

Сообщение от armlive (Сообщение 365920)
Наконец получилось считать с сигналки, оказалось у модуля MCP2515 нет сопротивления 120ом, как пишут китайцы блин, поставил сопротивление и принимаю и отправляю удачно.
Завтра буду пробовать в машину слать.

оно там перемычкой включается.
И посмотри что у тебя в нормальных модулях, может там совсем и не 120 ом стоит.
В ситроенах такая лафа не прокатывает. Как только ошибаешься с сопротивлением резисторов, то получаешь потери пакетов и крайне не стабильную работу.
тоже касается провода ответвления от шины.
Так что вам крупно повезло. :)

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

Можно и так конечно разобраться, но дольше.

armlive 29.07.2016 16:09

Цитата:

Сообщение от T_r_D (Сообщение 365962)
оно там перемычкой включается.
И посмотри что у тебя в нормальных модулях, может там совсем и не 120 ом стоит.
В ситроенах такая лафа не прокатывает. Как только ошибаешься с сопротивлением резисторов, то получаешь потери пакетов и крайне не стабильную работу.
тоже касается провода ответвления от шины.
Так что вам крупно повезло. :)

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

Можно и так конечно разобраться, но дольше.

Все разобрался, открываю и закрываю)))):dance2:
две посылки с разницей пол секунды.

Soldat6600 31.07.2016 12:37

Ребята помогите пожалуйста, проблема с отправкой данных. Та же самая что и с 1050. Сейчас перепаял на 1054. Данные принимает на ура, на передавать не хочет, заливаю пример отправки, в терминале пишет "Can init ok" и всё. не каких больше данных. Пробовал подключать к машине, и без машины, ставил перемычку на резистор 120ом всё без толку. Может дадите тёплый совет.

Soldat6600 31.07.2016 13:10

Вложений: 1
http://pccar.ru/attachment.php?attac...1&d=1469954733

armlive 31.07.2016 14:07

Цитата:

Сообщение от Soldat6600 (Сообщение 366056)
Ребята помогите пожалуйста, проблема с отправкой данных. Та же самая что и с 1050. Сейчас перепаял на 1054. Данные принимает на ура, на передавать не хочет, заливаю пример отправки, в терминале пишет "Can init ok" и всё. не каких больше данных. Пробовал подключать к машине, и без машины, ставил перемычку на резистор 120ом всё без толку. Может дадите тёплый совет.

А какие ты хочешь данные увидеть?
Там их не будет! Это только отправка.
Чтобы принимать и отправлять воспользуйся этим:
PHP код:

// demo: CAN-BUS Shield, receive data
#include <mcp_can.h>
#include <SPI.h>
long unsigned int rxId;
unsigned char len 0;
unsigned char rxBuf[8];
long unsigned time 0;
MCP_CAN CAN0(10);                               // Set CS to pin 10
unsigned char stmp[8] = {0x000x000xC00x000x000x000x000x00};
unsigned char stmp1[8] = {0x000x000x000x000x000xFF0xFF0x00};



void setup()
{
  
Serial.begin(115200);
  
CAN0.begin(CAN_500KBPSMCP_8MHz);                       // init can bus : baudrate = 500k
  
pinMode(2INPUT);                            // Setting pin 2 for /INT input
  
Serial.println("MCP2515 Library Receive Example...");
}

void loop()
{
  if (!
digitalRead(2))                        // If pin 2 is low, read receive buffer
  
{
    
CAN0.readMsgBuf(&lenrxBuf);              // Read data: len = data length, buf = data byte(s)
    
rxId CAN0.getCanId();                    // Get message ID
    
Serial.print("ID: ");
    
Serial.print(rxIdHEX);
    
Serial.print("  Data: ");

    for (
int i 0leni++)             // Print each byte of the data
    
{
      if (
rxBuf[i] < 0x10)                    // If data byte is less than 0x10, add a leading zero
      
{
        
Serial.print("0");
      }
      
Serial.print(rxBuf[i], HEX);
      
Serial.print(" ");
    }
    
Serial.println();
  }
  if (
millis() - time >= 5000) {
    
// send data:  id = 0x00, standrad flame, data len = 8, stmp: data buf
    
CAN0.sendMsgBuf(0x0008stmp);
    
delay(500);                       // send data per 100ms
    
CAN0.sendMsgBuf(0x74508stmp1);
    
time millis();
  }



Soldat6600 31.07.2016 14:22

спасибо armlive все работает. Вчера снял показания с магнитоллы Q5 с включенным зажиганием и без. В машине если не включить зажигание мафон тухнет, а если включить работает всегда. Снял мафон + дисплей все подключил дома , и попробовал отправлять данные, очень долго мучался, каждые 30 минут вырубается, примерно через 3-4 часа такой работы он и вовсе перестает воспроизводить треки, говорит мол "включи зажигание я больше работать не буду".
И вот посылал я на него различные данные и смотрел как он будет на это реагировать, нашел много чего интересного. Нашел начало кодировки Vin номера авто, послав его несколько раз на мафон он заблокировался (включил защиту компонентов). продолжение Vin номера я не нашел. Чтобы мафон работал на столе без машины обязательно ему нужен его Vin номер или достаточно показать зажигание? Кто нибудь разбирался в такого рода вещах? как мне заставить его работать на столе?

Soldat6600 01.08.2016 13:35

все данные зашифрованны в кан шине, и зажигание и Vin намер автомобиля.

xmetal 01.08.2016 14:31

У фольцвагена Vin номер разбит на 3 части и отправляется с одного ID с периодичностью 200 миллисек, может быть у ауди так же. Зажигание с периодичностью 100 миллисек. Пробовал магнитоле отправлять зажигание постоянно, а не один раз?

Soldat6600 01.08.2016 15:26

В Ауди так же

Soldat6600 01.08.2016 15:33

Цитата:

Сообщение от xmetal (Сообщение 366121)
У фольцвагена Vin номер разбит на 3 части и отправляется с одного ID с периодичностью 200 миллисек, может быть у ауди так же. Зажигание с периодичностью 100 миллисек. Пробовал магнитоле отправлять зажигание постоянно, а не один раз?

В Ауди так же, я пока что нашел только начало Vin номера, он находится под 3с0
с периодичностью 200 миллисекунд и постоянно меняется с прибавлением на одно значение. А до зажигания пока не нашел. Может знаеш под каким ID он находится? К стати VW Tiguan это копия Ауди Q3, один в один.

xmetal 01.08.2016 15:45

Хмм, у меня vin не меняется и передается в открытом виде. Зажигание в VW: ID 2C3, длина сообщения: 1, данные: 0x10 - ключ вынут, 0x01 - ключ в положении 0, 0x07 - АСС, 0x0B - зажигание.

xmetal 01.08.2016 16:01

Посмотрел еще раз сообщения с vin, меняется первый байт: 00, 01, 02. Это порядковый номер частей vin.

Soldat6600 01.08.2016 16:45

Цитата:

Сообщение от xmetal (Сообщение 366139)
Хмм, у меня vin не меняется и передается в открытом виде. Зажигание в VW: ID 2C3, длина сообщения: 1, данные: 0x10 - ключ вынут, 0x01 - ключ в положении 0, 0x07 - АСС, 0x0B - зажигание.

У меня Vin Id 3c0 а сообщение EE 0A 27 00, E8 0C 27 00, E9 0D 27 00, EA 0E 27 00, EB 0F 27 00. Както так, если зациклить это на дисплее появляется начало Vin номера WAU. Может быть такое что продолжение номера по другому адресу? Попробую дальше поковыряю, может чего найду. А ты где зажигание считал?

xmetal 01.08.2016 17:16

Что-то я не понял про вин, ну да ладно.
Цитата:

Сообщение от Soldat6600 (Сообщение 366147)
А ты где зажигание считал?

На разъеме магнитолы.

Вин номер у VW выглядит так, повторяется циклично:
PHP код:

65F 00 00 00 00 00 xx xx xx
65F 01 xx xx xx xx xx xx xx
65F 02 xx xx xx xx xx xx xx
xx
символы vin в ascii формате 


T_r_D 02.08.2016 19:18

Soldat6600 суров ты с платой под 1054 :)
вот так переходники выглядят.
Встают на пины к которым ты припаял провода кверхтормашками.

А магнитола заблокировалась потому что тайминг сообщений не соблюдаешь скорее всего.
Канхакером сними лог и им же крути.

http://g03.a.alicdn.com/kf/HTB1XmLBJ...P20-1-27MM.jpg

Gоlf 04.12.2016 02:44

Народ, как думаете, через CAN-шину можно запустить "автономное отопление" на VW Golf 7 ?

У меня заводская автономка с радио пультом на 1км. Но пульт через пару железобетонных домов не пробивает до стоянки. По этому решил сделать запуск автономной отопительной системы с мобильного телефона. С ардуиной и GSM-модулем работал много, так что тут проблем нет, а вот можно ли управлять автономкой на Golf7 по CAN-шине - не знаю. Более того, у Golf7 целых три кэн-шины на 100 и 500к/бит, так что не представляю к какой подключаться и где? (хотя вроде у них общий шлюз есть, и тогда получается что через какую бы линию ты ни послал команду - шлюз её пропустит на тот CAN-bas на котором сидит устройство принимающее эти команды?)

Может кто-то скажет - "Да лучше подключайся напрямую к контактам радиопульта", но как программисту, мне кажется правильней к общему каналу, а за одно будет возможность дистанционно получать информацию о состоянии машины и в режиме реального времени получать на телефон (что-то типа дополнительной сигнализации).

Lehas 04.12.2016 10:16

Запускать конечно можно, сам подуль телестарта через каншину и запускает вебасту, которая тоже висит на каншине.

Gоlf 05.12.2016 04:56

А на какой CAN-шине надо находиться чтобы услышать (прослушать) пакеты "телестарта" и где к нему лучше подключиться?

Кстати вначале темы несколько раз поднимался вопрос по поводу подключения двух CAN-модулей для создания фильтра сообщений (очевидно чтобы подменять или не пропускать какие-то сообщения). Нашёл довольно удобный и не дорогой модуль стразу c двумя CAN-входами и встроенным STM32 с частотой 72MHz (в 5 раз быстрей ардуины). Мне кажется просто идеально для шлюзов/фильтров, и всего за 30$.
http://ali.ski/bUCUs

http://i.imgur.com/eFlKoiK.png

Lehas 05.12.2016 10:33

Вложений: 2
Похоже обманул, телестарт с отопителем соединен по w-bus. смотрю golf 09г.в.
а уже сам котел подключен по can к шине машины.

Gоlf 05.12.2016 14:46

Я когда-то тоже слышал что у Webasto свой протокол общения.
Но с кнопкой автономки в салоне он наверно всё же через CAN-шину общается?
И даже если НЕТ, то наверно ещё остаётся возможность при звонке из дома в машину запускать автономку как по таймеру (ардуина запрашивает системное время, а потом отправляет с истеме настройки для автономки типа та должна включиться через 1 минуту, как будто я это в меню установил).
Или проще изучить протокол w-bus? Я его описания не нашёл, хотя нашёл несколько фотографий, где видно что там всего 1 провод (хотя рядом ещё какой-то KEY).
http://i.imgur.com/5MXQaux.jpg

Lehas 05.12.2016 15:09

С климата точно по кану запускается.

cherkasoff 05.12.2016 16:54

Цитата:

Сообщение от Gоlf (Сообщение 376452)
Нашёл довольно удобный и не дорогой модуль стразу c двумя CAN-входами и встроенным STM32 с частотой 72MHz (в 5 раз быстрей ардуины). Мне кажется просто идеально для шлюзов/фильтров, и всего за 30$.

А драйвера и среду разработки которая работает нормально в windows 7/10 вы для STM знаете? А то у меня лежит плата на таком чипе, но ничем запрограммировать я её не могу.

lti1 05.12.2016 17:37

Цитата:

Сообщение от cherkasoff (Сообщение 376524)
А драйвера и среду разработки которая работает нормально в windows 7/10 вы для STM знаете? А то у меня лежит плата на таком чипе, но ничем запрограммировать я её не могу.

Привет!
Давненько не заходил...
http://pccar.ru/showthread.php?p=371066#post371066
http://pccar.ru/showthread.php?p=371154#post371154
https://geektimes.ru/post/255534/

cherkasoff 05.12.2016 20:21

Цитата:

Сообщение от lti1 (Сообщение 376530)

Спасибо, почитаю!
Не заходил потому что был не самый простой период жизни, да и роль писикара выполняла китайская башка. А тут у неё тач сдох, решил заглянуть, может быть нового чего придумали :big:

Gоlf 05.12.2016 20:56

А я тоже вначале подсел на Ардуину, потом перешёл на SТM32, но несколько раз столкнулся с тем что сторонние проекты не компилируются, и я перескочил на NodeMCU (это та же ардуина, но скорость ещё выше - 80MHz, памяти целых 4Мб и главное - встроенный WiFi модуль, хотя есть и минус - только 1 аналоговый выход).

Baikan4ik 17.12.2016 14:14

Добрый день. Пролистал достаточно тем про общение по CAN, некоторые сталкивались с подобной ситуацией. Имеется кан-шина комфорта, в ней передаются данные по климату и всем кнопкам "торпеды". Шилд - seeedstudio, мк - arduino uno r3 на Atmega16U2(не ch340g). Подключается это конструкция параллельно шине, т.е. в разрез. Данные все получаю, считываю, отлично обрабатываются и выводятся на nexus 7. Все как бы в шоколаде. НО, шилд постоянно зависает, помогает только резет ардуины. Время до зависания не постоянное, даже не могу понять от чего зависит. И зависает именно шилд,а не ардуино или мое приложение для планшета, ибо на ардуине висят еще рулевые резистивные кнопки, так они обрабатываются в это время и выполняется соответствующий им функционал на планшете. Библиотека кан используется от seeedstudio.

Читал про резистор, который есть и в шилде, и во всех блоках кан в машине. Резистор в шилде не удалял, так с ним изначально заработало и решил, что все будет ОК. Подскажите, на что нужно обратить внимание, может кто-то столкнулся и решил проблему?

Gоlf 19.12.2016 21:16

C учётом того сколько в сети сообщений типа - "Купил два CAN-шилда, один работает, а через второй ничего не идёт", кто сказал что у вас не дефектная плата? Может питание больше даёте, она нагревается и перестаёт работать?

Baikan4ik 19.12.2016 21:56

Вроде как нашлась причина...и ее я не рассматривал вообще, пока не начал все "творение" внимательно разглядывать. В usb-хаб, от которого питается и ардуино (т.о. ни перегрева, ни нехватки питания (под вопросом) не может быть в принципе + отсутствие скачков напряжения) был вставлен еще и WiFi-донгл с симкой (у меня нексус без LTE, поэтому использую донгл для доступа к сети). Как только из хаба убираю его, шилд работает стабильно. Но стоит вставить обратно, как внезапно зависает. Сначала думал, что как-то наводки от WiFi влияют, но сейчас этот же донгл стоит рядом, но питание через прикуриватель. И все работает. Для меня это странно...

Хм. Единственное, может в какой-то момент времени донгл повышал потребление тока и ардуине не хватало его. Для перезагрузки падение не столь большое, но подключенной к арду периферии уже не хватало питания. Может такое быть?

ssssmileeee 26.01.2017 16:55

Привет!
Кто-нибудь пробовал шилд CJMCU-2551 на MCP2551?

Он будет работать с низкоскоростной шиной (125кб/с) и ардуино?

lti1 26.01.2017 17:02

Цитата:

Сообщение от ssssmileeee (Сообщение 380696)
Привет!
Кто-нибудь пробовал шилд CJMCU-2551 на MCP2551?

Он будет работать с низкоскоростной шиной (125кб/с) и ардуино?

Не будет.
Нужен такой: https://duino.ru/CAN-BUS-Shield.html

Baikan4ik 13.02.2017 11:22

доброго дня всем) В машине стоит ардуина с кан-шилдом от Seedstudio или как-то так. Подключено к шине комфорта, т.е. управляю и климатом, и всеми кнопками торпеды. С этим вопросов нет. Проблема в следующем. При изменении настроек климат-контроля посылается определенный пакет, успешно обрабатывается, но в том случае, когда шилд активный. Возникает ситуация: при выключении двигателя климат тоже отключается и шилд успеват поймать пакет с этой информацией, но при старте двигателя до момента подачи питания на usb хаб проходит порядка секунды и пакет с данными, что климат включен, не перехватывается ардуиной и в памяти хранится информация о выключенном состоянии климата.
Думал, что подключив постоянное внешнее питания к ардуино, решится проблема, но нет. И шилд, и ардуино во включенном состоянии, горят диоды, о том, что питание подается, но сам шилд данные кан-шины не перехватывает, пока на usb-входе не появится сигнал, что хаб подключен или какой-то другой сигнал. В общем, как только хаб включается, то и шилд начинает обрабатывать поступающие данные.

Вопрос, как сделать, чтобы шилд все время пока подключено внешнее питание, обрабатывал поступающие пакеты? Может внешние 5в замкнуть на +5в usb входа? или какие-то другие манипуляции? Иначе весь смысл внешнего питания теряется,к сожалению

Lehas 13.02.2017 11:57

посмотри здесь:
http://atroshin.ru/ru/content/avtoma...enii-terminala

Baikan4ik 13.02.2017 12:31

Цитата:

Сообщение от Lehas (Сообщение 382203)

спасибо. Интересная статья. Но, как мне кажется, это немного не то, что нужно. Ведь проблема не в том, что МК перезагружается при открытие порта, а то, что шилд не активен в плане обработки поступающих данных при отсутствии соединения с хабом ну и планшетом далее. Хочется чтобы при наличии только внешнего питания и отсутствии соединения с хабом, шилд обрабатывал данные, а судя по светодиодам, обработка возобновляется при подключении к хабу...

Попробую запитать 5в USB входа, отключив внешнее питание. МК автоматически выбирает источник питания, скорее всего при отсутствии питания на usb входе, не функциониют и ICSP пины, нужные для шилда. Вечером проверю

Baikan4ik 15.02.2017 09:16

Не стал огород городить, снова номинал выхода БП настраивать. Решил проблему софтово. В моем случае перехватываю пакет с событием выключения климата кнопкой, то есть когда сам человек отключил его, а не БК

randy 26.02.2017 14:10

Вложений: 2
Я ещё не волшебник и т. д.
Собрал такую этажерку
http://www.pccar.ru/attachment.php?a...1&d=1488103254
и первые результаты
http://www.pccar.ru/attachment.php?a...1&d=1488103254
из которых, например, видно, что мой стандарт OBD - EOBD,
а обороты - 649.
Галочка в первой строке означает, что в этой строке стрелками будет переключаться отображаемый PID.
По мере осмысления и наведения порядка буду делиться инфой.

kvazik 16.03.2017 20:10

всем привет оживлю тему.. у кого получилось считать данный с кэна ауди (а4-а5-ку5 2008-2011гг) там у них всё одинаково..

какие шилды использовали? я на стадии закупки компонентов..

vasilij_c 17.03.2017 17:13

а6 2007г.
mcp2515_can

ghans 19.03.2017 00:40

Touareg 2012. Вот этот шилд http://wiki.seeed.cc/CAN-BUS_Shield_V1.2

купить CAN-BUS

demtro 05.04.2017 10:27

Может кто поправить библиотеку на работу со скоростью 33kbps?

TomichSPb 10.04.2017 23:15

Доброго времени суток, подскажите пожалуйста, как подключить этот шилд к рено сценик rx4 2001года при том, что в этой машине нет can шины, только K-line?
Хочу установить приборку для подключения которой нужна кан шина...


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

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