FLProg
Вход на сайт
Логин:
Пароль:
Поиск
...
Статистика
Понедельник, 23.10.2017, 14:43
Приветствую Вас Гость | RSS
Главная | Регистрация | Вход

Поиск по сайту


Форум
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 10 из 12«1289101112»
Модератор форума: support, Сергей 
Форум » Основной » Спросить у знатоков » ARDUINO в качестве бортового компьютера для автомобиля. (ARDUINO в качестве бортового компьютера для автомобиля)
ARDUINO в качестве бортового компьютера для автомобиля.
OlegAn1962 Дата: Вторник, 01.08.2017, 15:22 | Сообщение # 136
Полковник
Группа: Проверенные
Сообщений: 365
Награды: 4
Репутация: 0
Статус: Offline
По-моему, это очередная мертвая тема на кучу страниц.
 
omich66 Дата: Вторник, 01.08.2017, 16:32 | Сообщение # 137
Рядовой
Группа: Проверенные
Сообщений: 28
Награды: 0
Репутация: 0
Статус: Offline
Цитата OlegAn1962 ()
По-моему, это очередная мертвая тема на кучу страниц.
Согласен
 
Andrej Дата: Среда, 02.08.2017, 05:40 | Сообщение # 138
Лейтенант
Группа: Проверенные
Сообщений: 84
Награды: 1
Репутация: 1
Статус: Offline
Цитата omich66 ()
Поэксперементировав
Прийдет елм и будем посмотреть.
 
Andrej Дата: Понедельник, 07.08.2017, 14:19 | Сообщение # 139
Лейтенант
Группа: Проверенные
Сообщений: 84
Награды: 1
Репутация: 1
Статус: Offline

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

Добавлено (05.08.2017, 19:26)
---------------------------------------------
Попробовал. Не понимает он что я от него хочу. Запрос идет, а ЭБУ не отвечает. Придется ждать шнурок.   dry  Уже разные форматы испробовал. Молчит. Правда разок выдал 255, видно замучал я его вот он и матюкнулся.

Добавлено (07.08.2017, 14:19)
---------------------------------------------
Все таки откликнулся раз ЭБУ вчера! Потом ноут выключился, батарея села. Подключал через 0-1, скорость 9600. Я на 13й пин подсадил опознание байта ответа. Да и на дисплее что то высветилось, не успел расмотреть.

Прикрепления: 4135609.jpg(76Kb)


Сообщение отредактировал Andrej - Суббота, 05.08.2017, 19:41
 
DrMario Дата: Вторник, 08.08.2017, 08:53 | Сообщение # 140
Сержант
Группа: Проверенные
Сообщений: 50
Награды: 0
Репутация: 0
Статус: Offline
Тема может и не совсем мертвая, если правильно поставить задачу.
Если целью является получать данные от мотора по стандарту (протоколу) OBD-II Generic, то для начала необходимо разобраться с самим стандартом. Это даст возможность осознать, какой список параметров будет доступен после запроса поддерживаемых PID's.
После чего необходимо иметь знания и понимать разницу в протоколах обмена данными и инициализации протоколов. Для общего стандарта ОБД2 их несколько типов:
1 - SAE J1850 PWM (41.6 Kbaud) 
2 - SAE J1850 VPW (10.4 Kbaud) 
3 - ISO 9141-2  (5 baud init, 10.4 Kbaud) 
4 - ISO 14230-4 KWP (5 baud init, 10.4 Kbaud) 
5 - ISO 14230-4 KWP (fast init, 10.4 Kbaud) 
6 - ISO 15765-4 CAN (11 bit ID, 500 Kbaud) 
7 - ISO 15765-4 CAN (29 bit ID, 500 Kbaud) 
8 - ISO 15765-4 CAN (11 bit ID, 250 Kbaud) 
9 - ISO 15765-4 CAN (29 bit ID, 250 Kbaud)
Для заводских (OEM) протоколов еще есть много разновидностей.
После этого можно пытаться получать данные от ЭБУ двигателя и выводить их на дисплей например.
Если пропустить второй этап, то останется только иметь понятие о стандарте OBD-II Generic и данные получать через интерфейс ELM-327.
Вот как-то так.
 
