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

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

iGeophysix 01.03.2013 10:13

Данные климат-контроля
 
Добрый день всем!

Я строю компьютер на связке Android планшет + Arduino
Машина Infiniti G37x Sedan 2009 года.
Головное устройство стоит Bose с навигацией.
Я рассчитываю научиться перехватывать все нажатия кнопок (а их 54 включая 3 энкодера) на ардуино и посылать на планшет.
К сожалению, на руках пока только сама Ардуино Леонардо, а планшет пока едет из Китая (заказл Hyundai T7)

Но тем не менее, уже с ардуино можно работать.
Я разобрал переднюю панель с кнопочками и увидел там:
http://img13.imageshost.ru/img/2013/...4e99_small.jpg - От кнопок к магнитоле
http://img13.imageshost.ru/img/2013/...9b05_small.jpg - от кнопок у монитора к кнопкам на передней панели
http://img13.imageshost.ru/img/2013/...ec31_small.jpg - оно же, вид снизу
http://img13.imageshost.ru/img/2013/...9ff1_small.jpg - название и серийный номер
http://img13.imageshost.ru/img/2013/...8e9f_small.jpg - не знаю что за блок
http://img13.imageshost.ru/img/2013/...cd22_small.jpg - задняя сторона ГУ


Вдруг сегодня нашел распиновку магнитолы
http://teletehnika.info/uploads/pins...780-pinout.jpg

Я так понимаю. что мне надо по UART OUT перехватить сигналы?

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

MMax 01.03.2013 13:35

А может попробовать все это в CAN шине найти? Задача нетривиальная, но, возможно, это будет проще, чем тянуть провода на 54 кнопки.

iGeophysix 01.03.2013 15:44

так я и не хотел тянуть провода... я хотел прочитать коды и передать их по com порту в планшет.
или еще лучше ардуино подключить как HID устройство и посылать нажатия кнопок.

MMax 01.03.2013 16:17

А откуда известно, но что UART OUT есть информация о кнопках? Между устройствами данные передаются по CAN шине, и, если верить разъему CN201, у Вас этих шин минимум 3.

iGeophysix 01.03.2013 16:30

ММах, не знаю, где сказать тут спасибо) но спасибо, что обратили внимание)

Видимо придется все перепробовать... есть еще какая-то шина NBUS Tx Rx :-)

Hamster 01.03.2013 17:54

Вложений: 1
Цитата:

Сообщение от iGeophysix (Сообщение 248676)
Я рассчитываю научиться перехватывать все нажатия кнопок (а их 54 включая 3 энкодера) на ардуино и посылать на планшет.

Просто перехватывать мало.
Нужно четко разделять два режима: режим штатной работы и режим, когда кнопками мы управляем только планшетом.
Иначе, кнопки будут работать "на два фронта" и бог к чему это может привести :)

Для понимания работы всего этого хозяйства лучше качнуть с торрентов Mitchell OnDemand, там есть вся инфа по твоей машине и описываются все шины обмена инфой, логика работы, электросхемы и т.п.

Вложение 30097

iGeophysix 01.03.2013 18:02

Спасибо, Hamster,

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

iGeophysix 02.03.2013 10:42

Ну после долгого разбирания я увидел, что у меня в машине используется протокол AV Communication, который передается по CAN шине.
Ребятки, помогите, пожалуйста, прочитать команды. В долгу не останусь!


Утром сидел читал мануал...
Нужный мне коннектор M72.
http://i.imgur.com/VuuI45V.png
Вот его распиновка.
А где его найти в машине?

Hamster 02.03.2013 16:24

Вложений: 1
Я же тебе говорил - ставь Митчелл, если серьезно хочешь этим заняться.

Цитата:

Сообщение от iGeophysix (Сообщение 248865)
А где его найти в машине?

Не поверишь, насколько это банально :)

Вложение 30132

Но, чтение CAN - это уже поздняк, кнопки уже "в системе". Нужно для начала сделать коммутяцию между планшетом и штатным ГУ.

MMax 02.03.2013 23:19

Цитата:

