K-CAN Проект
Модератор: bum_bum
40 мнения
• Страница 1 от 3 • 1, 2, 3
- shadowx
- Потребител
- Мнения: 31
- Регистриран на: 5.04.2016
- Пол: Мъж
- Кара: BMW 120d e87
- Детайли за колата: BMW 120d e87 163hp
K-CAN Проект
Здравейте,
Първо да се извиня, ако темата не е на точното място... и също така ако има подобна тема.. не намерих :/
Накратко, идеята е да интегирам едно RaspberryPi[1] в колата, като разбира се да е закачено към K-CAN bus-а.
Връзката е посредством Arduino Uno R3[2] + Sparkfun CAN Bus shield[3], закачен към K-CAN twisted pair-а от панела на климатроника (по-лесно достъпен е, няма смисъл да се сваля CD-то)
Все още съм в доста начален стадий, за момента съм успял да разчета около 50-60% от съобщенията (базирайки се основно на информацията от loopybunny[4]).
Интересно ми е дали има и други занимавали (с интерес) се с подобни проекти, за малко обмяна на опит и идеи
На краткото клипче се вижда четене на информация от K-CAN bus-а в реално време.
https://www.youtube.com/watch?v=Tx_ebYV8Ecc
Не побликувам кода , защото още е в доста testing и unstable но ако някой е заинтригувам , може да ми PM.
[1] - http://raspberrypi.org/
[2] - https://www.arduino.cc/en/Main/ArduinoBoardUno
[3] - https://www.sparkfun.com/products/13262
[4] - http://www.festival.loopybunny.co.uk/CarPC/k_can.html
Първо да се извиня, ако темата не е на точното място... и също така ако има подобна тема.. не намерих :/
Накратко, идеята е да интегирам едно RaspberryPi[1] в колата, като разбира се да е закачено към K-CAN bus-а.
Връзката е посредством Arduino Uno R3[2] + Sparkfun CAN Bus shield[3], закачен към K-CAN twisted pair-а от панела на климатроника (по-лесно достъпен е, няма смисъл да се сваля CD-то)
Все още съм в доста начален стадий, за момента съм успял да разчета около 50-60% от съобщенията (базирайки се основно на информацията от loopybunny[4]).
Интересно ми е дали има и други занимавали (с интерес) се с подобни проекти, за малко обмяна на опит и идеи
На краткото клипче се вижда четене на информация от K-CAN bus-а в реално време.
https://www.youtube.com/watch?v=Tx_ebYV8Ecc
Не побликувам кода , защото още е в доста testing и unstable но ако някой е заинтригувам , може да ми PM.
[1] - http://raspberrypi.org/
[2] - https://www.arduino.cc/en/Main/ArduinoBoardUno
[3] - https://www.sparkfun.com/products/13262
[4] - http://www.festival.loopybunny.co.uk/CarPC/k_can.html
- shadowx
- Потребител
- Мнения: 31
- Регистриран на: 5.04.2016
- Пол: Мъж
- Кара: BMW 120d e87
- Детайли за колата: BMW 120d e87 163hp
- shadowx
- Потребител
- Мнения: 31
- Регистриран на: 5.04.2016
- Пол: Мъж
- Кара: BMW 120d e87
- Детайли за колата: BMW 120d e87 163hp
Re: K-CAN Проект
Тук е в движение и по-добре фокусирано
https://www.youtube.com/watch?v=ZWnCkEMYea4
Размишлявам над евентуални приложения на проектчето, освен очеизвадното мултимейдни такова... тук трябва някой по-разбиращ да се изкаже, но мисля ,че спокойно може да бъде използвано като:
1 . Допълнителна CAN "security" система.... (пр. при запалване, очаква дадено събитие ..например три натискания на даден бутон, иначе 60секунди след запалването гаси двигателя, пуска аварийни светлини, и тнт и тнт..... започва брутален флууд на P-CAN bus-а с високо приоритетни IDта с цел да се попречи на нормална комуникация , следователно и нормално функциониране на колата)
2. Емулация на липсващи "екстри" ... например Cruise Control ... ако разбирал правилно, той реално се свежда до препрограмиране не SZL модула и плуене на съобщения през (500ms?...мързи ме да проверя през колко бяха за него) емулиращи наличието му... така теореритчно би могло изцяло софтуерно да се емулира присътвието и работата на модула.
3. Trip log .... тук вероятно ще е по-интересно ако се логва информацията от PT-CAN bus-а не К-CAN ...но дори и само с наличната в k-can , пак може да се направят доста интересни статистики... (скорост, обороти, разход на гориво, генериран въртящ момент, налично гориво, позиция на педала на газта и тнт и тнт.)....скоро мисля и GPS модул да добавя.
anyway .... все още обаче не съм намерил решение на най-сериозния ми проблем... а именно температурата в колата, след като е престояла лятото на слънце няколко часа .... повечето SoC по документация могат да работят нормално при температура до 65 градуса... което ми се струва опасно близо до достижимите в колата температури.... та бихте ли препоръчали по-студени места в колата, където могат да се поставят Arduino и Raspberry Pi...
https://www.youtube.com/watch?v=ZWnCkEMYea4
Размишлявам над евентуални приложения на проектчето, освен очеизвадното мултимейдни такова... тук трябва някой по-разбиращ да се изкаже, но мисля ,че спокойно може да бъде използвано като:
1 . Допълнителна CAN "security" система.... (пр. при запалване, очаква дадено събитие ..например три натискания на даден бутон, иначе 60секунди след запалването гаси двигателя, пуска аварийни светлини, и тнт и тнт..... започва брутален флууд на P-CAN bus-а с високо приоритетни IDта с цел да се попречи на нормална комуникация , следователно и нормално функциониране на колата)
2. Емулация на липсващи "екстри" ... например Cruise Control ... ако разбирал правилно, той реално се свежда до препрограмиране не SZL модула и плуене на съобщения през (500ms?...мързи ме да проверя през колко бяха за него) емулиращи наличието му... така теореритчно би могло изцяло софтуерно да се емулира присътвието и работата на модула.
3. Trip log .... тук вероятно ще е по-интересно ако се логва информацията от PT-CAN bus-а не К-CAN ...но дори и само с наличната в k-can , пак може да се направят доста интересни статистики... (скорост, обороти, разход на гориво, генериран въртящ момент, налично гориво, позиция на педала на газта и тнт и тнт.)....скоро мисля и GPS модул да добавя.
anyway .... все още обаче не съм намерил решение на най-сериозния ми проблем... а именно температурата в колата, след като е престояла лятото на слънце няколко часа .... повечето SoC по документация могат да работят нормално при температура до 65 градуса... което ми се струва опасно близо до достижимите в колата температури.... та бихте ли препоръчали по-студени места в колата, където могат да се поставят Arduino и Raspberry Pi...
- TeroRider
- кандидат ентусиаст
- Мнения: 104
- Регистриран на: 26.12.2010
- Пол: Мъж
- Кара: BMW ///М3 SMG
- Мечтае да кара: BMW M3 CSL, M3 GTR, M3 GTS
- Детайли за колата: Направо не върви, но уж завива :)
Re: K-CAN Проект
Това е супер интересно! Евала колега
- Nickelback
- старши ентусиаст
- Мнения: 1857
- Регистриран на: 20.10.2010
- Местоположение: София
- Пол: Мъж
- Кара: BigBlockV8 и чат-пат SmallBlockV8
- Мечтае да кара: бангия с предно
- Детайли за колата: ;)
Big: Hemi 370 cu. in.
Small: S62B50 с жокери
Re: K-CAN Проект
Аз се абонирам за темата. В комбинация с расберито става мнооого sophisticated решение и определено ме кефи. Много по-добре от само "тъпо" ардуино Развръзва ръцете много и дава зелена светлина за развихряне на фантазията
Sent from my LG-H815 using Tapatalk
Sent from my LG-H815 using Tapatalk
"За тЕя пари има Е-шеесе" - форумна пословица.
Лето две и седемнаесто.
- nayden
- младши ентусиаст
- Мнения: 258
- Регистриран на: 2.10.2008
- Местоположение: Хасково
- Пол: Мъж
- Кара: Е60
Re: K-CAN Проект
И аз работя по подобно нещо с кан шината на БМВ ... За съжаление много малко време ми остава за това . Ще се включа като имам някъв напредък .
9.715@249.48km/h 1.71-60ft
https://www.youtube.com/watch?v=C4cXW12fLw8
https://www.youtube.com/watch?v=C4cXW12fLw8
- Nickelback
- старши ентусиаст
- Мнения: 1857
- Регистриран на: 20.10.2010
- Местоположение: София
- Пол: Мъж
- Кара: BigBlockV8 и чат-пат SmallBlockV8
- Мечтае да кара: бангия с предно
- Детайли за колата: ;)
Big: Hemi 370 cu. in.
Small: S62B50 с жокери
Re: K-CAN Проект
shadowx написа:Тук е в движение и по-добре фокусирано
https://www.youtube.com/watch?v=ZWnCkEMYea4
Размишлявам над евентуални приложения на проектчето, освен очеизвадното мултимейдни такова... тук трябва някой по-разбиращ да се изкаже, но мисля ,че спокойно може да бъде използвано като:
1 . Допълнителна CAN "security" система.... (пр. при запалване, очаква дадено събитие ..например три натискания на даден бутон, иначе 60секунди след запалването гаси двигателя, пуска аварийни светлини, и тнт и тнт..... започва брутален флууд на P-CAN bus-а с високо приоритетни IDта с цел да се попречи на нормална комуникация , следователно и нормално функциониране на колата)
2. Емулация на липсващи "екстри" ... например Cruise Control ... ако разбирал правилно, той реално се свежда до препрограмиране не SZL модула и плуене на съобщения през (500ms?...мързи ме да проверя през колко бяха за него) емулиращи наличието му... така теореритчно би могло изцяло софтуерно да се емулира присътвието и работата на модула.
3. Trip log .... тук вероятно ще е по-интересно ако се логва информацията от PT-CAN bus-а не К-CAN ...но дори и само с наличната в k-can , пак може да се направят доста интересни статистики... (скорост, обороти, разход на гориво, генериран въртящ момент, налично гориво, позиция на педала на газта и тнт и тнт.)....скоро мисля и GPS модул да добавя.
anyway .... все още обаче не съм намерил решение на най-сериозния ми проблем... а именно температурата в колата, след като е престояла лятото на слънце няколко часа .... повечето SoC по документация могат да работят нормално при температура до 65 градуса... което ми се струва опасно близо до достижимите в колата температури.... та бихте ли препоръчали по-студени места в колата, където могат да се поставят Arduino и Raspberry Pi...
Хубави идеи
Иначе за температурата не пречи да пробваш преди да го мислиш Аз лично силно се съмнявам в масовите китайски навигации чайниците да са ползвали automotive grade чипове Пък си работят Вариант ти е да смениш хардуера с нещо с такъв grade, но не вярвам да искаш да сменяш така приятната платформа Например аз скоро взех SAM V71 Xplained Ultra (-40 - +105 degC), например), за други неща де, но той си е automotive grade и не се плаши от температури. Само пример. Друг вариант ти е активно охлаждане - нещо с вентилатор, Пелтие елементи и т.н, ама пак не вярвам да ти се занимава. Та нека дойде лятото, пробвай, пък тогава го мисли
Иначе като идея освен GPS-a, може да помислиш да му закачиш и един 3G модем и става the ultimate
"За тЕя пари има Е-шеесе" - форумна пословица.
Лето две и седемнаесто.
- shadowx
- Потребител
- Мнения: 31
- Регистриран на: 5.04.2016
- Пол: Мъж
- Кара: BMW 120d e87
- Детайли за колата: BMW 120d e87 163hp
Re: K-CAN Проект
Nickelback написа:Аз се абонирам за темата. В комбинация с расберито става мнооого sophisticated решение и определено ме кефи. Много по-добре от само "тъпо" ардуино Развръзва ръцете много и дава зелена светлина за развихряне на фантазията
Sent from my LG-H815 using Tapatalk
Ами попринцип мисля да са разделени... основната функция на ардуиното е конвертор за CAN <> USB за да може информацията да стигне до Raspberry -то.
Но същевременно допълнителните функции на тема сигурност (реле на OBD Can линията) и евентуален K-Can Флууд ако не се въведе даден "код" след запалване, са по-скоро неща който трябва да са изцяло отговорност на арудиното, дори RPi-то да е изключено (от една страна, му отнема време да зареди а немислимо да е винаги работещо, от друга - ако крадат колата то не би било активно...) Всякакъв вид по-сложна функционалност обаче ще бъде изцяло работа на малинката (Портоколата по-скоро, защото очаквам скоро да ми дойде Orange Pi PC).
Nickelback написа:Хубави идеи
Иначе за температурата не пречи да пробваш преди да го мислиш Аз лично силно се съмнявам в масовите китайски навигации чайниците да са ползвали automotive grade чипове Пък си работят Вариант ти е да смениш хардуера с нещо с такъв grade, но не вярвам да искаш да сменяш така приятната платформа Например аз скоро взех SAM V71 Xplained Ultra (-40 - +105 degC), например), за други неща де, но той си е automotive grade и не се плаши от температури. Само пример. Друг вариант ти е активно охлаждане - нещо с вентилатор, Пелтие елементи и т.н, ама пак не вярвам да ти се занимава. Та нека дойде лятото, пробвай, пък тогава го мисли
Иначе като идея освен GPS-a, може да помислиш да му закачиш и един 3G модем и става the ultimate
Има логика,че китайците ползват същите SoC за повечето техника.... вероятно ще се разчита на CPU throttle за да се пази. ...но все пак, лятото температури от рода на 60 градуса С са съвсем достижими в колата....
При нормални обстоятелства процесора като тръгне си слага 20тина градуса.... задължително ще сложа активно охалжане, но то реално би дало смислен резултат след като температурата на въздуха в купето падне...
Както и да е ...прав си ..трябва да се пробва и ще стане ясно.... евентуално мисля при boot да downclock-вам процесора и след зареждане само ако температурата е под даден минумум - да му разрешавам нормални честоти на работа.
Относно GPS + 3G ...да и аз го мисля, даже си взех USB 3G modem... Още не съм решил обаче дали е по-добре 3G и GPS-а да са вързани към Ардуиното вместо RPi-то (или дали ще мога да пратя SMS през модема без да включвам ардуиното).
Иначе добавих и ympd + контрол от мултимедията на волана....но понеже все още слувам целия трафик, имам около 60-65% успеваемост на бутоните за смяна на песен :/ .... явно скоро ще трябва да започна да филтрирам съобщенията за които слушам :/
ympd - https://github.com/notandy/ympd (Standalone MPD Web GUI written in C, utilizing Websockets and Bootstrap/JS)
п.с. тези дни ще взема да драсна едно обяснение за различните съобщения които съм успял да "разчета" (ИД, и значение на "разчетените" байтове)
Обратно на темата с охлаждането... мисля скоро да ида да ми принтират една кутия ....че в момента ....
xD
А и забравих да попитам, (не разбирам особено от електроника :S) какво реле ми трябва за да контролирам потока по OBD CAN шината от ардуиното ? (двупосочна комуникация...няма да може с NPN транзистор само :S)
- Nickelback
- старши ентусиаст
- Мнения: 1857
- Регистриран на: 20.10.2010
- Местоположение: София
- Пол: Мъж
- Кара: BigBlockV8 и чат-пат SmallBlockV8
- Мечтае да кара: бангия с предно
- Детайли за колата: ;)
Big: Hemi 370 cu. in.
Small: S62B50 с жокери
Re: K-CAN Проект
Браво, определено знаеш какво правиш и адмирации за ентусиазма Много се кефя на такива хора, които се обосновават защо и как, цитирайки конкретни наблюдения, факти, и най-вече, демострират подход, без празни теории и общи приказки като за децата, и без да са въздух под налягане Че сме имали такива случаи из форума...
В правилната посока го мислиш, според мен Power moding is always an issue
Иначе много си зависи от модема. Аз съм работил с такива (апликейшън процесора представлява едното ядро от SoC-а, а другото е dedicated за baseband-а), при които дори, ако да кажем, на апликейшън ядрото си зависнал да чакаш на сокет и си влязал в sleep, и след известно време, ако на модемското ядро се появи някаква мрежова активност (има предварително установен datacall), то модемското ядро набива прекъсване на апликейшън ядрото и го вади от sleep и ти си обработваш уеб заявката както прецениш. При теб няма такъв сценарии, понеже модема ти е съвсем отделен на USB, но просто искам да кажа, че си е специфично за модема и трябва да се види дали се поддържа, и да се пробва...
Това ще е супер полезно за бъдещи ентусиасти, евала
С NPN транзистор няма да стане, както и с MOSFET аналогов ключ, заради дуплекс комуникацията, както каза
Вариант е да ползваш CAN transceiver чип, който да разрешаваш/забраняваш.
Ако все пак се спреш на реле (предполагам вече си го мислил), но гледай да е някое с двойка контакти (DPST, да кажем), за да е едничко, и да комутираш CANH и CANL заедно:
Не забравяй да сложиш диод на намотката и търси реле с ниско контактно съпротивление да не повлиява на терминиращия импеданс, въпреки че се съмнявам
ПС: Да ти пусна една муха като вържеш модема... Играл ли си си с протоколи като MQTT, OMA LWM2M или подобни?
shadowx написа:...Още не съм решил обаче дали е по-добре 3G и GPS-а да са вързани към Ардуиното вместо RPi-то (или дали ще мога да пратя SMS през модема без да включвам ардуиното).
В правилната посока го мислиш, според мен Power moding is always an issue
Иначе много си зависи от модема. Аз съм работил с такива (апликейшън процесора представлява едното ядро от SoC-а, а другото е dedicated за baseband-а), при които дори, ако да кажем, на апликейшън ядрото си зависнал да чакаш на сокет и си влязал в sleep, и след известно време, ако на модемското ядро се появи някаква мрежова активност (има предварително установен datacall), то модемското ядро набива прекъсване на апликейшън ядрото и го вади от sleep и ти си обработваш уеб заявката както прецениш. При теб няма такъв сценарии, понеже модема ти е съвсем отделен на USB, но просто искам да кажа, че си е специфично за модема и трябва да се види дали се поддържа, и да се пробва...
shadowx написа:п.с. тези дни ще взема да драсна едно обяснение за различните съобщения които съм успял да "разчета" (ИД, и значение на "разчетените" байтове)
Това ще е супер полезно за бъдещи ентусиасти, евала
shadowx написа:А и забравих да попитам, (не разбирам особено от електроника :S) какво реле ми трябва за да контролирам потока по OBD CAN шината от ардуиното ? (двупосочна комуникация...няма да може с NPN транзистор само :S)
С NPN транзистор няма да стане, както и с MOSFET аналогов ключ, заради дуплекс комуникацията, както каза
Вариант е да ползваш CAN transceiver чип, който да разрешаваш/забраняваш.
Ако все пак се спреш на реле (предполагам вече си го мислил), но гледай да е някое с двойка контакти (DPST, да кажем), за да е едничко, и да комутираш CANH и CANL заедно:
Не забравяй да сложиш диод на намотката и търси реле с ниско контактно съпротивление да не повлиява на терминиращия импеданс, въпреки че се съмнявам
ПС: Да ти пусна една муха като вържеш модема... Играл ли си си с протоколи като MQTT, OMA LWM2M или подобни?
"За тЕя пари има Е-шеесе" - форумна пословица.
Лето две и седемнаесто.
- shadowx
- Потребител
- Мнения: 31
- Регистриран на: 5.04.2016
- Пол: Мъж
- Кара: BMW 120d e87
- Детайли за колата: BMW 120d e87 163hp
Re: K-CAN Проект
Както обещах ето малко информация относно съобщенията по K-CAN шината на e87
Благодаря за информацията за релето
Отнотно протоколите, мисля,че не схванах каква е идеята ти ? please do tell
Ето и линк (реших,че е по-добре да не запълвам темата с код) към сегашната версия на "библиотека" която ползвам за парсване на съобщенията
http://pastebin.com/xXzPXhUF
- Код: Избери целия код
ID: 0x130
byte0 - статус на двигателя
0x00 00000000 - Изключен (Off)
0x40 01000000 - Изключен (Ключ наличен)
(Може би свързано с имобилайзера?)
0x41 01000001 - Изключен (Ключ позиция 1)
0x45 01000101 - Работещ/Готов за работа
0x55 01010101 - В процес на запалване? Стартер?
byte1 - Key status (Double check!!!)
0x00 - Ключът е открит 00000000
0x40 - Ключът не е открит 01000000
byte2 -
Горни 4 бита - Педал на съединител
Долните 4 бита - Те, както и byte3
изглежда са свързани със запалването.
Повече информация на :
http://www.loopybunny.co.uk/CarPC/can/130.html
ID: 0x1B4
bytes 1,0 - Скорост (мили в час)
Формула: ((byte1 - 0xC) * 256) + byte0 / 16
(Резултата е мили/час... умножете по 1.61 за км/час)
byte5 - Статус на ръчната спирачка
0x32 00110010 - Да
0x30 00110000 - Не
ID: 0x1D0
byte0 - Температура на охладителна течност (вода/антифриз)
Формула: byte0 - 48
(Резултата е в градуси в целзий)
ID: 0x1D6 - Бутони на волана
byte0=0xC0, byte1=0xD Voice button
byte0=0xC0, byte1=0x1C Rotate air button
byte0=0xC0, byte1=0x4C Change disk button
byte0=0xC1, byte1=0xC Telephone button
byte0=0xC4, byte1=0xC Volume down
byte0=0xC8, byte1=0xC Volume up
byte0=0xD0, byte1=0xC Down button (Arrows)
byte0=0xE0, byte1=0xC Up button (Arrows)
ID: 0x1EE - Лост за мигачи/фарове
byte0
0x00 00000000 - Нормална позиция
0x01 00000001 - 1ва позиция нагоре (еднократно примигване на десен мигач)
0x02 00000010 - 2ра позиция нагоре (постоянно мигащ десен мигач)
0x04 00000100 - 1ва позиция надолу (еднократно премигване на ляв мигач)
0x08 00001000 - 2ра позиция надолу (постоянно мигащ ляв мигач)
0x10 00010000 - Позиция към шофьора (дълги светлини)
0x20 00100000 - Присветкане с дълги светлини
# bc = 0x40 || 0x80 ? up/down = ?
ID: 0x24B - Аларма за отворена врата (при движение)
byte0=0x00 - Няма отворени врати
(Дали само 1 бит се използва или има за
всяка врата отделен както при ID 0x2FC ?)
ID: 0x21A - Габарити,къси,халогени
Тук трябва да разглеждате съобщенията в бинарен вид.
byte0
00000000 - Всички светлини са изключени
10000000 - Стопове (спирачки)
01000000 - Задни халогени
00100000 - Предни халогени
00000100 - Габарити
00000010 - Интериорни светлини? (табло??)
00000001 - Къси
Съответно ако са пуснати габарити и къси например:
00000101 ..и тнт...:)
byte1
(TODO! Трябва да е за интериорните светлини? Табло?)
ID: 0x328 - Дата на производсво / Последно откачане на акумолатора
bytes 3,2,1,0 - Дата на производство
Пример:
ID 0x238 Len: 6 Data: 16 83 A2 04 DE 11
byte3,2,1,0 = 0x04A28316 = 77759254 (време в секунди!)
77759254 = 899 дни (Сегашна дата - това време = дата на прозиводство)
bytes 5,4 - Последно откачане на акумулатора
Пример:
ID 0x238 Len: 6 Data: 16 83 A2 04 DE 11
byte5,4 = 0x11DE = 4574 (време в дни от 01/01/2000)
(Дни + 01/01/2000 = последно откачане на акумулатора)
ID: 0x246 - Реотан на задно стъкло
byte0
0x3F 00111111 - Изключен
0x7F 01111111 - Включен
(TODO: В това съобщение вероятно има още информация
свързана с контрола на климатика?)
ID: 0x2A6 - Лост за чистачки
byte0
0x00 00000000 - Нормална позиция
0x01 00000001 - Прекъснато движение
0x02 00000010 - Нормална скорост (1ва позиция нагоре)
0x03 00000011 - Бърза скорост (2ра позиция нагоре)
0x08 00001000 - Единично движение (1ва позиция надолу)
0x10 00010000 - Пръскане на течност (2ра позиция надолу)
0x40 01000000 - Задна чистачка (1ва позиция назад)
0x81 10000001 - Пръскане на течност /отзад/ (2ва позиция назад)
byte1 -
Скорост на чистачките (прекъснато движение)
0xF8 11111000 Скорост 1
0xF9 11111001 Скорост 2
0xFA 11111010 Скорост 3
0xFB 11111011 Скорост 4
ID: 0x2CA - Външна температура
byte0 - Външна температура
Формула: (byte0 - 80) / 2
ID: 0x2E6 - Климатик
byte5 - Скорост на вентилатора
(От 0 до 7)
byte7 - Температура (шофьорска страна)
Формула: byte7 / 2
ID: 0x2EA - Климатик
byte7 - Температура (пасажер)
Формула: byte7 / 2
ID: 0x366 - Външна температура / Прогноза за оставащи километри с наличното гориво
byte0 - Външна температура
Формула: (byte0 - 80) / 2
byte2,1 - Прогноза за оставащи километри с наличното гориво
Формула: (byte2,1) / 16
Пример:
ID 0x366 Len: 4 Data: 78 50 14 FC
byte2,1 = 0x1450 = 325 (мили ...умножете по 1.61 за км)
ID: 0x330 - Одометър, Средно ниво на горивото
byte2,1,0 - Одометър
Пример:
ID 0x300 Len: 8 Data: 95 0A 01 2D 29 2F 9C 34
0x010A95 = 68245 км
ID: 0x34F - Ръчна спирачка
byte0
0xFE 11111110 - Да
0xFD 11111101 - Не
ID: 0x32E - Вътрешна светлина и температура
byte3 - Вътрешна температура
Формула: (byte3 / 10) + 6
byte4 - Сензор за светлина
ID: 0x362 - Среден разход / Средна скорост
byte1(долни 4 бита) + byte0 - Средна скорост
byte2 + byte1(горни 4 бита) - Среден разход
Пример:
ID: 0x362 Len: 7 Data: A2 71 1E FF FF FF EA
(byte2 + byte1(4 up bits)) / 10
-> 0x1E7 / 10 = 479/10 = 47.9 mpg
(byte1(4down bits) + byte0) / 10
-> 0x1A2 = 418 / 10 = 41.8 mph
(*1.61 = км/ч)
ID: 0x380 - VIN Номер
hex2ascii = VIN
ID: 0x0E6 - Заключване на предна лява врата
ID: 0x0E2 - Заключване на предна дясна врата
ID: 0x0EE - Заключване на задна лява врата
ID: 0x0EA - Заключване на задна дясна врата
byte0
0x81 10000001 - Вратата е отключена (затворена?)
0x82 10000010 - Вратата е заключена
0x83 10000011 - Вратата е заключена и алармата е пусната (deadlock?)
byte3 (0xFC Сменя се м/у 0xFD)
ID: 0x3B0 - Задна скорост
byte0
0xFD 11111101 - Не
0xFE 11111110 - Да
ID: 0x3B6 - Преден ляв прозорец
ID: 0x3B8 - Преден дясен прозорец
ID: 0x3B7 - Заден ляв прозорец
ID: 0x3B9 - Заден дясен прозорец
byte0 - Позиция (От 0/вдигнат/ до 95/свален/)
byte1 - Позиция /относителна/ (Провери!!)
ID: 0x2F8 - Дата/час
http://www.loopybunny.co.uk/CarPC/can/2F8.html
ID: 0x1F6 - Индикация на светлини
# http://www.loopybunny.co.uk/CarPC/can/1F6.html
(Пинг-понг информация с таблото?
Дали byte1 не е on/off ? Да проверя timestamps!)
byte0=0x91 10010001 - Ляв мигач
Пращат се поредица от две съобщения с това ID:
0x91 0xF2 10010001 11110010
0x91 0xF1 10010001 11110001
byte0=0xA1 10100001 - Десен мигач
0xA1 0xF2 10100001 11110010
0xA1 0xF1 10100001 11110001
byte0=0xB1 10110001 - Двата мигача
0xB1 0xF2 10100001 11110010
0xB1 0xF1 10100001 11110001
ID: 0x394 - Вдига аларма за колан на таблото
byte3 0x28 00101000
ID: 0x581 - Премахва аларма за колан на таблото
byte3 0x29 00101001
ID: 0xA8 - Съединител, Спирачки
byte5 - Съединител
0xF0 11110000 - Не
0xF1 11110001 - Да
byte7 - Спирачки.
0x00 - ? (Над 20 може да се счита за "натиснат" педала?)
е83 има информация за въртящ момент в реално време в това съобщение
Още информация на : http://www.loopybunny.co.uk/CarPC/can/0A8.html
ID: 0xAA - RPMs, Позиция на педала за газта
bytes 5,4 - Обороти
Пример:
ID 0x0AA Len: 8 Data: 5F 59 FF 00 34 0D 80 99
byte5,4 = 0x0D34 = 3380 / 4 = 845 rpm
byte3,2 - Позиция на педала за газта
Пример:
ID 0x0AA Len: 8 Data: 5F 59 FF 00 34 0D 80 99
byte3,2 = 0x00FF = 255 (Не натиснат)
byte3,2 = 0xFE28 = 65064 (Натиснат до долу)
(Лично аз ги разделям на 256 така крайната
стойност е м/у 0 и 254 (0x00 - 0xFE))
byte7 - http://www.loopybunny.co.uk/CarPC/can/0AA.html
ID: 0xC8 (0xC4 също)- Позиция на волана
byte1,0 - Абсолютна позиция на волана
Пример:
ID 0xC8 Len: 6 Data: DD 07 FC 00 00 FF
byte1,0 0x07DD = 2013
2013 / 23 = 87 грауда (по чесовниковата стелка)
При въртене в обратна на чесовниковата посоката:
ID 0xC8 Len: 6 Data: 1E F8 FC 00 00 FF
byte1,0 0xF81E = 63518
(63518-65535) / 23 = -87 (граудса обратно
на чесовниковата стелка)
byte4,3 - Инкрементиращи стойности за отместванто
на волана спрямо последното отчинате
(Отрицалтени стойности ако е в обрана посока)
ID: 0xCE - Индивидуална скорост на всяко колело
byte1,0 / 24 = mph
byte3,2 / 24 = mph
byte5,4 / 24 = mph
byte7,6 / 24 = mph
Nickelback написа:
Не забравяй да сложиш диод на намотката и търси реле с ниско контактно съпротивление да не повлиява на терминиращия импеданс, въпреки че се съмнявам
ПС: Да ти пусна една муха като вържеш модема... Играл ли си си с протоколи като MQTT, OMA LWM2M или подобни?
Благодаря за информацията за релето
Отнотно протоколите, мисля,че не схванах каква е идеята ти ? please do tell
Ето и линк (реших,че е по-добре да не запълвам темата с код) към сегашната версия на "библиотека" която ползвам за парсване на съобщенията
http://pastebin.com/xXzPXhUF
- bum_bum
- старши ентусиаст
- Мнения: 12068
- Регистриран на: 22.07.2003
- Местоположение: София
- Пол: Мъж
- Кара: турбо бмв
Re: K-CAN Проект
Колега, три мнения като ги пускаш едно след друго ги събирай в едно а не в три отделни.
- Nickelback
- старши ентусиаст
- Мнения: 1857
- Регистриран на: 20.10.2010
- Местоположение: София
- Пол: Мъж
- Кара: BigBlockV8 и чат-пат SmallBlockV8
- Мечтае да кара: бангия с предно
- Детайли за колата: ;)
Big: Hemi 370 cu. in.
Small: S62B50 с жокери
Re: K-CAN Проект
shadowx написа:Отнотно протоколите, мисля,че не схванах каква е идеята ти ? please do tell
Ааа конкретна идея нямам, само пускам мухата Например алармиране за настъпили определени събития - около/в колата, проследяване на колата, ако си я дал на жената, в реално време... а бе, каквото се сетиш
http://www.slideshare.net/JoeSpeed/conn ... -joe-speed
"За тЕя пари има Е-шеесе" - форумна пословица.
Лето две и седемнаесто.
- shadowx
- Потребител
- Мнения: 31
- Регистриран на: 5.04.2016
- Пол: Мъж
- Кара: BMW 120d e87
- Детайли за колата: BMW 120d e87 163hp
Re: K-CAN Проект
Аха ! Рзбирам....
В извесна степен това което казваш мисля да го имплементна.
т.е. GPS модула ще е закачен към SparkFun Can Bus Shield-а на Arudino-то (има слот за gps модул) и мисля да го накарам да се представя за вградения OEM GPS-а (нямам навигация в колата , но предполагам,че GPS кординатите се съобщават в K-CAN шината и просто трябва да използвам оргиналните ID и синтаксис)... самата интерпретация на данните ще става в Rasberry Pi-то разбира се...
Даже мисля,че е редно RPi-то да има постоянно отворен OpenVPN тунел към мой сървър ...така ще имам обратна връзка с колата винаги (като е запалена/като е на контакт...зависи в крайния варянт кога ще е пуснато RPi-то)
Относно протоколите... с OpenVPN-а леко засегнах тази тема... но ако говориш за репортите за кординатите на GPS-а специално, там едно edin XOR на данните и чисти udp-та .... възможно най-малки ... да се пести трафик и излишно време (излишно време > tcp).
И като казах XOR ...за допълнително секюрити мисля, да правя един XOR на ардуиното за нещата които праща ....
Не,че става особено сложно , но все пак ако примеме,че някой добие достъп до него,.... ще е допълнителна пречка преди да успее да прати каквото и да е... плус може като цяло да се фитлрира и range от ID-та , с цел само необходимите неща да могат да бъдат пращани...
п.с. относно протоколите ... попринцип съм мрежов/линукс админ ...та
п.с.: Съжелявам ,че бяха 3 post-а...идеята беше да са два (исках да разделя описанието от писанията ми)... но нали съм заек и чакам одобрение на всеки поуст..... та нямаше как да го редактирам и да добавя .
В извесна степен това което казваш мисля да го имплементна.
т.е. GPS модула ще е закачен към SparkFun Can Bus Shield-а на Arudino-то (има слот за gps модул) и мисля да го накарам да се представя за вградения OEM GPS-а (нямам навигация в колата , но предполагам,че GPS кординатите се съобщават в K-CAN шината и просто трябва да използвам оргиналните ID и синтаксис)... самата интерпретация на данните ще става в Rasberry Pi-то разбира се...
Даже мисля,че е редно RPi-то да има постоянно отворен OpenVPN тунел към мой сървър ...така ще имам обратна връзка с колата винаги (като е запалена/като е на контакт...зависи в крайния варянт кога ще е пуснато RPi-то)
Относно протоколите... с OpenVPN-а леко засегнах тази тема... но ако говориш за репортите за кординатите на GPS-а специално, там едно edin XOR на данните и чисти udp-та .... възможно най-малки ... да се пести трафик и излишно време (излишно време > tcp).
И като казах XOR ...за допълнително секюрити мисля, да правя един XOR на ардуиното за нещата които праща ....
Не,че става особено сложно , но все пак ако примеме,че някой добие достъп до него,.... ще е допълнителна пречка преди да успее да прати каквото и да е... плус може като цяло да се фитлрира и range от ID-та , с цел само необходимите неща да могат да бъдат пращани...
п.с. относно протоколите ... попринцип съм мрежов/линукс админ ...та
п.с.: Съжелявам ,че бяха 3 post-а...идеята беше да са два (исках да разделя описанието от писанията ми)... но нали съм заек и чакам одобрение на всеки поуст..... та нямаше как да го редактирам и да добавя .
- Nickelback
- старши ентусиаст
- Мнения: 1857
- Регистриран на: 20.10.2010
- Местоположение: София
- Пол: Мъж
- Кара: BigBlockV8 и чат-пат SmallBlockV8
- Мечтае да кара: бангия с предно
- Детайли за колата: ;)
Big: Hemi 370 cu. in.
Small: S62B50 с жокери
Re: K-CAN Проект
Именно заради редуцирания трафик и вграденото секюрити те насочвам към MQTT... Струва ми се, че не съм те заинтригувал и не си прочел Най-вече - publish/subscribe е, има topics, keep alive, "lasт will", retained messages и си опростяваш нещата много. Само си вдигни един MQTT брокер на някой твой сървър и пей сърце. Но ако държиш от ентусиазъм да си правиш нещо подобно сам, няма лошо
"За тЕя пари има Е-шеесе" - форумна пословица.
Лето две и седемнаесто.
- shadowx
- Потребител
- Мнения: 31
- Регистриран на: 5.04.2016
- Пол: Мъж
- Кара: BMW 120d e87
- Детайли за колата: BMW 120d e87 163hp
Re: K-CAN Проект
Ами, поне към момента не виждам нужда от подобни протоколи..... скоро време - who knowz
Иначе вчера ми остана малко време да слушам трафик, ето наблюденията:
И за цвят , снимка от сегашния варянт (хардуер) на проекта:
Иначе вчера ми остана малко време да слушам трафик, ето наблюденията:
- Код: Избери целия код
ID: 0x2F0 - Неизвестно
# Праща се: При запален двигател
# Честота: ?
# Стойност: (винаги?) F7 FC
byte0: 0xF7 (247) 1111 0111
byte1: 0xFC (252) 1111 1100
ID: 0x23A - Неизвестно
# Праща се: При запален двигател
# Честота: ?
byte0: 0x0 (винаги?)
byte1: 0x30/0x33 (48/51)
0011 0000 / 0011 0011
byte2: 0x0,0x01,0x4
0000 0000, 0000 0001, 0000 0100
byte3: 0x5A/0x6A (90/106)
0101 1010 / 0110 1010
# Лог:
# ID: 23A [4] 0 30 4 5A
# ID: 23A [4] 0 30 1 6A
# ID: 23A [4] 0 30 1 6A
# ID: 23A [4] 0 33 0 5A
# ID: 23A [4] 0 30 4 5A
# ID: 23A [4] 0 33 0 5A
# ID: 23A [4] 0 30 0 5A
ID: 0x2F4 - Неизвестно (Сензор?)
# Праща се: При запален двигател
# Честота: ?
# Стойност: (винаги?) CF FF FF FF
byte0: 0xCF (207) 1100 1111
byte1-3: 0xFF (255) 1111 1111
ID: 0x2F6* - Аларма за отворена врата (Като 0x24B ?)
# Праща се: При контакт/запален двигател
# Честота: (event driven?)
byte0:
0x00 ( 0) 1100 1111 (Статус - ОК)
0x54 (84) 0101 0100 (Аларма за отворена врата)
byte1: 0xF5 (245) 1111 0101
ID: 0x2FA - Неизвестно
# Праща се: При контакт/запален двигател
# Честота: ?
byte0: 0xFC/0xFC (252/253)
1111 1100 / 1111 1101
byte1:
0x8 - (8) 0000 1000
0x6C - (108) 0110 1100
0x6D - (109) 0110 1101
0xFC - (252) 1111 1100
0xFD - (253) 1111 1101
byte2-4: 0xFF
ID: 0x311 - Неизвестно
# Праща се: При запален двигател
# Честота: ?
# Стойност: (винаги?) 0x0 0xFD
byte0: 0x0
byte1: 0xFD (253) 1111 1101
ID: 0x335 - Неизвестно
# Праща се: При контакт/запален двигател
# Ако колата не е запалена, b2,b4,b6,b7 имат стойност 0
# b3 има стойност 1, b5 има стойнсот 7F.
# Честота: 1секунда
byte0: 0x0 (винаги?)
byte1: 0xC-0xED
Горните 4 бите се инкрементват от 0x0 до 0xE (0xF?)
Долните 4 бите винаги са 0xC (12) 1100
byte2: 0x53 - 0x73 (83 - 115)
byte3: 0x40 - 0x54 (64 - 84)
byte4: 0x33 - 0x45 (51 - 69)
byte5: 0x6A - 0x93 (106 - 147)
byte6: 0x64 - 0x91 (100 - 145)
byte7: 0x3A - 0x64 (58 - 100)
ID: 0x367 - Неизвестно
# Праща се: На контакт/запален двигател
# Честота: ?
byte0:
Горните 4 бита варират м/у 1 и 6
0001 - 0110
Долните 4 бита са винаги 6?
0110
byte1: 0x1 - 0x11 (1-17)
0000 0001 - 0001 0001
byte2: 0x0 (винаги?)
byte3: 0x7,0x18,0x1C,0x23,0x80
0x07 (7) - 0000 0111
0x18 (24) - 0001 1000
0x1C (28) - 0001 1100
0x23 (35) - 0010 0011
0x80 (128) - 1000 0000
byte4: 0x11,0x12,0xFF
0x11 (17) - 0001 0001
0x12 (18) - 0001 0010
0xFF (255) - 1111 1111
byte5: 0x63,0x66,0x6F,0x73,0xF6
99 102 111 115 246
0x63 (99) - 0110 0011
0x66 (102) - 0110 0110
0x6F (111) - 0110 1111
0x73 (115) - 0111 0011
0xF6 (246) - 1111 0110
byte6: 0xD0 (208) - 1101 0000 (Винаги?)
ID: 0x35C - Неизвестно
# Праща се: (При събитие?)
# Честота: ?
# Data: [4] FF F0 FF A0 (Винаги?)
# FF 1111 1111
# F0 1111 0000
# FF 1111 1111
# A0 1010 0000
ID: 0x3B3 - Неизвестно
# Праща се:
# Честота: ?
#
# На контакт:
# ID: 3B3 [6] 11 0 0 0 0 f0
# При запален двигател/в движение:
byte0: 11 (17) 0001 0001 (Винаги?)
byte1: 0x00 - 0xC8 (0 - 200) (????)
byte2: 0x00/0xFF (0 - 255) (????)
byte3:
0x00 - 0 0000 0000
0x03 - 3 0000 0011
0xF7 - 247 1111 0111
byte4: 0x00 (Винаги?)
byte5: 0xF0 (Винаги?)
ID: 0x3BD - Неизвестно
# Праща се: Запален двигател/в движение
# Честота: ?
byte0: 0xFC/0xFD (252/253)
1111 1100 - 1111 1101
byte1: 0xFF (Винаги?)
ID: 0x3BE - Неизвестно
# Праща се:
# Честота: ?
# На контакт: (FE FF Винаги?)
# (повечето време събщението е FE FF)
# Нещо активно само в даден момент?
byte0: 0xAF,0xB1,0xB2,0xB3,0xFE
0xAF (175) - 1010 1111
0xB1 (177) - 1011 0001
0xB2 (178) - 1011 0010
0xB3 (179) - 1011 0011
0xFE (254) - 1111 1110
byte1: 0xF0/0xFF (240 - 255)
1111 0000 / 1111 1111
ID: 0xD7* - Неизвестно
# Праща се: На контакт/запален двигател
# Честота: През една/няколко секунда(и)
byte0: 0x0 - 0xFE (FF?) Counter!
byte1: 0xFF (255) 1111 11111 (Винаги?)
И за цвят , снимка от сегашния варянт (хардуер) на проекта:
40 мнения
• Страница 1 от 3 • 1, 2, 3
Кой е на линия
Потребители разглеждащи този форум: 0 регистрирани