70 страниц V  « < 6 7 8 9 10 > »   
 
> Подключение бука к Хонде через OBD-1
 Starick
сообщение 28.11.09 - 15:12
Сообщение #141


Хондавод
*

Группа: .Хондаводы.
Сообщений: 125
Имя: Игорь
Город: Украина, Николаев.
Машина: Civic, MA9, D15Z3.

Репутация: 10



Помучил немного GPS навигатор, вот что получилось. Хотя мне кажется, из-за того, что экран маленький, смысла в таких индикаторах не вижу, может просто цифры выводить, как в скантехе?? Кто что посоветует???
Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
 



           
 sheff1422
сообщение 28.11.09 - 16:19
Сообщение #142


Новенький


Группа: .Хондаводы.
Сообщений: 23
Имя: Yura
Город: Kharkov
Машина: Accord 6th

Репутация: нет



Хм уже неплохо.
ИМХО можно наложить тахометр на спдометр или сделать тахометр другой шкалой чтобы места меньше занимал.
Например как у приборки в s2000


+ ID ECU ИМХО не нужно )

Сообщение отредактировал sheff1422 - 28.11.09 - 16:20



           
 Mayhem
сообщение 28.11.09 - 22:22
Сообщение #143


Хондавод
*

Группа: .Хондаводы.
Сообщений: 625
Имя: Андрей
Город: Сороковка
Машина: EG8 VTEC JDM

Репутация: 21



а зачем вообще выводить на БК приборы которые итак есть на комбинации?
фон я бы сделал тёмным(или переключатель день/ночь), иначе в глаза бить будет, при втеке менял его цвет например на зелёный, а при приближении к отсечке на красный - так эту информацию можно будет видеть боковым зрением, ведь при тапке в пол не до разглядывания малюсеньких лампочек.

накидал тут пробный интерфейс своей проги, пока заполнен рандомом:
Прикрепленное изображение

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


Сообщение отредактировал calipso - 28.11.09 - 22:30



           
 leonidu
сообщение 28.11.09 - 22:34
Сообщение #144


Новенький


Группа: .Хондаводы.
Сообщений: 39
Имя: Леонид
Город: Ростов-Дон
Машина: HONDA CRV-1

Репутация: 2



Цитата(calipso @ 27.11.09 - 12:10 ) *
Цитата
х

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


Может эта подойдёт? http://chiptuner.ru/content/kline/
И по сложней. http://www.blafusel.de/obd/obd2_obdii_obd-2_list_me_en.html



           
 Mayhem
сообщение 29.11.09 - 10:07
Сообщение #145


Хондавод
*

Группа: .Хондаводы.
Сообщений: 625
Имя: Андрей
Город: Сороковка
Машина: EG8 VTEC JDM

Репутация: 21



написал полностью функциональное тело программы за 6 часов)):
Прикрепленное изображение

осталось только настроить обмен с мозгом.


теперь всем можно управлять из ини файла:
Содержание:

[настройки_датчиков]
кол-во_датчиков=5
[датчик0]
макс_знач=100
цвет=$ff0000
высота=150
назв_пер=d0
формула=d0*100
название=датчик0
[датчик1]
макс_знач=100
цвет=$00ff00
высота=150
назв_пер=d1
формула=d1*50
название=датчик1
[датчик2]
макс_знач=100
цвет=$0000ff
высота=50
назв_пер=d2
формула=d2*30
название=датчик2
[датчик3]
макс_знач=100
цвет=$ffff00
высота=100
назв_пер=d3
формула=(d1*10-d2*10)^2
название=датчик3
[датчик4]
макс_знач=100
цвет=$ff00ff
высота=50
назв_пер=d4
формула=d4
название=датчик4

в иньке ещё будут офсеты и размеры.
обратите внимание на рачсёт датчика под номером 3.

update

Содержание:

[датчик4]
макс_знач=1
цвет=$ff00ff
высота=50
назв_пер=d4
формула=((d4)mod(32)-(d4)mod(16))/16
название=датчик4

вот так будут логиться флаги (формула выделяет 4-тый бит)

как быть с двумя байтами? первый умножаем на 256 и плюсуем второй?

Сообщение отредактировал calipso - 12.12.09 - 20:49



           
 rvs