Сообщение от iGeophysix (Сообщение 248865)
Ну после долгого разбирания я увидел, что у меня в машине используется протокол AV Communication, который передается по CAN шине.
Ребятки, помогите, пожалуйста, прочитать команды. В долгу не останусь!

Я сейчас собираю свой проект и постепенно подбираюсь к работе с CAN шиной. Прочитал уже "половину" интернета по этому поводу. Если с английским нормально, то вот ссылки, которые могут помочь
Это человек описывает как извлекать из шины id и данные (информация больше теоретическая):
http://www.canbushack.com/blog/index.php
Очень неплохое описание принципов работы шины (на русском):
http://automn.ru/opel-astra/opel-135..._id2-1254.html
Еще, к сожалению, не сохранил ссылку. Там описан практический опыт разбора данных из шины или opel'я или mazda'ы. Может наткнешься случайно, так по-английски сделано в виде презентации, текст с картинками на красном фоне.
Еще в википедии неплохая статья про can bus.

Если хочешь цепляться к can через ардуину, нужно взять или такой шилд или плату. Есть и другие варианты, например Arduino Due, на ней уже что-то для can'а распаяно.

http://www.seeedstudio.com/depot/can...?cPath=132_134
http://www.ebay.com/itm/BOARD-CAN-BU...item3f10470566
Или можно взять такой шилд, на нем уже два Can контроллера, но он только на Mega2560
http://www.terraelectronica.ru/news_postup.php?ID=2335

Себе я взял две платы (шилдов тогда не было в наличии). Сейчас поэкспериментирую и, скорей всего, шилды закажу, их крепить удобней. Брать нужно минимум две (а лучше по количеству шин в автомобиле), т.к. прежде чем лезть к реальным данным, нужно потренироваться передавать и принимать "на столе".

И еще одно, на что я обратил внимание. Скорость передачи в шине автомобиля - 512 Kbit, serial порт ардуины мне не удалось заставить работать на скорости более 115200 без ошибок. Поэтому пришлось придумывать обмен данных через ethernet shield, чтобы не было затыков при обмене.

iGeophysix 04.03.2013 09:56

А если я напрямую подключусь к пинам из 8 поста, может получиться что-нибудь?)
А то как-то я себя не очень уверенно чувствую с CAN шиной...

Hamster, так я его там и нашел)
но это тот же мануал, что и на http://www.nicoclub.com/FSM/G37/ лежит)
Но штука красивая)

Цитата:

Нужно для начала сделать коммутяцию между планшетом и штатным ГУ.
Это именно то, чего я добиваюсь! А че мне еще надо будет?))

MMax 04.03.2013 14:19

Цитата:

Сообщение от iGeophysix (Сообщение 249098)
А если я напрямую подключусь к пинам из 8 поста, может получиться что-нибудь?)
А то как-то я себя не очень уверенно чувствую с CAN шиной...

Дак там же все равно CAN. Все равно его читать нужно.

iGeophysix 04.03.2013 14:47

Цитата:

Сообщение от MMax (Сообщение 249119)
Дак там же все равно CAN. Все равно его читать нужно.

эххх... все так сложно в этой жизни....

А если купить ELM327 на USB или Bluetooth и подключить его к компу - работать будет?
Проблема в том, что у меня оч слабые навыки в радиотехнике, но дофига желания впендюрить комп.

iGeophysix 04.03.2013 17:58

Неправильно задал вопрос. Работать-то будет.
Смогу ли я с ее помощью прочитать показания климат-контроля?

Hamster 04.03.2013 17:58

Цитата:

Сообщение от iGeophysix (Сообщение 249121)
Проблема в том, что у меня оч слабые навыки в радиотехнике, но дофига желания впендюрить комп.

Тогда учиться, учиться и еще раз учиться :)
ELM327 не поможет, нужен отдельная кан-читалка. Вот пример того, как человек взял и разобрался. Подробнее - читай всю тему. Там и ссылочка на девайс где-то была.

iGeophysix 05.03.2013 09:23

эх.... надо брать девайс да начинать мастерить)))