Andrej Дата: Вторник, 08.08.2017, 21:27 | Сообщение # 141
Лейтенант
Группа: Проверенные
Сообщений: 84
Награды: 1
Репутация: 1
Статус: Offline
Все верно! Я использую протокол 5 - ISO 14230-4 KWP (fast init, 10.4 Kbaud) с устойчивой скоростью ( не путать с максимальной) 10400Kb. Но так как в ФЛпрог нет такой скорости, я использовал 9600, это ближе к тем параметрам что заявил разработчик ЭБУ. У меня раз получилось подцепиться, но как вы уже знаете ноут разрядился.
Вот по такой схеме у меня получилось. диск. Возможно я что то перемудрил, но спрашивать нестал. Схема примерная, так как я порядком трех часов что то изменял, корректировал. Изменения помоему только в данных. Ну может что то из блоков добавил.

Добавлено (08.08.2017, 18:58)
---------------------------------------------
Еще я нашел вот такой сайт с описанием протокола на буржуйском. Пока изучаю.

Добавлено (08.08.2017, 20:30)
---------------------------------------------
Нужна помощь. Я использую шаблоны с форумов, но хотелось бы формировать самому данные запроса. Исходя из ОПИСАНИЯ я попробую сформировать запрос, а вы поправьте.

Мне нужно к примеру получить параметр "010C2Обороты двигателя016,383.75rpm((A*256)+B)/4"
Получается что мне надо сформировать в НЕХ 8211F1(Это заголовок)0С01(данные) а как вычислить контрольную сумму? Из чего она исчисляется?

Добавлено (08.08.2017, 21:27)
---------------------------------------------
Разобрался. На хабаре нашел нужный калькулятор. Надо просто все сложить вместе и последние два байта и есть контрольная сумма.

Сообщение отредактировал Andrej - Вторник, 08.08.2017, 20:32
 
DrMario Дата: Среда, 09.08.2017, 09:51 | Сообщение # 142
Сержант
Группа: Проверенные
Сообщений: 50
Награды: 0
Репутация: 0
Статус: Offline
Цитата Andrej ()
Все верно! Я использую протокол 5 - ISO 14230-4 KWP (fast init, 10.4 Kbaud) с устойчивой скоростью ( не путать с максимальной) 10400Kb. Но так как в ФЛпрог нет такой скорости, я использовал 9600, это ближе к тем параметрам что заявил разработчик ЭБУ. У меня раз получилось подцепиться, но как вы уже знаете ноут разрядился.Вот по такой схеме у меня получилось. диск. Возможно я что то перемудрил, но спрашивать нестал. Схема примерная, так как я порядком трех часов что то изменял, корректировал. Изменения помоему только в данных. Ну может что то из блоков добавил.

Упс!
В Вашем случае НЕЛЬЗЯ использовать скорость обмена данными 9600. Все данные будут кривые. В ФЛПроге нет  возможности устанавливать произвольную скорость обмена, я об этом полгода назад высказывал пожелание но осталось без ответа. В этом случае перед заливкой скетча в ардуину необходимо находить строку где указана скорость и руками привить на 10416.
На скорую руку набросал пример инициализации и отправку данных. Обмен с К линией сделан на блоке пользователя со встроенным расчетом и добавлением к отправляемым данным КС. В качестве КОМ порта со стороны К линии применен AltSoftSerial, описание и библиотеку найдете в сети.
Сделан расчет и обработка запрашиваемых данных, для правильного заголовка КВП протокола.
Для инициализации использован дополнительный вывод, сигнал с которого через резистор 1К необходимо подать на базу NPN транзистора. Коллектор непосредственно на К линию, эммитер на массу.
Скорее всего сразу не заработает, сомневаюсь что вообще заработает на слабом камне. Временные интервалы на слабых контроллерах будут плавать. Для этих целей желательно использовать Arduino DUE.
По ходу нашел ошибку. В коммутаторе вместо 81 запишите C133F181, и не пользуйтесь встроенным монитором КОМ порта! Он на конце добавляет перенос строки и отправляемые данные будут кривые.
А КС вычисляется очень просто. Если пакет вот такой C133F181 то в калькуляторе в режиме Hex складываем все байты, получается 266, откидываем двойку - остается 66. Это и есть КС
Прикрепления: KWP2000_10416_A.flp(1328Kb)


Сообщение отредактировал DrMario - Среда, 09.08.2017, 10:03
 
Andrej Дата: Среда, 09.08.2017, 20:25 | Сообщение # 143
Лейтенант
Группа: Проверенные
Сообщений: 84
Награды: 1
Репутация: 1
Статус: Offline
Библиотека AltSoftSerial.h не работает. Уже и на портативной версии попробовал, не найдена. Хотя она есть там.

