управлять углом поворота руля автомобиля из linux

Я пытаюсь отправить команды угла поворота рулевого колеса на свою машину. Это относительно недавняя машина (Renault Espace IV). Я использую порт OBD2 для доступа к нему, и у меня также есть ShieldCan. Мне удалось прочитать данные из машины с помощью этих инструментов и pyserial, но не ввести угол.

Есть ли способ сделать это? Как я мог бы, например, ввести «угол x °» и изменить угол поворота рулевого колеса?

Если это невозможно с таким автомобилем, какие характеристики я должен искать, чтобы это стало возможным?

Любая помощь будет высоко ценится.

РЕДАКТИРОВАТЬ: Учитывая обсуждение в комментариях, этот вопрос может быть слишком привязан к типу автомобиля, которым я владею, но я думаю, что всем было бы интереснее узнать, какие системы/характеристики должны быть у автомобиля, чтобы мы могли вводить рулевое управление. угол.

Итак, перефразируя: какой тип автомобиля может получать данные об угле поворота руля? Какие технологии нужны? Должен ли я искать помощь в удержании полосы движения, или есть другие спецификации, которые позволили бы мне это сделать?

У вашего Renault есть рулевое управление с электродвигателем?
У него "усилитель руля", что ли?
усилитель руля мог быть гидравлическим или электрическим. есть ли в машине функция удержания полосы движения? это присутствует на некоторых новых автомобилях с усовершенствованным круиз-контролем.
Нет, у него нет функции пребывания в полосе движения. @ Бен, если это гидравлика, я думаю, я не могу этого сделать, верно? Тогда скажем, что это электричество. Как я мог это сделать? Я потом разберусь, электрический он или гидравлический.
Я не уверен, что ты можешь. Рулевое управление с усилителем, будь то электрическое или гидравлическое, в основном является множителем крутящего момента. я также не уверен, как работает функция «оставаться в полосе движения при заносе», и есть ли различия в стойке или все дело в компьютере. Я предполагаю, что стойка должна быть сделана по-другому.
Я бегло посмотрел в Митчелл, кажется, что на стойке и в рулевой колонке есть несколько двигателей, которые обеспечивают эту функцию. (на Инфинити)
Значит, дело не в компьютере? Хм. Таким образом, @Pᴀᴜʟsᴛᴇʀ2, казалось, предполагал, что рулевое управление с помощью электродвигателя позволит вводить углы поворота рулевого колеса. Но вы говорите, что он не использует компьютер.
на самом деле при дальнейшем чтении механический ввод для руля заканчивается колонкой и все управляется электронно. это довольно круто.
@Бен отлично! У вас есть ссылки, где я мог бы прочитать больше информации об этом? Что такое «Митчелл»?
Mitchell — это сайт руководств по обслуживанию на основе подписки. Если вы ищете «как работает гидроусилитель руля Infiniti», на сайте автомобиля и водителя есть краткий обзор того, как работает система.
это должно быть «как работает электроусилитель руля inifiniti» в отношении комментария @Pᴀᴜʟsᴛᴇʀ2. Я не уверен, возможно ли это с традиционными системами рулевого управления с электроусилителем. Вы должны иметь возможность связаться с компьютером модулей рулевого управления с усилителем и попытаться активировать двигатель, я полагаю. Я не уверен, что это возможно без переустановки модулей.
Пожалуйста, рассмотрите возможность создания чата и переноса этого разговора в него. Комментарии становятся довольно длинными. Хотя тема очень интересная.

Ответы (2)

Датчик угла поворота рулевого колеса обычно устанавливается на автомобили с электронной системой контроля устойчивости, такой как EBD/ESP. Датчик используется для считывания рулевого механизма, чтобы установить входные данные, которые водитель пытается дать автомобилю. В этой конфигурации это система только для чтения.

Более современные автомобили, которые имеют функцию автоматической парковки или коррекции полосы движения, могут изменять угол поворота рулевого колеса электронным способом, хотя я боюсь, что не знаю, делается ли это по тому же адресу, что и датчик угла поворота рулевого колеса, который он считывает, я бы предположил, что нет. . Я предполагаю, что всегда требуется истинный угол поворота руля, иначе система не знала бы, следует ли ей применять силу левой или правой руки к колесу в электронном виде.

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

Вероятно, вам больше всего повезет, если вы будете использовать автомобиль с электроприводом, в котором рулевое колесо не имеет механической связи с колесами. Вместо этого у него будет просто датчик положения. Вам понадобится осциллограф, чтобы увидеть, какой сигнал этот датчик передает на компьютер для определения положения колеса. Как только вы получите правильную волну с правильным напряжением и силой тока, вы можете начать программировать программу для имитации этого. Вы, вероятно, будете использовать raspberry pi для управления сигналом, но потенциально вы можете использовать последовательный порт или даже порт USB, но вам может потребоваться сделать специальную плату, чтобы согласовать напряжение и силу тока.

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

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

Было бы намного проще просто добавить шкив или цепную систему к рулевой колонке любого автомобиля и управлять ею таким образом с помощью серводвигателя.

С цепным решением вы можете модернизировать что угодно, даже модели t ford. Все, что вам нужно, это серводвигатель, плата управления двигателем и пара переключателей, сигнализирующих о максимальном угле поворота. компьютер будет вращать колесо вперед и назад, чтобы определить, где находится центр и где находятся оба упора. вам понадобится настройка триммера из-за того, что выравнивание не идеально, и вы не используете контроллер PS3 для управления автомобилем.

Единственный способ сделать это с помощью obd2 — это если компания, которая построила автомобиль, добавила специальный код для тестирования этой модели, используя некоторые из зарезервированных входных данных. Для меня это звучит крайне маловероятно, но по мере того, как все больше автомобилей становятся автоматизированными, есть шанс, что некоторые новые модели могут иметь это. Вам нужно будет взломать любой код, который у них есть, и попытаться выяснить, какие сигналы используются, чтобы заставить машину делать то, что вы хотите. В этот момент вы должны получить их проприетарный сервисный сканер obd2 и декомпилировать его, чтобы получить код, необходимый для отправки их компьютеру obd2.

придерживайтесь цепного привода на модели т это будет намного проще.