сообщение 30.11.09 - 16:19
Сообщение #146


Хондавод
*

Группа: .Хондаводы.
Сообщений: 65
Имя: Валентин
Город: Питер
Машина: honda - logo

Репутация: 5



Цитата(calipso @ 29.11.09 - 10:07 ) *
как быть с двумя байтами? первый умножаем на 256 и плюсуем второй?

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




           
 Mayhem
сообщение 30.11.09 - 21:33
Сообщение #147


Хондавод
*

Группа: .Хондаводы.
Сообщений: 625
Имя: Андрей
Город: Сороковка
Машина: EG8 VTEC JDM

Репутация: 21



d1/256+((d1)mod(256))*256
-впринципи, так можно поменять байты местами, чтоб не плодить перменные. в парсере которой я использую их количество ограничено 30-ю, но для универсальности каждому датчику сообщаю весь набор переменных.
следуя коцепции моей программы можно создать невидимый датчик и читать перый байт, а во втором датчике отображать обе переменные:

Содержание:

[датчик0]
высота=0
назв_пер=d0
[датчик1]
высота=150
назв_пер=d1
формула=d1*256+d0 //или d0*256+d1



просто не хочу делать много процедур инициализации под разные виды датчиков, хочу чтобы все они были унивестальными.

возможно в потоке ответа биты в байте записываться не справа на лево(от младшего к старшему), а наоборот, или нет? формулу перевёртывания бит парсер точно не потянет)))

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

update2
переписал пол тела проги, теперь конфиг для 2-х датчиков выглядит так:

Содержание:


[настройки]
кол-во_логов=2
кол-во_перем=3
интервал_опрса=100

[переменные]
название_0=rpm0
отступ_0=$00
название_1=rpm1
отступ_1=$01
название_2=vss
отступ_2=$02

[логер_0]
название=обороты //присваевается первой строчке слева от лога
макс_знач=9000 //вертикальный маштаб логера
формула=rpm0*256+rpm1
номер_пер= //второй строчке слева присваевается значение указанной перменной
высота=200 //высота отображаемого логера в точках(более важные или имеющие большую дискретность делаем пошире)
цвет=$ff0000 //цвет графика в формате BGR

[логер_1]
название=скорость
макс_знач=200
формула=vss
номер_пер=2
высота=150
цвет=$ff0000


событие на таймере:
-прога посылает запрос на 1 байт с заданным первым офсетом, дожидается ответ, записывает его в первую переменную; 1 байт 2-ого офсета, ожидание, 2-я переменная; ....... ; 1 байт последнего-ого офсета, ожидание, последняя переменная; то есть для каждой заданной в конфиге переменной ждёт ответ.
-заполняет графики/логи по формулам из конфига.

в этом конфиге прога читает и записывает отступы $00 $01 $02 в переменные rpm0, rpm1, vss соответственно, затем считает первый лог по формуле rpm0*256+rpm1, второму просто присваевает значение переменной.



к тем кто кодит: общий подход у меня правильный? или может чтение порта запускать отдельной нитю и анализировать преабулу чтобы запиать пришедший байт в нужную переменную?

чтоб проверить правильность обмена нету шнурка, когда настрою выложу альфа версию, у кого есть желание попробывать в таком виде как она есть сейчас - пишем в ПМ.

update3
совсем забыл про флаги:

Содержание:

[настройки]
кол-во_логов=4
кол-во_перем=4

[переменные]
название_3=flag5
отступ_3=$0C

[логер_2]
название=vtec_e
макс_знач=1
формула=((flag5)mod(8)-(flag5)mod(4))/4 //3-ий бит
номер_пер=3
высота=50

[логер_3]
название=econ
макс_знач=1
формула=((flag5)mod(128)-(flag5)mod(64))/64 //7-ой бит
номер_пер=
высота=50


Сообщение отредактировал calipso - 12.12.09 - 20:51



           
 rvs
сообщение 01.12.09 - 10:33
Сообщение #148


Хондавод
*

Группа: .Хондаводы.
Сообщений: 65
Имя: Валентин
Город: Питер
Машина: honda - logo

Репутация: 5



Цитата(calipso @ 30.11.09 - 21:33 ) *
возможно в потоке ответа биты в байте записываться не справа на лево(от младшего к старшему), а наоборот, или нет? формулу перевёртывания бит парсер точно не потянет)))

