nlothik (nlothik) wrote,
nlothik
nlothik

Categories:

Аффтопрограммирование

В автомобили уже давно ставят компьютер с бортовой самодиагностикой. До 1996 года единообразия работы с этим компьютером не было, а теперь везде можно с ним поговорить по набору стандартов OBD2. Раньше сканеры, общающиеся с диагностической системой, были дико дорогими, но теперь цена стала более демократичной, и самые простенькие можно купить монет за 20, а то и ещё дешевле. Однако дешёвые сканеры имеют крайне ограниченные возможности, и способны только на самые примитивные действия — просмотр диагностических кодов (далеко не всех), их стирание. Если же тебе нужна диагностика чего-то более сложного, придётся серьёзно раскошелиться. Вот, например, возьмём такую распространённую вещь как диагностика катализатора. Когда у тебя вылазит код диагностики P0420, причины для него могут быть самые разные. Может быть, датчик кислорода подох. А может быть, и катализатор. Ведь как возникает этот код? У тебя стоят два датчика кислорода — один ДО, другой ПОСЛЕ катализатора (в машинах, которые дизайнили пидарасы в плохом смысле слова, их аж четыре — см. Ниссан). Код ошибки генерируется когда показания этих датчиков ОДИНАКОВЫЕ. Что логично — это означает, что катализатор ничего не делает.

Чтобы однозначно понять, надо ли менять катализатор, надо показания этих датчиков представить графически. Какие показания будут у них до того, как катализатор прогреется до рабочих температур. Какие после. Показания датчика ДО катализатора должны меняться, и довольно сильно. Показания датчика ПОСЛЕ катализатора должны оставаться постоянными. Увидев всё это, легко понять, что происходит. Но сканер OBD2, способный строить графики, уже недёшев — от 150 монет и выше.

Что можно сделать, если у тебя руки растут из (надеюсь) относительно правильных мест? Можно купить компьютерный адаптер на чипе ELM327, который подключается через USB и становится в компьютере дополнительным COM-портом. Они недорогие — за 10 монет можно купить. Затем берём любую терминалку, и цепляемся к этому порту, выставив скорости от 9600 до 38400 и 115200 (зависит от конкретного адаптера). И разговариваем с ним как с обыкновенным модемом. Ага. Он даже командой ATZ ресетится 🙂

Вот так, например:

OKL1 это на самом деле OK, выданное модемом на команду ATL1 (включающую добавление CR в ответы). Иначе человеку некомфортно.
AT@1 это запрос “ты кто такой”, типа ATI7 на модемах US Robotics 🙂

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

Судари мои, за что мы любим язык программирования Питон? Я вот раньше его недолюбливал, а потом оценил по достоинству. Язык Питон мы любим за то, что на нём можно решить практически любые прикладные задачи если использовать соответствущие библиотеки; ибо кто-то с такой проблемой уже, скорее всего, сталкивался.

Существует специальная библиотека Python-OBD, в которой вся эта расшифровка шестнадцатиричной бредятины уже написана, тебе остаётся только её взать и нарисовать, что тебе надо. В частности, оно может выдавать значения напряжения, выдаваемого датчиками кислорода. Остаётся сунуть эти значения в список (во что же ещё), после чего скормить его matplotlib.pyplot, и представить графически хоть чорта бритого, причём ровно так, как тебе надо.

Ну, а те, у кого с программированием не очень, могут приобрести коммерческие программы, работающие с адаптерами на ELM327. Их много всяких, и они недорогие — всяко дешевле 150 долларов.

Надо ещё сказать, что тут есть засада. Стандартные OBD2 коды хорошо документированы. Но есть и специальные, проприетарные коды, для каждой марки свои, и производители не спешат их описывать и выкладывать описание в открытый доступ. Надо же как-то заставить юзверей ушастых покупать обслуживание в дилершипах. Но есть недорогие программы, которые поддерживают и эти коды. Так, для БМВ есть Bimmerscan, а для Фордов есть Forscan, причём на него бесплатно дают пробную лицензию на два месяца. Кроме того, Forscan работает и не с Фордами, просто он не поддерживает специальные коды диагностики для автомобилей других производителей.

Ну, а мой катализатор оказался в порядке. Это просто я по луже удачно прокатился — катализатор остыл до нерабочей температуры, и временно перестал работать.

PS: Хех, вот уж не думал, что теги “автомобили” и “программирование” когда-нибудь встретятся.

Mirrored from Лабораторный Журнал №6

Tags: автомобили, программирование, рекомендую
Subscribe

  • Порекомендую канал

    Я очень люблю всяческие тесты потребительских товаров. Разумеется, все они более-менее субъективны, однако всегда приятно, когда параметры…

  • Dolby Atmos

    В конце 90х на рынок звуковых карт вышла компания Aureal. Они придумали технологию Aureal 3D и сделали PCI звуковую карточку Aureal Vortex. В 90х…

  • Распродажа

    На сайте магазина для туристов и охотников Teton Sports была обнаружена неплохая распродажа. Скидочный код HOTSUMMER (работает до 4 июля) даёт…

  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 8 comments