Встречайте новую версию БК для тех, у кого руки растут из правильного места! Бам-Бара-Бам!
Ну а если серьезно, прошу без сарказма оценить мою новую, скромную поделку. Видимо, я плотно подсел на эти железки, до тех пор, пока не куплю себе приличный автомобиль.
Итак: "Car monitor 2".

Прошу сильно не пинать, за дизайн и исполнение корпуса.
Основные характеристики прибора и отличия от прежней версии:
Описание первой версии БК здесь.
- Графический, инверсный ЖК дисплей 128 x 64 точки (бело — синий).
- Пять кнопок управления.
- Встроенный пъезо-динамик.
- Встроенный слот для микро-SD карты памяти. (Для хранения голосовых сообщений и возможной записи треков поездки. <Пока не реализовано.>).
- Светодиодная подсветка кнопок управления и индикация обмена с ЭБУ.
- Регулировка яркости и контрастности экрана.
- Полноценное, многоуровневое экранное меню для настройки прибора, параметров вычислений и отображаемой информации.
- Разъем mini-USB, для прошивки. Возможно, при условии дальнейшего развития проекта, через этот разъем, будет реализован доступ к встроенной SD карте и прямая связь с K-L модулем для получения диагностической информации на планшете или ноутбуке.
- Работа напрямую с ЭБУ(ECU) автомобиля по K-L линии, с помощью внутреннего, съемного модуля преобразования интерфейсов (UART <> K-L линия).
- Поддержка протоколов связи: ISO 14230-4 (KWP2000) и ISO 9141-2.
- Отображение значений 18 из 79 заложенных стандартных параметров ЭБУ и 12 расчетных параметров расхода топлива, в разрезах: За поездку; С момента последней заправки; С момента запуска двигателя (текущий выезд).
- Отображение и сброс кодов ошибок ЭБУ (гашение лампочки ”Check engine”).
- Аппаратное измерение и отображение напряжения на АКБ (используется АЦП контроллера).
- Четыре режима отображения информации:
1. 3 листаемых страницы по 6 параметров на странице.
2. Отображение значения одного параметра крупным шрифтом.
3. Графическое отображение значения одного параметра в виде слайдера имитирующего прибор приборной панели АМ.
4. Отображение значения параметра в виде графика в реальном времени.
В виде слайдера и графика могут отображаться только те параметры, для которых настроены верхняя и нижняя границы значений и шаг сетки графика, в меню настроек свойств параметров. Для тех параметров, для которых это имеет смысл, при прошивке прибора, устанавливаются адекватные значения этих настроек по умолчанию.
- Переключение режимов отображения одной кнопкой. Для перелистывания страниц и переключения одиночных параметров — две другие кнопки(вверх, вниз).
- Назначение кнопок зависит от контекста выполняемой задачи. В режиме отображения параметров — одно, в режиме меню — другое, в режиме корректировки настроек — третье. Текущее назначение кнопок поясняется пиктограммами в нижней строке экрана над кнопками. Крайняя, пятая кнопка, во всех режимах служит для циклического переключения яркости экрана.
- Кнопки управления выполнены на отдельной плате и используют только 3 сигнальных пина контроллера. Две «лишних» кнопки делят по паре пинов с другими кнопками через диоды. При нажатии на одну из них происходит эффект одновременного нажатия двух кнопок из первой тройки.
- Включение и выключение прибора осуществляется поворотом ключа зажигания.
- Задержка выключения с отображением основных показателей выезда: пробег за выезд, общий расход топлива, холостой расход. Время задержки регулируется в настройках.
- При выключении прибора, запоминаются текущий режим отображения, текущая страница или текущий отображаемый параметр и текущая настройка уровня яркости экрана. Благодаря этому, при следующем включении, экран выглядит так-же, как перед выключением.
- Используется контроллер Atmega1284 (44 ноги TQFP), но вполне можно заменить на Atmega644 в таком-же корпусе.
- Размер прошивки на момент написания статьи — 46 790 байт.
- Подача напряжения питания на контроллер контролируется самим контроллером через MOSFET транзистор. Схема выполнена на отдельной плате коммутации.
- К АМ прибор подключается шестижильным телефонным проводом с вилкой 6P6C (RJ25). На плате коммутации имеется соответствующая розетка. Этот разъем мне понравился своей компактностью и тем, что вилка практически полностью прячется в корпусе, не выпирает и не выскакивает. Под панелью приборов в машине спрятана маленькая распаячная коробочка. С одной стороны на ней такая-же как в приборе розетка 6P6C, с другой клеммник на 6 проводов. К клеммнику подключаются 4 провода от диагностического разъема: земля, L, K, +12в АКБ и еще 2 провода: «+»от замка зажигания и «+»бортовой сети. Эти провода протянул от магнитолы. В распаячной коробке, в разрыв цепи «+»бортовой сети, установлено токопонижающее сопротивление — 24om, 2W.
- Все платы покрыты китайской однокомпонентной защитной краской синего цвета, затвердевающей под ультрафиолетом. С помощью этой краски, напечатанных на пленке шаблонов и ультрафиолетовой лампочки сделаны паяльные маски. Краска, надо сказать, полное Г. Пока таскал плату в кармане вместе с ключами к машине и обратно, защитный слой местами отвалился.
- Отдельный модуль K-L линии сажается на плату контроллера в цанговый разъем. В этот разъем можно подключить какой-нибудь другой модуль связи. Например с модулем HC-05 на борту и связь держать по Bluetoth через ELM-327BT, как в прежней версии БК (необходимо только подправить прошивку). Все необходимые сигналы и напряжения в разъеме имеются.
Модуль K-L линии:
- K линия управляется специализированной микросхемой L9637D (цена: 40руб в «chipdip»).
- L линия гальванически развязана оптопарой.
- Отдельное управление подключением L линии осуществляется контроллером через транзистор, коммутирующий «землю» входной цепи оптопары.
- Управление подачей +12В питания интерфейса от диагностического разъема на модуль, осуществляется контроллером через MOSFET. При выключении прибора, контроллер отключает модуль, иначе — будет сажать аккумулятор.
- На плате модуля запаян делитель напряжения с защитным стабилитроном и выходом для подключения к АЦП контроллера (для измерения напряжения).
А теперь, оставшиеся недоделки:
Была задумка, прикрутить голосовые предупреждения о критических ситуациях: Критическое понижение температуры за бортом (гололед); Перегрев охлаждающей жидкости; Снижение заряда АКБ; Критический остаток топлива в баке... В настоящее время разбираюсь с чтением/записью на SD карту для чтения WAV файлов. С забортной температурой вышел полный облом: на машине не предусмотрено датчика наружной температуры и поэтому ЭБУ не поддерживает этот параметр. Для подключения внешнего датчика к контроллеру, у последнего не осталось свободных входов.
Хреново работает регулировка контрастности (хотя, в принципе и не надо). В экранчике для этого используется отрицательное напряжение от внутреннего преобразователя. По уму, здесь нужен цифровой потенциометр, но на момент разводки платы у меня в запасе и во всех, двух радиомагазинах города, такого добра не было. Поэтому, сделал безопасную для преобразователя схему управляемую ШИМом. Но схема работает плохо — почти незаметна разница в контрастности на всем диапазоне регулировки. Теперь пришли потенциометры из интернет-магазина, но кардинально переделывать плату не хочу. Можно сделать гальваническую развязку на оптопаре или использовать полевой транзистор. Это хозяйство можно сварганить на отдельной малюсенькой платке и воткнуть вместо переменного резистора на плате контроллера. Если возникнет необходимость — буду экспериментировать, но пока и так устраивает.
Картинки:















- Вложения
-
- CarMonitor2.rar
- Исходники, платы, прошивка.
- (234.36 КБ) 916 скачиваний