Или спросить совета у ребят из соседней ветки!

iGeophysix 08.03.2013 19:30

купил в чипдипе CAN Transciever PCA82C250.
Попробовал собрать тестовую схему... не получилось(
Помогите собрать, плиз?

awtoap 08.03.2013 21:44

И к чему подключаем? Тут телепатов нет. Для работы нужен МК с каном на борту или отдельная микра. То, что ты привел всего лишь драйвер между чипом кан и шиной. Если тупо её подключаешь к UART мк, то ясен пень работать не будет.

iGeophysix 11.03.2013 09:42

Цитата:

Сообщение от awtoap (Сообщение 249592)
И к чему подключаем? Тут телепатов нет. Для работы нужен МК с каном на борту или отдельная микра. То, что ты привел всего лишь драйвер между чипом кан и шиной. Если тупо её подключаешь к UART мк, то ясен пень работать не будет.

Привет тебе!
Подключаю к Arduino Leonardo на Tx/Rx (d0 и d1 пины). Я так понимаю, что последняя фраза ко мне и относится ;)
А что за чип CAN? че куда вообще совать?)))
Дай что ли схемку? Попробую почитать ее - не получится, обращусь еще раз за разъяснениями.

http://secuduino.blogspot.ru/2011/02/tienda.html вот это надо?

MMax 11.03.2013 10:39

Цитата:

Сообщение от iGeophysix (Сообщение 249978)

Да, можно и это. Только все таки рекомендую брать сразу несколько штук и экспериментировать передавая данные с одной на другую, а уж потом цеплять к машине.

ЗЫ. Не нашел у этого продавца про доставку. Сколько будет стоить?

iGeophysix 11.03.2013 13:03

Цитата:

Сообщение от MMax (Сообщение 249985)
Да, можно и это. Только все таки рекомендую брать сразу несколько штук и экспериментировать передавая данные с одной на другую, а уж потом цеплять к машине.

ЗЫ. Не нашел у этого продавца про доставку. Сколько будет стоить?

http://www.seeedstudio.com/depot/can...ld-p-1240.html
вот нашел... доставку можно заказать EMS на всех...
27 баксов за плату... воткнул на ардуино и пошел играться...
в свою очередь не очень мне понятно, чем читать потом данные.

iGeophysix 12.03.2013 09:22

MMax, SECUduino нет в наличии. Утром получил письмо от разработчика. Так что или самим, или ждать, или другой.

iGeophysix 12.03.2013 12:51

короче.. лень разбираться со всеми этими чипиками... заказал себе CAN Hacker. К пятнице приедет уже.
дороговато - 2500 рублей... зато сразу рабочий девайс!

awtoap 12.03.2013 18:10

Это да...но есть одно но...софт придется писать самому, а тот что идет в комплекте можете использовать только для анализа пакетов гуляющих по шине.

iGeophysix 12.03.2013 23:52

Цитата:

Сообщение от awtoap (Сообщение 250270)
Это да...но есть одно но...софт придется писать самому, а тот что идет в комплекте можете использовать только для анализа пакетов гуляющих по шине.

Ну как минимум, надо для начала найти все пакеты)
А софт написать можно и на процессинге... это уже вторая беда, как говорится)

iGeophysix 18.03.2013 10:24

все... нашел все)
Купил адаптер USB<->CAN в Новосибирске.
Немножко дорого, зато работа не стоит)
Все читается. Теперь надо найти время и записать все нажатия клавиш.

iGeophysix 18.03.2013 18:32

Задал вопрос про принцип работы КАН хакера.
Ответ:
Цитата:

Описания всех пакетов найдете у меня на сайте в материалах для CAN хакера, там большой подробный документ.
Последовательный порт виртуальный - реализован на микросхеме FT245. Теоретический можно подключить к ардуине слегка попарясь, я бы так не заморачивался. Более элегантное решение - это изучить кан хакером шину, а затем реализовать на микроконтроллере (напр AT90CAN32 или PIC18F2580 по 120руб оптом.) интерфейс CAN-Arduino, который будет срабатывать только на определенный ID, решается в принципе просто, немного проще нежеле чем цепляние кан хакера к ардуине.
Ну в розницу чипик стоит 500 рублей. Вопрос: кто готов придумать схемку и наглядно показать: что с чем паять?)