к тем кто кодит: общий подход у меня правильный? или может чтение порта запускать отдельной нитю и анализировать преабулу чтобы запиать пришедший байт в нужную переменную?


Биты идут в обычном порядке.
Работу с портом желательно реализовать в отдельном потоке.

Читать по одному датчику очень накладно. Теряешь кучу времени и данных, соответственно увеличивается интервал опроса датчиков и график будет очень ломанным. Например лямбду или форсунку не получится точно логгировать. Читать желательно группы байт, так быстрее.
Если анализировать с преамбулой, то записанный лог можно всегда парсить заново, формулы поменять.
А если в лог писать значения или вычисленные величины, то теряется универсальность

проверка бита на включенность в delphi выглядит примерно так:
var b:boolean;
........
if( (value and (1 shl (номер бита))) != 0 ) then b = true else b = false;

Сообщение отредактировал rvs - 01.12.09 - 10:39



           
 Mayhem
сообщение 01.12.09 - 13:19
Сообщение #149


Хондавод
*

Группа: .Хондаводы.
Сообщений: 625
Имя: Андрей
Город: Сороковка
Машина: EG8 VTEC JDM

Репутация: 21



Цитата
проверка бита на включенность в delphi выглядит примерно так:

как это записать на языке я знаю))) но интерпритатор которой я использую для формул не знает команду shl, он умеет производить только математические вычисления.



           
 slider26
сообщение 02.12.09 - 06:52
Сообщение #150


Хондавод
*

Группа: .Хондаводы.
Сообщений: 89
Имя: Денис
Город: Красноярск
Машина: Honda CAPA, D15B, CVT, 1998

Репутация: 7



Цитата(calipso @ 01.12.09 - 13:19 ) *
Цитата
проверка бита на включенность в delphi выглядит примерно так:

как это записать на языке я знаю))) но интерпритатор которой я использую для формул не знает команду shl, он умеет производить только математические вычисления.

Вот еще способы - вдруг пригодятся .).gif
Для того, чтобы определить включенность n-го бита, необходимо число разделить на 2 в степени (n+1).
Если дробная часть числа меньше 0.5, то бит выключен, иначе включен.
По другому: Если ЦелаяЧасть(число/(2 в степени (n+1)) <> ЦелаяЧасть(0.5 + (число/(2 в степени (n+1))), то бит включен, иначе выключен.
Т.е. для первого бита делим на 4, для 2-го на 8 и так далее.
В случае отсутствия функций округления, можно попробовать использовать присвоение дробного числа переменной целого типа (если, конечно, интерпретатор это разрешит).
Как то так, если я еще не забыл математику .).gif

Сообщение отредактировал slider26 - 02.12.09 - 06:58



           
 Mazai
сообщение 03.12.09 - 12:45
Сообщение #151


Новенький


Группа: .Хондаводы.
Сообщений: 30
Имя: Mazai
Город: Maloyaro
Машина: civic

Репутация: нет



народ если не сложно дайте ссылку или напишите распиновку диагностического разъёма, где там К линия где + где земля....ищу в инете, помню находил, сейчас не могу найти, скачал данную прогу, собрал уже 2 адаптера один мастер кит com-ский, второй по схеме предложеной Staric, вчера пробовал в гараже подключится ничего не получается, от компа сигнал идёт мозги ничего не выдают, пробовал по разному пихать в 3-х контактный диагностический разъём, у меня 2 колодки там 2-х контактная для самодиагностики и 3-х контактная для диагностики, только где там К линия не понятно, пробовал мультиметром найти, ничего что то не получилось, надо точно знать где К линия у меня D15B7 дрыг, мозги по ходу OBD1 всё норм...HELP



           
 Mazai
сообщение 03.12.09 - 12:56
Сообщение #152


Новенький


Группа: .Хондаводы.
Сообщений: 30
Имя: Mazai
Город: Maloyaro
Машина: civic

Репутация: нет



всё нашёл


1 K-линия диагностики
2 Питание +12В (АКБ)
3 Масса
4 Используется для считывания медленных кодов самодиагностики
5 Используется для считывания медленных кодов самодиагностики


буду экспериментировать дальше))))
вопрос такой, с моими мозгами будет работать ли?)))) у меня P06 мозг



           
 Mayhem