Добавлено (09.08.2017, 20:22)
---------------------------------------------

Цитата DrMario ()
НЕЛЬЗЯ использовать скорость обмена данными 9600
Согласен, но выбора нет. При ручной правке ругается.
Цитата DrMario ()
На скорую руку набросал пример инициализации и отправку данных.
Это для кабеля который еще в пути. В моем случае я использую высокоуровневый компаратор. Это не прокатит наверно. Да и стринг он не поймет, так как не имеет своего дешифратора.
Цитата DrMario ()
В качестве КОМ порта со стороны К линии применен AltSoftSerial, описание и библиотеку найдете в сети.
Нашел, почитал. Честно, смутно понял. Буду еще читать и пытаться понять. Блок хорош, но вот его я совсем не понял. Если не против я почитаю еще и потом позадаю вопросы по блоку.
Цитата DrMario ()
Для инициализации использован дополнительный вывод, сигнал с которого через резистор 1К необходимо подать на базу NPN транзистора. Коллектор непосредственно на К линию, эммитер на массу
Цитата DrMario ()
В коммутаторе вместо 81 запишите C133F181, и не пользуйтесь встроенным монитором КОМ порта! Он на конце добавляет перенос строки и отправляемые данные будут кривые.
У меня тоже резал, пока не понял что ему надо дать время перейти в готовность. В той версии уже помоему не резало. 
А перенос строки вроде же отключен в блоке! Он получается не отключается?

Добавлено (09.08.2017, 20:25)
---------------------------------------------
Два блока очень заинтересовали которых нет у меня. Спасибо! 
Перечитал еще раз описание, я был не прав!!! Пошел изучать и пробовать эксперементировать. Спасибо!!! Если что добьюсь сразу напишу.

 
DrMario Дата: Четверг, 10.08.2017, 17:32 | Сообщение # 144
Сержант
Группа: Проверенные
Сообщений: 50
Награды: 0
Репутация: 0
Статус: Offline
Цитата Andrej ()
У меня тоже резал, пока не понял что ему надо дать время перейти в готовность. В той версии уже помоему не резало. А перенос строки вроде же отключен в блоке! Он получается не отключается?
Вы путаете прием и передачу данных. Если отправлять монитором порта, встроенным в Arduino CC, то вместе с данными в конце строки посылаются служебные символы переноса строки или возврата каретки (не помню уже).
Положите библиотеку AltSoftSerial сюда
c:\Program Files\Arduino\libraries\
и заново подключите библиотеку в блоке пользователя, должно все заработать.
Работает этот виртуальный порт очень просто, даже не нужно указывать выводы RX и TX. Они зависят от платы Arduino.
Вот из описания

// AltSoftSerial always uses these pins:
//   http://www.pjrc.com/teensy/td_libs_AltSoftSerial.html
// Board          Transmit  Receive   PWM Unusable
// -----          --------  -------   ------------
// Teensy 3.0 & 3.1  21        20         22
// Teensy 2.0         9        10       (none)
// Teensy++ 2.0      25         4       26, 27
// Arduino Uno        9         8         10
// Arduino Leonardo   5        13       (none)
// Arduino Mega      46        48       44, 45
// Wiring-S           5         6          4
// Sanguino          13        14         12
 
Andrej Дата: Воскресенье, 13.08.2017, 10:44 | Сообщение # 145
Лейтенант
Группа: Проверенные
Сообщений: 84
Награды: 1
Репутация: 1
Статус: Offline

Не выходит. Пишет что библиотека не найдена и ошибка в строке. Уже дней 5 читаю форум и пробую.

Добавлено (13.08.2017, 10:28)
---------------------------------------------
Даже винду переустановил и на флешку порт программы установил, бесполезно.

Добавлено (13.08.2017, 10:44)
---------------------------------------------
Пишет теперь 

Цитата
'Serial3' was not declared in this scope
«Serial3» не был объявлен в этой области
Что не так? 
Разобраться помог знакомый. Удаленным доступом починил. Что то говорил про кривой сертификат.
Прикрепления: 4373493.jpg(72Kb)
 