fmy1 19.03.2013 12:45

Цитата:

Сообщение от iGeophysix (Сообщение 250219)
... заказал себе CAN Hacker. К пятнице приедет уже.
дороговато - 2500 рублей... зато сразу рабочий девайс!

Цитата:

Сообщение от iGeophysix (Сообщение 251275)
...Купил адаптер USB<->CAN в Новосибирске.
Немножко дорого, зато работа не стоит)....

Так в результате где, В Алмате или в Новосибирске?)

VVi3ard 19.03.2013 18:32

Не понимаю зачем тебе ардуина если есть планшет?
Цитата:

Последовательный порт виртуальный - реализован на микросхеме FT245
В Android открываете этот порт (по умолчанию Linux поддерживает FT245 по идее и андроид должен) вешаете сервис который его слушает и отсылает сообщения другим программам.

На самом деле самое сложное именно обработка/расшифровка пакетов перед тем как что то паять нужно иметь работающий в коде прототип.

Устройство у вас уже есть, напишите под WIN код который будет распознавать нужные вам команды, перенести его потом под Android будет не так сложно.

VVi3ard 19.03.2013 18:36

Вы просто думаете что вам будут отсылаться по CAN коды нажатий, на самом деле там могут отсылаться значения сопротивлений при этом (например в случае с енкодером) будет и дребезг контактов и коды одной кнопки будут разные и постоянно сменятся, или например уменьшаете вы громкость вам буду сыпаться уменьшающиеся значения т.е. вам нужно будет анализировать N предыдущих посылок и текущую и возможно следущую (что бы исключить дребезг контактов. Так же вам может на нажатие приходить целых 3 посылки:Нажали/Держим/Отпустили или 2 посылки и.т.п. и.т.д.

Только после того как у вас будет программа под Win которая четко работает есть смысл думать об Android и железном воплощении.

iGeophysix 19.03.2013 18:36

Цитата:

Сообщение от fmy1 (Сообщение 251507)
Так в результате где, В Алмате или в Новосибирске?)

В Новосибирске

Цитата:

Сообщение от VVi3ard (Сообщение 251534)
Не понимаю зачем тебе ардуина если есть планшет?

В Android открываете этот порт (по умолчанию Linux поддерживает FT245 по идее и андроид должен) вешаете сервис который его слушает и отсылает сообщения другим программам.

На самом деле самое сложное именно обработка/расшифровка пакетов перед тем как что то паять нужно иметь работающий в коде прототип.

Устройство у вас уже есть, напишите под WIN код который будет распознавать нужные вам команды, перенести его потом под Android будет не так сложно.

Ну я ж не знаю этого всего.. я работаю по методу проб и ошибок.
Сейчас я понял, что мне этот CANHacker не очень нужен, т.к. можно было собрать все на ардуино. Но поздно понял.
Теперь выясняется, что есть в планшете встроенный порт.
И в планшете прям можно подключить напрямую провода от CAN шины и все заработает после небольшого шаманства с кодом?

Плюс мне понятен Processing (среда разработки).
Я иду по принципу наименьшего сопротивления. Иногда не самое рациональное решение, но мне ж не сразу подсказывают ;)
Я нафига темы открыл на всех форумах?)

iGeophysix 19.03.2013 18:38

Цитата:

