Вопрос

Считывайте данные о скорости автомобиля в режиме реального времени

Для моего исследовательского проекта мне нужно считывать данные о скорости (движении) транспортного средства в режиме реального времени. Как мне этого добиться? Какое аппаратное и программное обеспечение мне для этого нужно? Думаю, данные можно считывать с шины CAN через интерфейс OBD2? Мне нужно получить доступ к данным из моего кода на C++.



В моём распоряжении есть следующие автомобили, которые я могу использовать для проекта: Skoda Octavia 1.6 MPI 55 кВт 1U2 (1997), Volvo XC90 D5 2.4 Momentum (2004) и Volkswagen T5 Multivan 2.0 TDI (2014).



Перевод вопроса с Mechanics Stack Exchange
Лицензия: CC BY-SA (2.5–4.0)
Оригинальный вопрос: https://mechanics.stackexchange.com/questions/17632/read-vehicle-speed-data-in-real-time

4 Комментария

  1. Есть два основных подхода: можно подключить датчик скорости непосредственно перед его подключением к компьютеру или использовать сигналы OBD II (генерируемые компьютером).



    Датчики обычно генерируют напряжение, поэтому вам нужно найти интересующий вас провод, а затем установить аналого-цифровой преобразователь. Затем его нужно подключить либо напрямую к COM-порту (если он есть на вашем компьютере), либо к USB-адаптеру, предназначенному для приёма цифровых сигналов того типа, который генерирует АЦП. Одна из сложностей при использовании этого подхода заключается в том, что вам нужно проложить провод через перегородку двигателя.



    Проще всего использовать информацию OBD II, доступ к которой можно получить через разъем в салоне. Обычно разъем OBD II скрыт за панелью рядом с центральной консолью. Вам понадобится сканер OBDII с открытым интерфейсом (не проприетарный), который подключается к последовательному порту вашего компьютера (или к любому другому устройству). Система OBDII работает как терминал. Вы отправляете ей текстовые команды, которые представляют собой просто буквенно-цифровые коды, а она отвечает данными. Пошаговые инструкции о том, как это сделать, можно найти на различных веб-сайтах. Чтобы привести их здесь, потребуется слишком много места.



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


  1. Одним из таких способов является использование цифрового входа и последовательной печати Arduino.
  1. Большинство датчиков скорости вращения колес и трансмиссии работают на эффекте Холла, поэтому они изначально выдают цифровой сигнал... Я почти уверен, что вам не нужен преобразователь. Однако вам может понадобиться что-то сделать с ним, чтобы компьютер мог его считать.
  1. Я не знаю, как преобразовать его для использования в коде на C++, но вы можете получать сигналы непосредственно от датчиков скорости (датчика на колесе или датчика на трансмиссии), а затем преобразовывать этот сигнал, чтобы он соответствовал скорости. Сигнал можно считать с CAN-шины по PID $0D. Подробнее см. на этой странице.
Вы уже ответили на этот вопрос