![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
![]()
Сообщение
#1
|
|
![]() Новичок ![]() ![]() Группа: Пользователи Сообщений: 43 Регистрация: 8.10.2013 Пользователь №: 65 978 ![]() ![]() |
Может, кому надо вариант подешевле.
Всё, что для этого надо, это Arduino Uno, два CAN шильда. Обратите внимание, что по ссылке цена сразу за два CAN шильда! Ардуину можно и не UNO, а допустим, Nano, меньше места занимает, но Uno можно запитать прям от бортовой сети 12в, приклеив на встроенный стабилизатор радиатор на всякий случай. Он может работать до 20в. Соединяем всё это по этой схеме: ![]() Сразу говорю, я художник не великий, поэтому нарисовал это в среде Fritzing, где уже есть готовые элементы, но CAN адаптеры немного другие, у которых ещё куча нам не нужных выводов, главное - у нужных названия совпадают. То же самое с разъёмом - каких надо нет, главное номера контактов - CAN L - 2, CAN H - 13. Разъём на радио называется С2, А вообще распиновка тут. Провода на самом деле на разъёме расположены один под другим, а не в одном ряду с разных концов. Можно было бы раздобыть разъёмы (только где?) как на схеме чтоб готовое устройство воткнуть между радио и машиной, но я тупо перерезал провода 2 и 13, удлиннил и вывел наружу через верхнюю крышку для опытов. На схеме слева - провода в машину, справа - в радио. В общем, когда это всё смотали, распаковываем прикреплёный скетч с либой как есть в одну директорию. Либу чуть-чуть изменил, добавил скорость 83,3 кбит/с (думал у меня такая скорость, оказалась 125). Есть разные версии этой либы, не совсем совместимые, с той что у меня точно работает. Скетч пересылает пакеты от шины в радио и наоборот, по пути в радио подменяет D на P, в общем в скетче прокомментировал где что. Думаю, потом ещё может какие фишки добавить, а может ну его нафиг. Сам всё настроил и дописал вчера, проверил, всё работает на RT 2008+, теперь надо это всё красиво собрать и напечатать коробочку на 3D принтере. Подобные устройства есть, но цена у них - 150 евро или типа того, а то что получилось у меня и 15 не стоит. Когда сканировал и вылавливал пакеты, провода от машины к радио соединял вместе и к ним подключал один из адаптеров. ![]() -------------------- Chrysler Grand Voyager RT, квадрат, 2.8 дизель, 2008 г.
|
|
|
![]() |
![]()
Сообщение
#2
|
|
![]() Новичок ![]() ![]() Группа: Пользователи Сообщений: 43 Регистрация: 8.10.2013 Пользователь №: 65 978 ![]() ![]() |
О, вот что ещё нашёл на этом форуме:
http://forum.chrysler-dodge.ru/index.php?s...t&p=2122146 Там коды кнопок на руле есть, можно с руля сделать включение камеры :) -------------------- Chrysler Grand Voyager RT, квадрат, 2.8 дизель, 2008 г.
|
|
|
![]()
Сообщение
#3
|
|
![]() Завсегдатай ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 334 Регистрация: 15.3.2011 Из: Санкт-Петербург Пользователь №: 37 888 Реальное имя:Сергей Город:Санкт-Петербург ![]() ![]() |
О, вот что ещё нашёл на этом форуме: http://forum.chrysler-dodge.ru/index.php?s...t&p=2122146 Там коды кнопок на руле есть, можно с руля сделать включение камеры :) Только с работы пришёл. Я сегодня подключил к машине. Все заработало. Единственное надо нейтраль тоже закинуть в разрешённое состояние, а то когда на нейтраль скидываешь видео выключается. И надо будет ещё считать коды, которые передаются при включении DVD VES. Я так понял при включении DVD, активируются видео входы магнитолы. -------------------- |
|
|
![]()
Сообщение
#4
|
|
![]() Новичок ![]() ![]() Группа: Пользователи Сообщений: 43 Регистрация: 8.10.2013 Пользователь №: 65 978 ![]() ![]() |
О, вот что ещё нашёл на этом форуме: http://forum.chrysler-dodge.ru/index.php?s...t&p=2122146 Там коды кнопок на руле есть, можно с руля сделать включение камеры :) Только с работы пришёл. Я сегодня подключил к машине. Все заработало. Единственное надо нейтраль тоже закинуть в разрешённое состояние, а то когда на нейтраль скидываешь видео выключается. И надо будет ещё считать коды, которые передаются при включении DVD VES. Я так понял при включении DVD, активируются видео входы магнитолы. Коды на VES вот мужик искал и нашел: http://canhack.org/board/viewtopic.php?t=973 Это на Jeep, на медленной шине - 83,3кбит/с, но комманды должны быть такие же. Там ссылка на git с его скетчем и библиотеками - они не совсем совместимы с теми что у меня. Это он VES эмулятор делал. Сам он русский, там же он на русский сайт кидал ссылку. А вот на заднюю камеру кода там нет, я так подозреваю в том же ID надо искать или рядом. Просто подменять в скоростях на R как на разблокировку видео в движении не прокатит, я сегодня пробовал. Я ещё вчера там парктоник нащупывал, может там камера рядом, но я лог не сохранил, надо будет заново. Сообщение отредактировал asix - 7.11.2017, 22:13 -------------------- Chrysler Grand Voyager RT, квадрат, 2.8 дизель, 2008 г.
|
|
|
![]()
Сообщение
#5
|
|
![]() Завсегдатай ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 334 Регистрация: 15.3.2011 Из: Санкт-Петербург Пользователь №: 37 888 Реальное имя:Сергей Город:Санкт-Петербург ![]() ![]() |
О, вот что ещё нашёл на этом форуме: http://forum.chrysler-dodge.ru/index.php?s...t&p=2122146 Там коды кнопок на руле есть, можно с руля сделать включение камеры :) Только с работы пришёл. Я сегодня подключил к машине. Все заработало. Единственное надо нейтраль тоже закинуть в разрешённое состояние, а то когда на нейтраль скидываешь видео выключается. И надо будет ещё считать коды, которые передаются при включении DVD VES. Я так понял при включении DVD, активируются видео входы магнитолы. Коды на VES вот мужик искал и нашел: http://canhack.org/board/viewtopic.php?t=973 Это на Jeep, на медленной шине - 83,3кбит/с, но комманды должны быть такие же. Там ссылка на git с его скетчем и библиотеками - они не совсем совместимы с теми что у меня. Это он VES эмулятор делал. Сам он русский, там же он на русский сайт кидал ссылку. А вот на заднюю камеру кода там нет, я так подозреваю в том же ID надо искать или рядом. Просто подменять в скоростях на R как на разблокировку видео в движении не прокатит, я сегодня пробовал. Я ещё вчера там парктоник нащупывал, может там камера рядом, но я лог не сохранил, надо будет заново. ![]() -------------------- |
|
|
![]()
Сообщение
#6
|
|
![]() Новичок ![]() ![]() Группа: Пользователи Сообщений: 43 Регистрация: 8.10.2013 Пользователь №: 65 978 ![]() ![]() |
О, вот что ещё нашёл на этом форуме: http://forum.chrysler-dodge.ru/index.php?s...t&p=2122146 Там коды кнопок на руле есть, можно с руля сделать включение камеры :) Только с работы пришёл. Я сегодня подключил к машине. Все заработало. Единственное надо нейтраль тоже закинуть в разрешённое состояние, а то когда на нейтраль скидываешь видео выключается. И надо будет ещё считать коды, которые передаются при включении DVD VES. Я так понял при включении DVD, активируются видео входы магнитолы. Коды на VES вот мужик искал и нашел: http://canhack.org/board/viewtopic.php?t=973 Это на Jeep, на медленной шине - 83,3кбит/с, но комманды должны быть такие же. Там ссылка на git с его скетчем и библиотеками - они не совсем совместимы с теми что у меня. Это он VES эмулятор делал. Сам он русский, там же он на русский сайт кидал ссылку. А вот на заднюю камеру кода там нет, я так подозреваю в том же ID надо искать или рядом. Просто подменять в скоростях на R как на разблокировку видео в движении не прокатит, я сегодня пробовал. Я ещё вчера там парктоник нащупывал, может там камера рядом, но я лог не сохранил, надо будет заново. ![]() Может быть. Хотя в локпике же есть возможность включать эту камеру? Вот, в общем, я немного подрихтовал программку, упростил, добавил нейтралку, сканер сделал отдельной функцией чтоб отключать комментом проще было, и заготовку для камеры и кнопок, может еще для чего пригодится. И еще, если делать чтоб сканер выводил вообще все подряд без фильтра, когда ардуинка вставлена в разрыв шины, то она не справляется, наверное, экран гаснет иногда. Тогда лучше сканировать без разрыва. Код #include "mcp_can.h" #include <SPI.h> #define FILTERID 0x20E // c этим ID сообщения будут выводиться в монитор порта // 6 кнопок с задней стороны руля #define NONE 0x00 #define LEFTBOT 0x10 #define LEFTMID 0x20 #define LEFTUP 0x08 #define RIGHTBOT 0x04 #define RIGHTMID 0x01 #define RIGHTUP 0x02 unsigned long rxId; byte len; byte rxBuf[8]; char msgString[128]; byte wheelbutton = 0x0; byte txBuf0[] = {0x00, 0x00, 0x80, 0x20, 0x50, 0xFF, 0x0C}; // включен P, мотор заведён, тормоз отпущен. byte txBuf1[] = {0x00, 0x00, 0x84, 0x21, 0x44, 0xFF, 0x0C}; // включен D, мотор заведён, тормоз нажат. MCP_CAN CAN0(10); // на десятом пине CS от адаптера "в машину". MCP_CAN CAN1(9); // на десятом пине CS от адаптера "в радио". void setup(){ Serial.begin(115200); // инициализация CAN0 bus, baudrate: 125k@8MHz Если шина медленная, на более старых моделях, // надо вместо CAN_125KBPS написать CAN_83K3BPS - 83,3Kbit/s, но там хз, может и коды другие. if(CAN0.begin(MCP_ANY, CAN_125KBPS, MCP_8MHZ) == CAN_OK){ Serial.print("CAN0: Init OK!\r\n"); CAN0.setMode(MCP_NORMAL); } else Serial.print("CAN0: Init Fail!!!\r\n"); // инициализация CAN1 bus, baudrate: 125k@8MHz Если шина медленная, на более старых моделях, // надо вместо CAN_125KBPS написать CAN_83K3BPS - 83,3Kbit/s но там хз, может и коды другие. if(CAN1.begin(MCP_ANY, CAN_125KBPS, MCP_8MHZ) == CAN_OK){ Serial.print("CAN1: Init OK!\r\n"); CAN1.setMode(MCP_NORMAL); } else Serial.print("CAN1: Init Fail!!!\r\n"); } void loop(){ if(!digitalRead(2)){ // на втором пине INT от адаптера со стороны машины. Считываем, если он в LOW. CAN0.readMsgBuf(&rxId, &len, rxBuf); // читаем из шины и посмотрим, пропускать ли дальше в радио. canscan(); // если ничего в монитор порта выводить не надо, можно закомментировать switch (rxId){ case 0x3A3: // кнопки на руле wheelbutton=rxBuf[0]; // запоминаем положение кнопок break; // case 0x00: // надо будет найти правильный ID // if(wheelbutton==LEFTMID){ // как-нибудь включим камеру, потом :) // } // break; case 0x20E: if(rxBuf[4]=='N'||rxBuf[4]=='D'){ // если включен N или D memcpy(rxBuf, txBuf0, 7); // заменяем на P } break; case 0x211: // здесь передаётся так же скорость rxBuf[2] = 0x00; // во втором rxBuf[3] = 0x00; // и третьем байте всегда ставим в 0 break; } CAN1.sendMsgBuf(rxId, 0, len, rxBuf); // отсылаем в радио } if(!digitalRead(3)){ // на третьем пине INT от адаптера со стороны радио. CAN1.readMsgBuf(&rxId, &len, rxBuf); // Считываем, если он в LOW canscan(); // если ничего в монитор порта выводить не надо, можно закомментировать CAN0.sendMsgBuf(rxId, 0, len, rxBuf); // и пересылаем дальше в машину } } void canscan(){ if(rxId == FILTERID){ sprintf(msgString, "Standard ID: 0x%.3lX DLC: %1d Data:", rxId, len); Serial.print(msgString); for(byte i = 0; i<len; i++){ sprintf(msgString, " %.2X", rxBuf[i]); Serial.print(msgString); } Serial.println(); } } -------------------- Chrysler Grand Voyager RT, квадрат, 2.8 дизель, 2008 г.
|
|
|
![]()
Сообщение
#7
|
|
![]() Член Крайслер Клуба ![]() Группа: Член Крайслер Клуба Сообщений: 1 739 Регистрация: 21.1.2011 Из: Питерский край Пользователь №: 36 354 Реальное имя:Вячеслав Город:г.Сосновый Бор ![]() ![]() |
Впишусь тоже. Реально ли там организовать еще и доп. видеовыход на мониторы, при условии что в штатном майгиге нет VES ???
-------------------- Пацифика 3,6л 2019 - есть
Гранд Вояджер Лимитяй 3,8л 2010 - был Гранд Караван SXT 3,8л 2005 - был Коротыш Караван 3,0л 2000 - был |
|
|
![]() ![]() |
![]() |
Текстовая версия | Сейчас: 19.7.2025, 12:00 | ![]() |
|
Мы в соцсетях:
![]() |