сообщение 03.12.09 - 21:22
Сообщение #153


Хондавод
*

Группа: .Хондаводы.
Сообщений: 625
Имя: Андрей
Город: Сороковка
Машина: EG8 VTEC JDM

Репутация: 21



пообщался с rvs, снова, наxpен, переделал всю прогу)) теперь в конфиге добавились новые строки

Содержание:


[настройки]
кол-во_областей=3

[области]
смещение_0=$00
размер_0=$10
смещение_1=$10
размер_1=$10
смещение_2=$20
размер_2=$10


[переменные]
название_0=rpm0
область_0=0
отступ_0=$00



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

Сообщение отредактировал calipso - 12.12.09 - 20:52



           
 Starick
сообщение 04.12.09 - 10:27
Сообщение #154


Хондавод
*

Группа: .Хондаводы.
Сообщений: 125
Имя: Игорь
Город: Украина, Николаев.
Машина: Civic, MA9, D15Z3.

Репутация: 10



biggrin.gif
Цитата
пообщался с rvs, снова, наxpен, переделал всю прогу))

Переделки-это мелочи, главное чтоб желание не пропало.)))



           
 rvs
сообщение 04.12.09 - 18:50
Сообщение #155


Хондавод
*

Группа: .Хондаводы.
Сообщений: 65
Имя: Валентин
Город: Питер
Машина: honda - logo

Репутация: 5



Цитата(Starick @ 04.12.09 - 10:27 ) *
Переделки-это мелочи, главное чтоб желание не пропало.)))


Starick, проведи ликбез по теории плиз.

Мне известно:
1 время открытия форсунки и обороты пихона. Как его перевести в литро часы ?
2 общее время открытия форсунок. как его перевести в потраченные литры?
3 зная ответы на первые 2 остальное я посчитаю (мгновенные литры на 100, средне литры на 100, ...)

Сообщение отредактировал rvs - 04.12.09 - 18:51



           
 AIRKrug
сообщение 05.12.09 - 13:05
Сообщение #156


Ветеран форума III-й степени
**

Группа: .Хондаводы.
Сообщений: 2.977
Имя: Игорь
Город: Саянск`38, Ирк. обл.
Машина: Odyssey`97 model E-RA1M F22B

Репутация: 66



Можно посчитать, просто ты забыл о еще одном параметре - производительности форсунки.






®
...а пингвин - это разжиревшая USовская ласточка. (Ю. Никитин)
...В данный момент стена этого дома, с моей стороны, белая...! [Свидетель] Robert A. Heinlein (И среди пингвинов попадаются человеки!)
           
 Starick
сообщение 05.12.09 - 19:00
Сообщение #157


Хондавод
*

Группа: .Хондаводы.
Сообщений: 125
Имя: Игорь
Город: Украина, Николаев.
Машина: Civic, MA9, D15Z3.

Репутация: 10



AIRKrug, верно говоришь, что нужно знать производительность форсунки.
to rvs
Ну, в принципе там ничего сложного. Если просто окончательную формулу, без вывода, то она выглядит так:
Мгнов. расход (л/час) = qf*n*time*0.00000002;
где qf - производительность форсунки см3/мин. (у меняпроизводительность форсунки 235 см3 в минуту)
n - частота вращения движки в об/ мин (тут все ясно)
time - время открытия форсунки, которое вычисляется по формуле time=(time_h*100)+(time_l*100/255);
Вроде преобразование верное, сидел с осциллом сравнивал.
time_h,time_l - соответственно значения старшего и младшего байта.
Соответсвенно мгновенный расход по километражу (л/км) = (qf*n*time*0.000002)/v

все тоже самое, v - скорость авто, км/час., только помни, что на нуль делить нельзя., я вычисляю расход по километражу, когда скорость больше 10 км/.час

Эти формулы более менее точны, в той версии, что висит на сайте косяк в расходах, так как я посчитал, что форсунка открывается 1 раз на 4 оборота движки, а не на 2, че то подклинило меня))))).

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

Сообщение отредактировал Starick - 05.12.09 - 19:09



           
 rvs
сообщение 07.12.09 - 11:36
Сообщение #158


Хондавод
*

