Меню Рубрики

Установка бортового компьютера на мазда премаси

Mazda 3 #BackInBlack › Бортжурнал › Типа «бортовой компьютер» на Arduino. Часть 3

Первая статья, вторая статья.
В конце будут ссылки на статьи и ресурсы, которыми я пользовался. По тексту я буду указывать номера ссылок, которые содержат подробную информацию. Статьи очень подробные и большие и сюда их «копипастить» неразумно.

Некоторые изменения
Вместо Arduino Nano решил использовать Arduino Pro Mini 16 MHz на ATmega328. Меньший размер и больше памяти.

Однако Arduino Nano мне понадобился. Pro Mini не имеет на борту преобразователя USB-UART и подключался к ней я через Nano.
Для связи с ELM327 по Bluetooth использую HC-05.

Подключение к MS-CAN и магнитоле
Тот способ подключения, который я описывал в предыдущих статьях (к разъёму OBD2) для работы готового «устройства» не подходит. Почему? Всё по той же причине — режим передачи в CAN-шине широковещательный. Это значит, что пока магнитола подключена к MS-CAN, она будет посылать свои сообщения и «перебивать» мои, и на экране будет отображаться «нечто».
Возможно есть какие-то другие варианты, но лучший, на мой взгляд — подключить «устройство» в разрыв между магнитолой и CAN-шиной. В таком случае я смогу перехватывать сообщения от магнитолы, контролировать как долго они будут отображаться и посылать свои сообщения на экран в нужный момент.
Всегда стараюсь делать так, чтобы можно было откатить к изначальному состоянию без последствий, поэтому резать провода — не вариант для меня. Заказал вот такой переходник.

Немного укоротил провода, перепаял, припаял разъёмы. Колхоз, но… лучше чем резаные провода, к тому же видно его не будет.

Через разъём подключаюсь в разрыв MS-CAN и с него же беру питание 12 В в состоянии ACC.

Прототип
Пока не дошли руки, не дошли мозги, не дошли заказы из Китая собрал на макетных платах своё «устройство».

А потом, собравшись с силами сделал и саму плату, на которой расположил Arduino и все модули.
Первая сделанная мной плата, думаю для первого раза неплохо. Двухсторонняя. На той стороне ничего интересного. За компактностью не гнался, нужна она только чтобы модули и Arduino подключить, и питание организовать.
Схему и плату проектировал в DipTrace (с учётом полного отсутствия знаний в этой области, очень быстро разобрался с программой, удобная и понятная). Саму плату делал ЛУТом, не всё с первого раза получилось, лудил сплавом Розе. Сверлил мини-дрелью (моторчиком с патроном) карбидными свёрлами, закреплял дрель в стойке для сверления, поэтому получилось точно.
Сфотографировал сразу как сделал, поэтому «грязная». Почистил от канифоли и покрыл защитным лаком немного.

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

ELM327 и HC-05
Опрашивать ELM327 очень просто, но не тривиально. Есть пара интересных моментов.
Я использовал Bluetooth модуль на базе HC-05. Он состоит из маленькой платы (непосредственно HC-05) и большой платы с обвязкой и прочим. Подключение к Arduino на картинке ниже.

HC-05 может работать в 2-х режимах: режим AT‑команд (режим настройки) и режим передачи данных (или режим «прозрачного UART»). В режиме настройки нужно задать адрес ELM327, с которым будет устанавливаться сопряжение, задать пароль от ELM327 и режим работы самого HC-05 (ведущий). Подробно о настройке есть информация по ссылке [3]. Отмечу только, что режим по умолчанию, при включении HC-05 — это режим передачи данных, поэтому настроить нужно один раз и при каждом включении модуль будет пытаться подключиться к ELM327.
HC-05 подключается к Arduino по UART и, в режиме «прозрачного UART», мы фактически общаемся с устройством, к которому подключен HC-05, т. е. с ELM327.
ELM327 может принимать команды двух «видов»: команды, которые адресованы непосредственно ему, и команды для запроса данных от OBD (OBD‑команды). Команды для ELM327 — это в основном команды для его настройки, начинаются они с букв «AT». OBD‑команды адресуются автомобилю. Они имеют свой формат и контекст команды содержит PID, который нужно «опросить». Очень подробно команды и общение со сканером и автомобилем рассмотрено в документе Manual_ELM327.pdf по ссылке [4].

Читайте также:  Установка автокорректора фар hella