DrMario Дата: Воскресенье, 13.08.2017, 12:22 | Сообщение # 146
Сержант
Группа: Проверенные
Сообщений: 50
Награды: 0
Репутация: 0
Статус: Offline
Упс!
В блоке пользователя ошибочка вышла. Блок был предназначен для ардуины с несколькими портами. Из этого блока я переделал на AltSoftSerial.
В блоке пользователя во вкладке LoopSection замените Serial3 на altSerial.
Скорость обмена порта 0 (Ардуино - Компьютер) установите 38400 ну или еще выше.
 
Andrej Дата: Воскресенье, 13.08.2017, 13:33 | Сообщение # 147
Лейтенант
Группа: Проверенные
Сообщений: 84
Награды: 1
Репутация: 1
Статус: Offline
Цитата DrMario ()
Скорость обмена порта 0 (Ардуино - Компьютер) установите 38400 ну или еще выше.
Вот это не понял где менять.
 
Andrej Дата: Воскресенье, 13.08.2017, 17:19 | Сообщение # 148
Лейтенант
Группа: Проверенные
Сообщений: 84
Награды: 1
Репутация: 1
Статус: Offline

Тут тоже править?

Добавлено (13.08.2017, 13:55)
---------------------------------------------
Вот честно, не могу понять блок. Да и саму схему не разберу. 


Цитата
1. По короткому импульсу на входе (Open) открывается КОМ порт. По импульсу на входе (Close) закрывается. На входе Baud указывается скорость для обмена данными с ECU.
Ладно, (открыть-закрыть), по теории-подаем питание на вход, происходит инициализация ардуины, таймер задержки в 500мс отсчитав время дает добро работе генератора, тот генерирует импульсы 25мс до появления на логике импульса что ЭБУ ответила, далее запрос на инициализацию, получение ответа, переключение логики на следующий цикл. Это я так понимаю. 
Я уже если честно запутался и создается такое ощущение что я никогда не смогу собрать.

Добавлено (13.08.2017, 16:53)
---------------------------------------------
Не подключается. Что то не то. Почему данные вы решили отправлять без контрольной суммы??? Когда протокол GM четко регламентирует контрольную сумму и перые 3 байта!!! Без этих чисел он вообще не поймет кто мы и что хотим! Далее откуда вы взяли 0010? Для какого потдержания? Мы сейчас работаем через компаратор, а это как с профессором по ФЕНЕ ботать. А далее я вообще запутался.  dry

Добавлено (13.08.2017, 17:00)
---------------------------------------------
Есть такой анегдот.
Сидит Данила мастер, справляет нужду.
Подходит к нему хозяйка медной горы и спрашивает так нежно.
-Что, Данила мастер? Не выходит каменный цветок?
А Данила мастер ей натужно отвечает.
-Не выходииит!

Так же и у меня. dry  biggrin

Добавлено (13.08.2017, 17:19)
---------------------------------------------
При все при этом в готовых данных к отправлению стоит C0233F1. Что то совсем данные не похожи на 8111F18104. 
В общем я совсем не понял блок. Не понял как оно работает и с чего вы взяли что ЭБУ отзовется на C0233F1. При попытке подсунуть нужный HEX выходит билиберда, 802111F18104. С блоком сложения совсем даже мыслей нет что он складывает. 
Кто бы знал, как я расстроился. Прям руки опускаются. sad

Прикрепления: 7738713.png(18Kb)
 
dekorator Дата: Воскресенье, 13.08.2017, 19:55 | Сообщение # 149
Подполковник
Группа: Проверенные
Сообщений: 286
Награды: 10
Репутация: 2
Статус: Offline
Друзья. Небольшой совет. Нельзя без большого "гемороя" использовать при отправке и приёме строковые блоки ( у которых зелёненькие соединения ). Там другой формат данных.
 
Andrej Дата: Воскресенье, 13.08.2017, 20:04 | Сообщение # 150
Лейтенант
Группа: Проверенные
Сообщений: 84
Награды: 1
Репутация: 1
Статус: Offline
Цитата dekorator ()
Нельзя без большого "гемороя"
Это как раз и понятно. Вопрос в инициализации. Как ни странно про инициализацию все вскользь упоминают, мол было, делали. А как и что все молчат.
 
Форум » Основной » Спросить у знатоков » ARDUINO в качестве бортового компьютера для автомобиля. (ARDUINO в качестве бортового компьютера для автомобиля)
Страница 10 из 12«1289101112»
Поиск:

FLProg © 2017
Яндекс.Метрика