Вопрос

Можно ли «взломать» систему круиз-контроля Mazda 3

Я бы хотел, чтобы при нажатии кнопки значение увеличивалось на +10, а не на +1 (то же самое для уменьшения)?



Перевод вопроса с Mechanics Stack Exchange
Лицензия: CC BY-SA (2.5–4.0)
Оригинальный вопрос: https://mechanics.stackexchange.com/questions/72212/is-it-possible-to-hack-the-behavior-of-the-cruise-control-of-mazda-3

15 Комментариев

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



    Самое простое и безопасное решение, которое я могу себе представить, — это использование Arduino или Raspberry Pi для перехвата и интерпретации сигналов от кнопки и датчика тормоза, а также использование реле или портов платы для управления «выключателем» (то есть замыканием цепи). Программирование не будет слишком сложным, но потребуется провести некоторые работы по подключению, и, возможно, вам придётся изрядно покопаться в руле. Ключом к безопасности будет постоянная проверка наличия сигнала тормоза, чтобы прерывать действие, увеличивающее тягу.



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


  1. Чтобы ответить на поставленный вопрос,


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


    Если только какие-нибудь невероятно увлечённые энтузиасты (зачем?!) не создали новый чипсет ЭБУ или что-то в этом роде, то маловероятно, что можно будет изменить то, что команда на самом деле делает внутри ЭБУ.


    С автомобильными ЭБУ довольно легко «поиграть».


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


    Но я предполагаю, что изменить то, что на самом деле делает команда, когда вы находитесь внутри ЭБУ, будет невозможно.


    Если вы уже знакомы с низкоуровневым программированием, вот отличная статья, с которой можно начать!


    Отличная статья об основах взлома автомобильных сетей:


    https://www.freecodecamp.org/news/hacking-cars-a-guide-tutorial-on-how-to-hack-a-car-5eafcfbbb7ec/


    введите описание изображения здесь




    Предложение: напишите автору этой выдающейся статьи. Скорее всего, он сможет быстро ответить на ваш конкретный вопрос.


  1. Согласно инструкции по эксплуатации, переключатель + имеет два режима работы. При нажатии скорость увеличивается на 1, при удержании автомобиль начинает набирать скорость, а новая целевая скорость будет равна скорости, с которой была отпущена кнопка. Исходя из этого, я не уверен, что, взломав переключатель, чтобы при однократном нажатии скорость увеличивалась на 10, вы добьётесь желаемого, поскольку, скорее всего, потеряете второй режим работы.



    https://owners-manual.mazda.com/gen/en/mazda3/mazda3_8fj4ee16e/contents/05100100.html


  1. Кайл, ты мог бы просто сделать это с помощью системы CAN, на которой работают автомобильные сети. Было бы безумием перерезать провода и т. д., когда разъём находится прямо там! Я приложил статью, в которой объясняется, как это сделать.
  1. Я имею в виду... «это не мой сайт», так что я не переживаю! Но я был бы рад помочь несчастному читателю ;)
  1. Очень неприятно, когда люди ставят дизлайки без объяснения причин.
  1. Я совсем не против, но мне интересно, почему кто-то поставил минус? Это и есть буквальный ответ на вопрос в заголовке!
  1. Я так и делаю, но хочу этого избежать. Я вижу в этом преимущество круиз-контроля, который избавляет меня от необходимости делать это. Миниатюрная машина, которой я управлял, быстро разгонялась до заданной скорости, а также имела функцию +10... Я скучаю по ней
  1. Согласен, на моей BMW при однократном нажатии включается +1, а если нажать сильнее, то +5. Другой вариант — использовать педаль газа и нажать кнопку Set, когда вы достигнете нужной скорости.
  1. Да, проблема в том, что удержание кнопки не увеличивает скорость нажатия. Даже быстрое одиночное нажатие происходит немного быстрее, чем удержание кнопки, но, как вы понимаете, это очень раздражает, когда нужно сильно увеличить скорость. В моих последних двух автомобилях не только быстрее реагировали на увеличение скорости, но и можно было добавить +10, что позволяло переключаться с 40 на 70 без 30 нажатий.
  1. @HandyHowie — конечно, я написал целую статью о том, как взаимодействовать с системой CAN, на которой работают автомобили. Именно так это и делается.
  1. @Fattie Нужно будет немного подумать над этим, но не составит труда подключить микроконтроллер к датчику тормоза, чтобы знать, был ли нажат тормоз. Аналогичным образом нужно будет определять, были ли нажаты другие кнопки круиз-контроля.
  1. Да, спасибо, ребята! Я много работал с программированием высокого уровня, и мне было очень интересно, какие у меня есть варианты, когда дело касается аппаратного обеспечения (для решения реальной «проблемы» в моей жизни). Похоже, что выбор очень ограничен — очень жаль. Мне интересно, будет ли иначе в будущем, когда появятся автомобили :)
  1. Это, пожалуй, единственное работающее решение, @HandyHowie . Хорошая идея! Это было бы немного опасно, потому что... скажем, на 10 кликов уходит 3 секунды... эти клики будут продолжаться, даже если вы (скажем) затормозите на это время.
  1. Вы можете запрограммировать микроконтроллер так, чтобы он выдавал 10 импульсов при каждом нажатии кнопки.
Вы уже ответили на этот вопрос