Группа: .Хондаводы.
Сообщений: 65
Имя: Валентин
Город: Питер
Машина: honda - logo

Репутация: 5



Спасибо. Почти все ясно. Одно не понятно.
qf*n* time* 0.000 000 02;

time - в милисекундах;
qf - в см3

Итого: (qf/1000)литры в мин * n * (((time/1000)секунды)/60 минуты) * 2(впрысков за оборот) = (литры в минуту).

А (литры в минуту) * 60 = литры в час. Вроде так должно быть

Не совсем понятен последний множитель. Объясните

И еще. Информация по поводу интерпретации у меня есть 3 методики. Какая из них более точная я не знаю
// Время форсунки
// word value = ((int)hi<<8) + lo
//InjTime = 3.2 *(Word)value / 1000 У доктроника
//Injtime=(time_h*100)+(time_l*100/255);
//Injtime= (value / 400d) + 0.6d;


Сообщение отредактировал rvs - 07.12.09 - 11:56



           
 Starick
сообщение 07.12.09 - 12:34
Сообщение #159


Хондавод
*

Группа: .Хондаводы.
Сообщений: 125
Имя: Игорь
Город: Украина, Николаев.
Машина: Civic, MA9, D15Z3.

Репутация: 10



Нет, ничего не переводишь, никакие дополнительные преобразования не делаешь, уже все учтено, просто подставляешь значения и считаешь, т.е.
у меня чтоб узнать мгновенный расход литров в час = 235*n*time*0.00000002, соответственно у expo на машинке расход будет вычисляться так = 325*n*time*0.00000002, так, как у него форсы "жирнее", последний коєфф. как раз и учитывает все преобразования.

Сообщение отредактировал Starick - 07.12.09 - 12:46



           
 rvs
сообщение 09.12.09 - 17:22
Сообщение #160


Хондавод
*

Группа: .Хондаводы.
Сообщений: 65
Имя: Валентин
Город: Питер
Машина: honda - logo

Репутация: 5



Привет всем.
Выкладываю на общее пользование первую альфа версию логгера OBD1, OBD2a

Прикрепленное изображение

Прикрепленное изображение


пароль на скачку - мой ник
http://www.filehoster.ru/files/ea5570

Весит 27Мб !!!!.

Дальнейшие версии будут без DotNet Framework 2.0 SP2, соответственно весить будут порядка 2-3 Мб.

Проверял только на своем ЕКУ, который не подключен к автомобилю.
Для работы требуется DotNet Framework 2.0 SP2, который включен в setup.
Если у Вас Vista или Win7, то нужен тот же пакет но версии 3.5 SP1 (качается отдельно, т.к. весит порядка 250 мб. Не стал выкладывать).

Как работать: подключить k-line к авто (в этой теме уже обсуждалось). Выбрать порт соединения и нажать кнопень подключения.
Должно работать сразу.

Есть кучка настроек на соответствующей странице, .


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

Откуда берутся логи?
При работе программы все ответы и запросы к ЕКУ запоминаются и могут быть записаны в файл. Для ручной записи лога в файл нужно пользоваться кнопкой с дискетой.
Если стоит галочка "Сохранять данные при выходе", то при выходе лог работы будет сохранен в файл AutoSavedHistory.log. для файлов логов есть спец. каталог, называется LogStorage,
находится рядом с запускаемым файлом программы.

Логи можно проигрывать с разной скоростью, от почти мгновенной, до реальной.
Есть графики, которые можно тоже анализировать.
Есть консоль событий, причем события можно сохранять в виде HTML.

Важно: сохранение из консоли событий ни коим образом не сохраняет лог запросов-ответов, который нужен мне для анализа.

ПС: почему не проверял на своей машине ?
Все хозяйство для разработки лежит на столе в куче проводов. На разработку проги есть очень мало времени.
Поэтому не могу каждый раз таскать железки из машины на стол и обратно и подключать их.


Жду логов, Пожеланий и рекомендаций.
Если есть Вопросы, Спрашивайте.

Спасибо.




           
70 страниц V  « < 6 7 8 9 10 > » 
 
Теги


 



    
Текстовая версия · Удалить установленные форумом cookies · Отметить все сообщения прочитанными ·  Сейчас: 08.07.26 - 07:41