Mazda 3 (1G) (Вишенка)

Боротьба з часом

Я їжджу на Mazda 3 (1G)
Дніпро, Україна

Проблема та передісторія

Після заміни рідної магнітоли на сучасний китайський Android-монітор, можливість керування штатним годинником автомобіля була втрачена разом із оригінальним аудіопристроєм.

Комплектний китайський CAN-bus модуль забезпечив лише базовий функціонал: роботу кнопок на кермі, а також відображення рівня гучності та частоти радіохвилі на рідному інформаційному дисплеї Mazda. Проте годинник самої магнітоли виявився абсолютно безсилим проти дії РЕБ — які б налаштування часових поясів чи синхронізації я не обирав, час постійно збивався.

У підсумку я отримав дві проблеми одночасно:

  • Штатний годинник Mazda, який живе власним життям без жодної можливості коригування.

  • Годинник Android-магнітоли, який через зовнішні завади постійно показує час у Лімі.

Пошук рішення та ідея проєкту

Першочерговою ідеєю було підключитися через OBD2-роз'єм до шини CAN-шини комфорту і надіслати відповідні пакети для налаштування рідного годинника. Проте в процесі аналізу проєкт масштабувався, і задум пішов трохи далі, ніж просто емуляція натискання кнопок.

Тож переходимо до практичної реалізації. 

Підбір електронних компонентів.

Для реалізації автономного контролера, який поверне керування годинником Мазди на новому рівні, ми обрали такий комплект заліза:

  • Мікроконтролер 
    ESP32 (ESP32 NodeMCU)
    ESP32 (ESP32 NodeMCU)


    Має колосальну швидкість обробки даних, вбудовану апаратну підтримку CAN-інтерфейсу (залишається докинути тільки трансивер) і, що найголовніше — Wi-Fi/Bluetooth. У перспективі це дозволить не просто тицяти кнопки, а налаштовувати годинник чи синхронізувати час автоматично через смартфон.
  • CAN-трансивер

     Модуль SN65HVD230



     Ідеальний компаньйон для ESP32. Він працює від логічних 3.3В, тому підключається до пінів ESP32 напряму без жодних узгоджувачів рівнів. Компактний, швидкий і без проблем перекладає команди мікроконтролера в рідну бортову шину авто.
  • Модуль реального часу (RTC)

    Модуль годинника DS1307 



    Вбудований в ESP32 внутрішній таймер може мати похибку, а при вимкненні запалювання (або знятті акумулятора) час взагалі скидався б. DS3231- це високоточний чип із термокомпенсацією та власною батарейкою (CR2032). Він знає точний час завжди, і мікроконтролеру залишається просто зчитати його по I2C та відправити в CAN-шину дисплея
  • Живлення

    DC-DC понижуючий конвертер LM2596



    Переводить нестабільні бортові 12-14.4В у чіткі 5 В для живлення всієї зв'язки. Оскільки ESP32 у піках (особливо з Wi-Fi) може споживати непоганий струм, імпульсник захистить схему від перегріву та перезавантажень.
  • Obd роз'єм

    Obd роз'єм
    Obd роз'єм

    Для того щоб щоразу не розбирати центральну консоль та не знімати магнітолу, підключення до шини даних (і живлення всього пристрою) буде реалізовано через діагностичний роз'єм OBD2.


    Точки підключення
    Точки підключення



    Перші тести 

    У підсумку все було зібрано «на коліні» у невеликий робочий ланцюг, і після першого підключення почався тривалий етап вивчення теорії та профільних форумів.

    Перша схема



    Як я вже згадував, початкова ідея полягала в тому, щоб «відловити» у CAN-шині конкретні біти, які передаються в момент натискання штатних кнопок налаштування часу, і просто дублювати їх програмно. Проте після кількох раундів «танців із бубном» від цього задуму довелося відмовитися.

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

    Перша перешкода, з якою я зіткнувся — це конфлікт із комплектним китайським CAN-bus модулем. Він постійно перехоплював ініціативу в шині та просто затирав (перезаписував) мою інформацію на дисплеї своїми пустими пакетами.

     Я відмовився від китайського CAN-модуля та вилучив його з системи. Щоб не втратити керування мультимедіа, аналогові дроти від кнопок на кермі  я підключив напряму до відповідних входів Android-магнітоли (масса та key1) , після чого успішно «навчив» її розпізнавати натискання через стандартне меню налаштувань.

    Результат
    Результат на табло)
    Результат на табло)


    Облагорожена схема
    Облагорожена схема

    Далі буде.....

Реклама
Ремонт та обслуговування системи кондиціювання
Ціна питання 1000 UAH,
Опубліковано: 24 червня 05:28
2 0 0

Коментарі

Щоб залишати коментарі, потрібно авторизуватись.
З цим зрозуміло, скажіть як подивитись розхід коли стоїть андроїд? Можливо якось це обійти. Нк бо на штатці було все просто, а тут як хз
24 червня 07:34
Автор Я їжджу на Mazda 3 (1G)
Cawa0000
З цим зрозуміло, скажіть як подивитись розхід коли стоїть андроїд? Можливо якось це обійти. Нк бо на штатці було все просто, а тут як хз
Cawa0000, вот дальше к єтому прийду. Сча все же хочу найти сигнал кнопки инфо и переключить стандартные часы в режим расходомера
24 червня 07:39