На каком языке программирования пишут программы для автомобилей
Итак, мы уже представляли языки программирования в роли героев популярного телесериала и в образе стран. Третья часть сравнений будет посвящена автомобилям и автокомпаниям.
Basic: Жигули
Современные молодые люди наверняка считают, что Жигули были созданы для того, чтобы обучиться езде на автомобиле. С одной стороны, это тоже машина, просто в ней всё предельно просто, нет никаких электронных систем. С другой, стоит ли такой автомобиль такой головной боли?
Visual Basic: Лада
Когда Жигули должны были уйти в прошлое, на смену пришла Лада. Да, завод всё же оказался проклятым, но поддержка государства и возможность простому россиянину за короткий срок заработать на такой автомобиль, сделали марку настоящим хитом.
Эру автомобиля Mustang можно разделить сразу на несколько этапов. Первые модели, те что сошли с конвейера в 60-е годы, были изумительны со всех точек зрения. Даже сегодня, когда так далеко шагнула эволюция, Мустанги крайне популярны. Экземпляры, произведённые в 80-х потеряли большую часть своей магии: они носили громкое имя, имели спрос, но выглядели обыденно, теряясь на фоне куда более быстрых и элегантных машин. Но в 2000-х Mustang взревел с новой мощью, объединив агрессию из 60-х и современных подход к автомобилестроению. Да, это не лучший автомобиль в мире, но крайне привлекательный.
Java: Volvo
Вряд ли тут может быть много мнений: Volvo действительно классный автомобиль. Он может быть семейным, он может быть быстрым, он может быть романтичным – всё зависит только от вас. Правда, дороговат, да и говорят сейчас в Китае создают идеальные копии. Но в целом, покупая Volvo, вы не рискуете прогадать.
Python: Subaru
По одной модели из серии Subaru теперь прочно ассоциируется со скоростью. Да, есть такая черта, но также накиньте на знамя марки качество исполнения, удобство управления и, почти всегда, прекрасные дизайнерские решения.
Ruby: Honda
Вечный спор автомобилистов: что лучше, Honda или Subaru? Качество, скорость, породистые представители – всё это свойственно и Honda. Да и страна производитель – Япония. Говорят, только подвеска у них немного жесткая и обслуживание дорогое, а в остальном – мечта.
PHP: Citroen
Сегодня модно ругать старый-добрый французский концерн. А ведь было время, когда Citroen восседал на самой вершине технологической мысли. Но потом требовательным покупателям понадобились не только хорошая подвеска и приятный внешний вид, но ещё идеальное качество сборки. И тут посыпалось…
1С: КАМАЗ
Одна из немногих объективных причин гордиться отечественным автопромом. Да, за границей не очень жалуют КАМАЗы, но мы то знаем насколько хороша эта рабочая лошадка, да и в ралли побеждаем.
Go: Bugatti
Вчера в новостях писали, что самая быстрая серийная машина в мире – Bugatti Veyron. Сегодня, поговаривают, что Bugatti Chiron. "Bugatti" и "скорость" так часто встречаются в одном предложении, что закрадывается мысль: а может это просто пиар?
Perl: Saab
Saab никогда не был автомобилем из высшего общества. Но несмотря на это, его внешний вид, езда на нём могла доставить непередаваемое удовольствие. Если бы не миллион ненужных кнопок, проблемы с электроникой и необходимость постоянного ремонта.
JavaScript: Renault
Дурная слава не позволяет относиться к Renault серьёзно: неважное качество исполнения, слишком много откровенно плохих автомобилей, сомнительные стратегия развития. Тем не менее, Renault пользуется сумасшедшей популярностью, так что пока без их машин представить дороги очень трудно.
Язык Ассемблера: драгстер
Иногда простого серийного автомобиля бывает мало, особенно когда скорость – единственный важный аргумент. В этом случае не найти ничего лучше старого-доброго драгстера: колёса, двигатель, очень лёгкая рама и одна поездка, безопасность которой весьма сомнительна.
Я разрабатываю приложение для поиска неисправностей автомобиля и расшифровки кодов ошибок его ЭБУ через elm327 (на данном этапе только по стандарту OBD2) на Android для развития навыков программирования на Java и здесь раскажу об итогах года и планах развития работы c elm327 в моем приложении.
После релиза я обещал выложить пост о продвижении приложения, ведь мало его создать, нужно еще и продвинуть как-то, чтобы его начали скачивать. После публикации на Пикабу в первый день было 30 скачиваний, затем некоторый провал на пару недель по два три скачивания в день и уже начали опускаться руки, от того, что никому это приложение не нужно, но потом после обработки алгоритмами GooglePlay приложение начало индексироваться и искаться в поиске по запросу "Расшифровка кодов ошибок". Сейчас приложение стало уже выходить на первых позициях в поиске по этому и подобным запросам. Денег на рекламу и мотивированные установки я пока не тратил ни копейки.
За год удалось заработать 100 долларов, мало конечно, но для начала достаточно.
После января 2019 года было очень много работы и почти до сентября не удавалось заниматься приложением, только базу расшифровок кодов ошибок пополнял периодически.
В ноябре обновил приложение и добавил около 20000 расшифровок ошибок определенных производителями. Также добавил возможность расшифровывать сразу несколько кодов ошибок, чтобы видеть более полную картину неисправностей в случае большого количества ошибок.
Но главная цель была сделать полный цикл поиска расшифровки ошибок в моем приложении и делать это не хуже, а может даже и лучше, чем другие аналогичные приложения. Для этого я начал искать, как читать данные через elm327 на Java.
И нашел! Библиотека obd-java-api (разработчик Pires) позволяет работать с bluetooth адаптером elm327 для взаимодействия с ЭБУ автомобиля. Интегрировав эту библиотеку в мое приложение, я получил возможность читать коды ошибок OBD2(система бортовой диагностики для систем, связанных с токсичностью выхлопных газов) попутно расшифровывая считанные коды ошибок, а также сбрасывать ошибки, связанные с токсичностью выхлопов и гасить лампу CheckEngine.
В будущем хочу добавить возможные причины неисправности для некоторых ошибок и может быть даже примерное расположение датчиков.
Во-первых мне необходимо понять, как ошибки читаются через мою программу на реальных автомобилях у пользователей (пока только тестировал на симуляторе с разными наборами возможных ошибок), а для этого нужна обратная связь от пользователей: какая марка, какого года выпуска, как много ошибок считалось (и удалось ли вообще), сбрасывается ли CheckEngine. Возможно вы будете одним из этих пользователей и надеюсь мое приложение окажется вам полезным;
Во-вторых мне нужно добавить пользовательские строки инициализации Elm327, чтобы обеспечить чтение автомобилей с переходными протоколами, на смену которым пришел стандартизированный OBD2. Эти строки конечно уже есть во многих программах диагностики авто на Android, но мне интересно разобраться в этом на практике. В основном отличия в адресах ЭБУ двигателя и тестера, и обмене на уровне адресов блоков, а не функциональном адресе OBD2 по умолчанию в Elm327;
В-третьих, хочу решить (и надеюсь вы мне поможете в этом), что реализовывать в первую очередь и что вам нужнее для диагностики автомобиля:
Первый вариант - чтение кодов ошибок как можно большего количества блоков управления (доступных для чтения при стандартной распиновке модуля elm327) по протоколу UDS, а также сброс этих ошибок.
Второй вариант - чтение стандартных и нестандартных параметров (так называемых PID) с построением графиков. Правда добавлять кастомные csv файлы с PID как в Torque мне пока не по зубам, но запрограммировать максимальное количество наборов PID для разных моделей авто попробовать можно.
Сейчас у меня 75% пользователей, установивших мое приложение, почему-то удаляет его обратно, надеюсь этот показатель изменится в лучшую сторону после внедрения нового функционала..
В честь начала декабря и приближающегося нового года раздаю 31 промокод на ПРО-версию без рекламы и с возможностью делиться результатами расшифровки группы ошибок и поиска кодов ошибок через Elm327:
Просьба отписываться в комментариях о том, какой номер промокода вы использовали.
Добавь возможность записать логи показаний с датчиков, опубликовать их и запросить у других пользователей. Киллер-фича будет, я тебе как маркетолог без стажа, опыта и знаний в маркетинге, говорю.
пробовал твое приложение. нивский протокол не увидело. удалил.
купил inCarDoc - видит все, протокол определяет само.
может в этом причина удалений? и стоит не над новым функционалом задумываться а старый до ума довести?
Дружище,лучше сделай акцент га определенную марку,как например в свое время сделали разработчики форска,мультимарочных сканеров сейчас как гомна за баней
32 забрал спасибо
Здравствуйте. Какой код забрал, уже не вспомню. Раньше программа работала нормально. Сканировал. Сейчас не могу подключиться к ELM по блютусу. :(
Эх перепробовал все промокоды, на все пишет, что срок действия введеного кода истек. Придется тестить прогу без про версии
Привет приложение скачал работает но не один ключ не подходит Забрал N50 (ZDLLYJAX770YE4GNDSN6740). Спасибо. Завтра попробую на машине.5ND3WL57AYD20JLDZJKH1S9 (48) забрал. долго перебирать пришлось. 49 и 50 заняты кем-то. благодарствую.
Одно плохо, у меня Каризма 99 года и обд не поддерживает, нужен иной модуль. Но в арсенале ещё Ниссан Тиида 2006 и пару автотазиков. На них буду тестить, отпишусь в обраткепоставил прогу завтра потестю. если честно не понял куда промо код вставляется
Взял 29. Спасибо.
Спасибо. Забрал 15 номер.
Обратная связь с меня через пару недель.
Suzuki Grand Vitara проблемы с иммобилайзером
По вводным данным делаем анализ ситуации. Автомобиль заглох на ходу и клиент утверждает, что после повторной попытки запуска он заметил, что лампа иммобилайзера начала мигать. По моему опыту работы на ходу иммобилайзер не может заблокировать и заглушить двигатель исходя из соображений безопасности. Допустим вы едете по трассе и тут появились проблемы с иммобилайзером и автомобиль заглох. На моем опыте на ходу с проблемами по иммобилайзеру машины не глохли, но вернемся к автомобилю. Приехав к автомобилю я начинаю диагностику с кодов неисправности. Подключаю через адаптер который контролирует напряжение и замечаю странную вещь напряжение показывает 3 вольта. Подключаю launch и напряжение становится 12 вольт и как-то забил на это. Захожу в иммо и вижу ошибку
P0620 - GENERATOR CONTROL CIRCUIT
p1623 - UNREGISTERED TRANSPONDER
Странно. Пока прибор был подключен автомобиль запускался и все было ок, но как только я отсоединяю launch тачка перестает заводиться. Продать ему прибор и уехать была самая плохая идея :) Но начинаю углубляться и проверяю накачку на антенне иммобилайзера, все есть и в тот момент когда ключ не распознается это видно по светодиоду. Какая-то нездоровая ситуация и я направляюсь к блоку управления двигателя. Решаю первый делом проверить питание на блоке нахожу распиновку и цепляю контрольную лампу.
Питание постоянное в норме, от зажигания тоже все окей. Странно подумал я и решил на всякий случай проверить массу и это было не зря. Цепляюсь контрольной лампой к массе и под нагрузкой лампочка еле еле горит. Вот и источник проблем, но как найти где отвалилась масса. Допрашивайте и еще раз допрашивайте всегда клиента, что он делал в последнее время. На тот момент из за спешки я не допрашивал клиента, а зря. Искать массу кабель трекером не получится, нахожу в интернет картинку точек масс на данный автомобиль и начинаю проверять каждую и нахожу одну массу, которая не закручена до конца. Затягиваем болт проверяю контрольной лампой и вижу, что все стало отлично. Автомобиль запускается и работает даже после нескольких тестовых поездок. Теперь речь по поводу допроса. Как оказалось меняли сцепление 2 недели назад. Болт просто так вряд-ли бы открутился поэтому мое мнение, что его просто не закрутили на сервисе. Всем удачных ремонтов и меньше поломок. Как обычно осуждения и обсуждения в комментариях. У кого какие предположения по поводу почему при подключенном Launch питание становилось 12 вольт и я даже проверил, что масса сразу появлялась даже при отпущенном болте?)
Kia Rio G4FA или все же G4FC?
Обороты - 750 оборотов;
Краткосрочная балансировка - 1%;
Долгосрочная балансировка - 0 %
Импульс на форсунки - 2.3 м.с
MAP (датчик давления во впуске)- 60 Кпа
Лямбда. Чего. 60Кпа не понимаю. Еще раз запускаю опять 60Кпа. Есть зацепка откуда такое давление во впуске. Включаю зажигание 99Кпа теоретически датчик рабочий, причем он тут уже новый. Беру порядка 3 приборов еще все показывают одно и то же. Думаю ну компрессию че мерить тачка работает ровно. Погнали лазить с великолепным посталовским, склоняю голову перед его разработчиками и создателями.Сначала снимаю осциллограмму коленвал распредвал так все отлично.
Закручиваю Датчик давления и делаю сприпт РХ. И начинаю думать, а с какого хрена степень сжатия такая маленькая.
Окей посмотрю на исправном автомобиле так как сохраняю себе все тесты. И там все отлично. Вот два теста справа исправный мотор, слева мой.
Я не поверил своим глазам. Если такая низкая степень сжатия какая там компрессия беру в руки компресометр ииииии. 6 очков во всех цилиндрах. Ептваюмать да как так то. Автомобиль проездил год с такой компрессией заводится отлично работает ровно, но не едет. Ловлю себя на мысли может пока гонял крутил смыло пленку, а нет добавив масла компрессия не выросла. Что это может означать. Продавец запчастей говорит что шатуны и поршня правильные. Продавец коленвала говорит, что колено точно с 1.6. Я верю цифрам. Снимаем мотор и о чудо колено не то.
Давайте подведем итог: Мотор g4fa имеет объем 1.4 и короткое колено с диаметром поршня 73 мм и длинными шатунами, а наш мотор g4fc объем 1.6 имеет длинное колено с короткими шатунами им диаметром поршня 73 мм . Двигатель G4FС относится к серии Gamma и отличается от G4FA лишь коленвалом с увеличенным ходом поршня с 75 мм до 85,4 мм, в остальном моторы как две капли воды, все та же система изменения фаз. Да не посмотрел, да совершил ошибку, но запомните всегда проверяйте запчасти. Всем удачного дня и поменьше поломок. С вами был ДимонДиагност до новых встреч.
На этот раз в ремонтном боксе стоял темно-синий BMW с поднятым капотом. Проходя мимо, заглянул, ага, понятно, лежит шнурок «адакт-флешер», значит, попал удачно, попал на «вкусное» - на перепрограммирование.
Чтобы заниматься этим вопросом - перепрограммированиемавтомобилей, одного желания мало. Тут надо иметь в душе некое особое качество, тягу к приключениям и немного авантюризма. Работа, в принципе, получается всегда, прошивки правятся и встают как положено, клиенты довольные… но заливать новые поправленные прошивки в автомобиль сродни некоему приключению или небольшому путешествию – каждый раз что-то новое. Интересное, а иногда необычное.
BMW выпуска 1998 года – что там может быть интересного? Прошивок на них множество, выбирай любую из пучка и ставь.
Но этот случай был необычным и я попал уже на вторую серию: Алексей Викторович и владелец машины разбирали достоинства и недостатки прошивки, поставленной полчаса назад. Прошивку залили и клиент поехал тестировать. А сейчас приехал и делится впечатлениями:
- Всё, вроде хорошо, но в промежутке от 1500 до 1700 машина как бы тупит, что-то её держит за зад, а как только обороты выше – взлетает как ракета! Вот этот промежуток как-нибудь убрать…
А мне почему ещё стало интересно: тут или клиент такой привередливый, что ему не нравится то, не нравится это…или в чём-то другом причина?
Оказалось, что в другом. И улучшение имеющейся прошивки «моторника» - следствие бурной жизни этого BMW.
Что рассказал владелец: «… после покупки "на низах" не ехала вообще. Реально объездил все автосервисы Москвы , а проблемы не нашёл никто. Говорят, что по диагностике у тебя всё в порядке, сканер никаких проблем не видит. А я на дороге не мог нормально стартануть или ускориться. Почитал форумы в Интернете, нашёл вариант: снял фишку с датчика массового расхода воздуха…машина пошла на низах, вроде всё хорошо, но чёрный дым сзади убивал. Да и не вариант это, ездить со снятой фишкой. Надо искать причину. Покопался в Интернете и нашел телефон Алексея…приехал, проверили, приговорили две форсунки – вылечили. Трястись перестала…».
Тут уже и у меня возник вопрос:
Оказалось, «есть». Как рассказал клиент, когда он покупал машину, то старый владелец оставил в бардачке накладную из «АвтоДома». И там была пометка о замене турбины. А ранее на моторе клинила тяга регулировки геометрии турбины. И её, скорее всего, пытались самостоятельно регулировать.
- Без специального стенда туда нечего лезть,- вступил в разговор Алексей Викторович,- там свои точные настройки, и если делать её просто на верстаке, то никогда не угадаешь нужного положения штока. Да о чём мы говорим? Стенд и точка. Или замена.
- А сколько стоит новая?
- Около 20 тысяч
- О как…
Так что колдовство с прошивкой не прихоть клиента, а попытка «попасть» в нужный режим ускорения при наличии возможной неисправности. А что вы хотели? Клиент не будет покупать новую турбину или её навесное, не будет больше ездить по авто-сервисам - он устал видеть умные глаза и слушать умные речи, после которых возникает отупение и злость: " Проблема как была, так и остаётся ".
На фото 035 и 039 заливка последней, четвёртой версии.
Клиент поехал тестировать эту прошивку, вернулся, все глаза на него:
- И как?
- А нормально. Уже нравится!
- Ну и хорошо…что там ещё осталось делать на машине?
- Система ABS
Система ABS на машине не работала.
Практика работы штука полезная. Блоки ABS на этом автомобиле выходят из строя или из-за старости, или из-за внешнего воздействия. А владелец сказал, что недавно он влетел в «хорошую яму» правой стороной. Именно там стоит блок системыABS.
Не буду забивать голову читателю схемами и картинками из программы, лучше текстом:
- можно предположить, что после удара
плата внутри блока управления ABS могла треснуть
или внутри мог образоваться «неконтакт».
Но предварительно надо проверить все положенные входы-выходы с этого блока и питание. Проверили, нормально.
А блок на связь не выходит.
Как вариант в данном случае – "оживление" блока ABS при помощи заморозки. Не буду объяснять, что происходит при снижении температуры и почему блок сможет заработать, знаете.
На фото 055 и 056 показан процесс применения фреона для охлаждения блока управления системой ABS и проверка полученной температуры. Минус 22. Нормально. Проверяем… нет, всё остаётся: «На связь не выходит». Ну, тут уже, как говорят, «надо в морг». Пытаться восстанавливать блок управления – к чёрту такой вариант. Так просто блок не разобрать – правильно не разобрать, для этого есть специальный стенд, где создаётся определённая температура, а сам блок висит на двух креплениях и механизм аккуратно растягивает крышки в противоположные стороны.
В Москве есть специалисты, которые занимаются такими вопросами, обращаться надо к ним, а здесь вся запланированная работа выполнена.
Клиент уехал, мы поднялись на второй этаж.
- Ну что, чайку попьём?,- предложил Алексей,- давай чайку, а потом пойдём и я покажу чудо японской мысли! Взял на свою голову японский автопром, намучились и наматерились знатно! Покрепче, послабее.
…об этой машине я вам расскажу в другой статье. Действительно, машина интересная. И кто там виноват в причине больше, японский автопром или владелец – разберёмся и покажем в картинках.
Мы пошли пить чай. А эту неисправность, описанную в статье, искали и устраняли:
Ниточкин Алексей Викторович (8 916 279 3114)
Горшков Дмитрий Александрович (8 926 171 75 95)
г. Электросталь пр-т Мира д. 27-а
Здание автотехцентра
Си был бы вездеходом: компактный, мощный, может пройти везде, и надёжный в ситуациях, когда ваша жизнь зависит от него.
C++ — это новый Си. В два раза более мощный, и также в два раза больше в размере. Способен работать в недружелюбной обстановке, но если вы попытаетесь использовать его без соответствующей подготовки, то, скорее всего, всё закончится печально.
Java выглядит как ещё одна попытка улучшить старый добрый Си-вездеход. Похоже, что адаптация для простых людей вполне удалась, но машина стала медленнее, крупнее, больше загрязняет воздух, а люди думают, что вы деревенщина.
Python
Python хорош для ежедневных задач: легко управляемый, универсальный, все удобства включены в комплект. Он не быстрый и не особо сексуальный, но своё дело делает.
Perl в целом предназначен для тех же целей, что и Python, но в наши дни на нём ездят только бородатые бывшие хиппи.
Кажется, что LISP существовал с самой зари автомобилестроения. Если вы катаетесь на нём, то становитесь сильнее в буквальном смысле. Но на самом деле перемещаться на LISP могут только спортсмены или маньяки.
Haskell
Haskell — это такая хипстерская версия LISP.
PHP — это тот ещё автомобиль, который вы используете только потому, что привыкли и многие в вашей местности ездят на таких же. Если на PHP неудачно проехать по лежачему полицейскому, то машина загорится и, скорее всего, взорвётся.
Автомобиль Go новенький и весь сияет. Техники говорят вам, что это машина будущего и скоро все будут ездить на таких. Но на практике этот автомобиль полезен только тогда, когда вы ограничиваете себя в желании ездить куда захотите, а направляетесь только туда, когда он может доехать.
COBOL
COBOL казался неплохой идеей для своего времени.
MATLAB
MATLAB — это такая штука, которую используют учёные для своих учёных штучек.
R — это то, что используют учёные тогда, когда не могут позволить себе MATLAB.
OCaml
OCaml — автомобиль довольно смешной формы, который почему-то любят некоторые европейцы.
JavaScript
А это JavaScript. Даже если вы нацепили большие колёса и нарисовали гоночную полосу на капоте машины для гольфа, то это всё ещё чёртова машина для гольфа.
Читайте также: