Я хочу поворачивать руль своей Honda Civic LX 2017 года (без Honda Sensing), отправляя команды через шину CAN (порт OBD ii). Моя машина имеет электронный усилитель руля. Я делаю это, потому что мне нужно поэкспериментировать с программным обеспечением для самостоятельного вождения, которое будет отправлять угол поворота рулевого колеса в качестве выходных данных.
Для этой цели я буду использовать OBD-ключ Panda от comma.ai. Я видел, как люди делали это в автомобилях с датчиками Honda. Просто хочу знать, возможно ли это в моей машине.
Нет, не напрямую через порт OBDII. Невозможно отправить активацию рулевого управления через OBD даже с диагностическим оборудованием дилерского уровня. Представьте последствия для безопасности, если бы это было возможно.
Даже если вы получили прямой доступ к шине CAN рулевого управления, я сомневаюсь, что есть какие-либо данные, которые вы могли бы отправить для активации рулевого управления.
В системах, с которыми я работал (Scania, Landrover, Volvo, Toyota), система управления рулевым управлением является автономной, поэтому контроллер двигателя H-Bridge и блок обработки, включая вход датчика угла поворота рулевого колеса, находятся в одном ECU, поэтому вы не можете отправить это любая ложная информация. Единственная информация, которая отправляется через шину CAN, — это частота вращения двигателя, скорость автомобиля, дублированный угол поворота рулевого колеса и сотни других битов данных от других датчиков. Все, что критично для безопасности, обычно передается через Flex-ray с несколькими областями резервирования.
На самом деле есть только три способа взять под контроль рулевое управление:
1: Эмуляция датчика угла поворота рулевого колеса. Это сложнее, чем кажется, так как требует перехвата выходных данных датчика угла поворота рулевого колеса, довольно быстрых входных и выходных данных. Это может привести к серьезным проблемам с безопасностью, поэтому я бы не стал этого делать.
2: Взламывать входы H-моста напрямую. Я делал это много раз, и, вероятно, это самый безопасный и простой способ, если у вас есть базовые навыки работы с электроникой и программным обеспечением. Просто разберите ЭБУ EPS и найдите входы от MCU к H-Bridge, они, скорее всего, будут 3,3 или 5 В. Просто подключите их к чему-то вроде Arduino или пользовательской платы, вы можете добавить некоторые дополнительные функции безопасности, контролируя шину CAN для входных данных от драйвера и т. д. Вам нужно будет найти способ остановить вашу систему, борющуюся с новым контроллером, что я сделать, это перерезать дорожки печатной платы от MCU к H-мосту и подключить выходы MCU к входам на моем контроллере и подключить входы H-моста к выходам на моем контроллере.
3: Вставьте некоторый пользовательский код в микроконтроллер EPS. Без сомнения, это лучшее и безопасное решение, если у вас есть обширное программное обеспечение и знания в области обратного проектирования. Просто введите код, чтобы активировать рулевое управление, когда на шине CAN есть определенные сообщения. Преимущество этого заключается в том, что вы не обходите никакие функции безопасности, а поскольку код встроен, автомобиль не думает, что что-то не так. Единственная проблема, которую я вижу в этом, — это синхронизация, поскольку вам, очевидно, нужна чрезвычайно высокая частота обновления / отклика, когда дело доходит до рулевого управления.
Не уверен насчет Civic, но с помощью openpilot от comma.ai друг из Тайваня смог установить L2 на свой prius без функции LKAS (на его машине вообще нет модуля камеры).
Бен