Сообщение от VVi3ard (Сообщение 251535)
Вы просто думаете что вам будут отсылаться по CAN коды нажатий, на самом деле там могут отсылаться значения сопротивлений при этом (например в случае с енкодером) будет и дребезг контактов и коды одной кнопки будут разные и постоянно сменятся, или например уменьшаете вы громкость вам буду сыпаться уменьшающиеся значения т.е. вам нужно будет анализировать N предыдущих посылок и текущую и возможно следущую (что бы исключить дребезг контактов. Так же вам может на нажатие приходить целых 3 посылки:Нажали/Держим/Отпустили или 2 посылки и.т.п. и.т.д.

Только после того как у вас будет программа под Win которая четко работает есть смысл думать об Android и железном воплощении.

Поправка. Я уже знаю, что отсылаются CAN коды. Уже проверил!

VVi3ard 19.03.2013 18:38

Нет в планшете порта нет к планшету можно подключить CANHacker так что он то как раз не помешает, особенно если нет опыта паяния плат (у меня тоже нет я программист)

VVi3ard 19.03.2013 18:41

Да понятно что CAN коды только там обычно большое количество информации льется, её нужно обрабатывать, и вычленять команды. Нет такого понять как "CAN коды".

Есть информация в цифровом виде там может быть все что угодно.

Например вы знаете какая посылка соответствует уменьшению значения энкодера? Что в этот момент будет в шине?

iGeophysix 19.03.2013 18:42

Цитата:

Сообщение от VVi3ard (Сообщение 251538)
Нет в планшете порта нет к планшету можно подключить CANHacker так что он то как раз не помешает, особенно если нет опыта паяния плат (у меня тоже нет я программист)

Я тоже скорее программист. Но и программист так себе)
Я думаю собрать позже самостоятельно еще один CAN хакер, но чуть урезанный и с передачей данных по шине SPI.

iGeophysix 19.03.2013 18:44

Цитата:

Сообщение от VVi3ard (Сообщение 251539)
Да понятно что CAN коды только там обычно большое количество информации льется, её нужно обрабатывать, и вычленять команды. Нет такого понять как "CAN коды".

Есть информация в цифровом виде там может быть все что угодно.

Например вы знаете какая посылка соответствует уменьшению значения энкодера? Что в этот момент будет в шине?

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

Цитата:

Нет такого понять как "CAN коды".
Ок. есть понятия коды AV COMM. Вольтметр и омметр не показывают особо сильных изменений там.

VVi3ard 19.03.2013 18:49

В общем ждите посылку, подключайте, CANHacker потом сами все поймете.

У вас два варианта,
1. У вас получится написать программу под Win - тогда вы переделаете её под андроид и будете счастливы с CANHacker.

2. Увидев поток цифр вы поймете что все тут не просто и бросите это дело.

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

VVi3ard 19.03.2013 18:51

Просто я сталкивался только с VAG CAN и там не так уж и просто было выловить те же показания климата или парктроника.

iGeophysix 19.03.2013 18:56

Цитата:

Сообщение от VVi3ard (Сообщение 251543)
В общем ждите посылку, подключайте, CANHacker потом сами все поймете.

У вас два варианта,
1. У вас получится написать программу под Win - тогда вы переделаете её под андроид и будете счастливы с CANHacker.

2. Увидев поток цифр вы поймете что все тут не просто и бросите это дело.

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

Цитата:

Сообщение от VVi3ard (Сообщение 251544)
Просто я сталкивался только с VAG CAN и там не так уж и просто было выловить те же показания климата или парктроника.

Я уже получил ее) Срочная доставка рулит!
Все будет хорошо)

iGeophysix 23.03.2013 11:08

Привет всем!

Сегодня утром я сделал большой шаг)
Я сосканировал нажатия клавиш.
Единственное - пропустил код отпускания клавиши Display.
Заметил, что второй байт - счетчик. Он сквозной по всем нажатиям. (10,20,...70, 10,...)
Периодически проходят сигналы с большим содержанием FF.
Но попробовал отправить эти сигналы с компа - магнитола управляется!
Энкодеры посылают всегда один и тот же сигнал.
Короче, кто напишет программку для CAN Hacker'а?)))
Или другого адаптера, чтоб работало на андроиде или еще где...

Кстати, нажатия сенсорного экрана тоже по этой шине передаются.
Мне было лень расшифровывать, т.к. я все равно хочу выкинуть этот экран к едрене Фене)

Файл с кодировками: http://yadi.sk/d/n-0a78pB3TcIX


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

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