Зачем резистор 120 Ом на CAN-Bus Shield?
На модулях CAN-Bus Shield можно увидеть перемычки для включения резистора на 120 Ом между H и L контактами. Не знаю как это правильно по-русски назвать, но в англоязычных источниках он обзывается terminator resistor. Он должен быть установлен на каждом конце шины (обычно таких резистора два в шине). В шине автомобиля такой резистор уже есть, но так как я встал в разрыв, я создал новую шину соединяющую моё устройство и магнитолу, и в этой шине нужно добавить резистор 120 Ом (установить перемычку на модуле), без него у меня были проблемы. А вот на модуле, который «смотрит» в шину автомобиля, вероятно, перемычка не нужна, но у меня пока стоит и работает.

Программирование
Это был долгий путь, полный непонимания и головной боли. А всё потому что у меня была очередная «неправильная» библиотека для работы с MCP2515.
Как я писал в предыдущей статье, MCP2515 может фильтровать сообщения и выбирать только нужные, и что важно — это именно аппаратная фильтрация. Можно было бы в программе описать конструкции if…else или switch case, но программная фильтрация в разы медленнее, а скорость очень важна в данном случае. Фильтр в MCP2515 задаётся с помощью установки определённым регистрам контроллера определённых значений, и та библиотека, которая у меня была, что-то делала не так. Порыскав в интернете я нашёл нужную (github.com/coryjfowler/MCP_CAN_lib) и чудо произошло.
Так же во вторую часть внёс исправления (UPD в конце статьи).
Код, для работы с ELM327 я позаимствовал тут (geektimes.ru/post/255012/). Немножко его переработал, убрал то, что мне не нужно и, чтобы не мудрить с библиотеками сделал всё в одном скетче. Всё остальное — моих рук дело.
Не буду тут приводить и разбирать код, если кто-то заинтересуется посмотреть его — пишите в личку и я поделюсь.

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

Промежуточный финиш. Возможно, продолжение следует…

Читайте также:  Установка антенны дэу нексия

источник

Mazda 323 F BA › Бортжурнал › Бортовой компьютер, на любой инжектор.

По просьбам выложу тему о бортовом компьютере.
Спаял себе мой дядька, я сказал что как только куплю машину так и себе сделаю. Прошло 2 года, я купил машину и мы взялись за комп. За основу был взят бортовой компьютер народного производства. И было внесено ряд изменений. От печатной платы, так как установили туда ключи, для отключения магнитолы и пр.(прошивка полностью переписана, кроме математики) Переписал нам друг прошивку практически всю, так как была очень криво и ничего нельзя было дописать. Дописали несколько функций. В итоге получился такой комп. Функций лишних нету.

БОРТОВОЙ КОМПЬЮТЕР TRIPCOMP
1. Скорость;
2. Тахометр;
3. Вольтметр;
4. Контроль по четырем событиям ТО;
5. Измерение температуры снаружи, в салоне и двигателя (сигнализация о перегреве);
6. Измерение мгновенного расхода топлива при движении и во время стоянки на работающем двигателе;
7. Средний расход топлива за участок пути;
8. Общий расход топлива за прохождение участка пути;
9. Протяженность участка пройденного пути;
10. Общий пробег (одометр);
11. Время разгона до 100км/ч;
12. Дата-время;
13. Индикация времени открытого состояния форсунки;
14. Контроль бортового напряжения с возможностью предустановки величины «критического разряда» и последующим отключением дополнительных нагрузок;
15. Автоматическое и ручное управление дневными ходовыми огнями (ближний свет).

БК предназначен для бензиновых четырехцилиндровых инжекторных двигателей. Для его работы необходимо всего два сигнала: сигнал с любой из 4-х форсунок и сигнал с датчика скорости (КПП), т.е. практически можно установить на любой автомобиль с инжекторным двигателем.
БК представляет собой устройство, состоящее из процессорного блока, индикатора, выносных датчиков температуры. Индикация имеет несколько режимов и зависит от текущего состояния: пущен двигатель или нет, автомобиль движется или стоит и т.п.
Для настройки БК, есть режим предварительной установки основных параметров и констант.
БК оснащён цифровыми датчиками для измерения температуры наружного воздуха и внутри салона. При наличии доступного места и конструктивной возможности, имеется третий датчик температуры, который может быть применен для контроля температуры охлаждающей жидкости.

Функция контроля бортового напряжения.
В БК реализована функция контроля бортового напряжения. Есть управляемый выход, для подключения (при соблюдении нагрузочной способности в 0,6А) внешних нагрузок. Работает так. Предварительно, в сервисном меню, вводится значение порогового напряжения, при котором будет отключаться внешнее устройство. При работе БК, постоянно происходит мониторинг бортового напряжения, и в случае достижения им порогового значения подается периодичный звуковой сигнал. Сигнал будет подаваться до тех пор, пока напряжение не поднимется выше порогового. В противном случае, по истечении 1минуты, нагрузка будет отключена.
Такая функция будет полезна в тех случаях, когда при пользовании дополнительным энергопотребляющим оборудованием во время стоянки авто (автомагнитола, усилители, инверторы, выносные лампы и т.п.), требуется не «засадить» АКБ до такого состояния, что невозможно произвести пуск двигателя. Собственно, пороговое значение выбирается как раз такое, чтобы гарантировано можно было запустить двигатель.
Максимальный ток этого выхода ограничен величиной около 0,6А. Для управления, например, магнитолой и усилителем (по линии REM) должно быть вполне достаточно. Но, если необходимо подключить нагрузку помощнее, её необходимо коммутировать через автомобильное реле с соответствующим допустимым током коммутируемых контактов, а само реле будет управляться с БК.
Надо сказать, меня этот режим выручал не раз, и самое интересное — открыл глаза на мой новый АКБ, заявленной ёмкости в 50Ач в нем просто нет…
Автоматическое включение дневных ходовых огней (DRL).
Функция была задумана после того, как в ПДР Украины появилось требование обязательно включать дневные ходовые огни DRL (ближний свет) за городом в зимнее время года (с октября по апрель). О целесообразности этого спорить не будем, если нужно — будем включать. Только вот забывается это… Ну а штрафы сейчас такие, что…, но сейчас не об этом.
Режим работы такой: после пуска двигателя, по прошествию какого-то времени (паузы) БК подает сигнал на включение соответствующих фар. Пауза сделана для того, чтобы режим запущенного двигателя и генератора немного устоялся.
Активация этой функции, а так же длительность паузы (от 30сек до 3мин.) доступно в режиме предустановок в сервисном меню. Ходовые огни при движении можно принудительно выключить или наоборот включить кнопкой БК из соответствующего меню.
Лучше всего, если у Вас стоят фабричные светодиодные DRL. Они вполне экономичны и долговечны, поэтому если они будут светить постоянно, ничего страшного не будет.
В моем случае, на машине стоит линзованный ксенон (к нему еще вернемся!), для себя я решил, что ресурс ламп позволяет мне ездить с постоянно включенным светом. Более того, у меня БК включает только ксенон, при этом задние габаритные огни и подсветка номера не горит. О включении режима индицирует светодиод. Это днем, а отсутствие подсветки приборной доски и кнопок салона с наступление сумерек подсказывает мне, что пора включать основной свет.
Ну и третий вариант – ближний свет обычных фар, самый неэкономичный с точки зрения потребляемой энергии и долговечностью галогеновых ламп. Альтернативный выход – самостоятельная установка дополнительных светодиодных DRL. В крайнем случае, можно подключить аналогично, как это сделал я: БК включает только лампы ближнего света, без включения задних габаритных огней, подсветки номера и т.п.
Нагрузочная способность выхода около 0,6А, поэтому для управления огнями DRL или фарами ближнего света необходимо использовать автомобильное реле, на соответствующий коммутируемый ток.

Читайте также:  Установка бактерицидная ультрафиолетовая itkalux bt 90s

Как настроить расход топлива:
Очень хорошо если вы знаете сколько потребляет ваш тип двигателя на холостых при прогретом состоянии. Вот у меня например 800г\час я подобрал в сервисном меню это значение и всё. И показывает довольно точно.
Если кто-то хочет очень точно, то нужно заправить бак до отстрела на заправке. Потом проезжаете допустим 100 км и снова на заправку, и до отстрела. И таким образом высчитываете разницу показаний между БК и повторной заправкой.

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

Винты прижимают корпус от часов к оргстеклу. Плату прикрепил винтами к корпусу часов.

В дорестайле всё ставится проще, нужно 4 уголка и оргстекло.

вот такого вида он будет. Коробку цепляем куда удобно размеры её 95x55x31H.

источник

Добавить комментарий

Adblock
detector