Что можно сделать на ардуино для автомобиля

Платы Arduino можно использовать для создания различных проектов DIY и добавления функциональности вашему автомобилю. Вот несколько идей для автомобильных проектов с использованием Arduino:

  1. Дистанционный запуск автомобиля: Вы можете создать систему дистанционного запуска автомобиля, используя плату Arduino. С помощью правильных компонентов и кодирования вы можете удаленно запускать двигатель вашего автомобиля, предварительно прогревать или охлаждать салон и запирать / отпирать двери.

  2. Система безопасности автомобиля: Создайте пользовательскую систему безопасности автомобиля, которая включает в себя такие функции, как обнаружение движения, сигналы тревоги и уведомления со смартфона. Arduino может взаимодействовать с датчиками для обнаружения злоумышленников или несанкционированного вмешательства.

  3. GPS-трекер: Создайте GPS-трекер для отслеживания местоположения вашего автомобиля в режиме реального времени. Это может быть полезно для отслеживания местонахождения вашего автомобиля или даже создания базовой автомобильной навигационной системы.

  4. Регистратор данных OBD-II: Используйте Arduino для взаимодействия с портом OBD-II (бортовой диагностики) вашего автомобиля для сбора и регистрации данных о характеристиках вашего автомобиля, таких как скорость, обороты в минуту и расход топлива.

  5. Система громкой связи Bluetooth: Создайте систему громкой связи Bluetooth, которая подключается к вашему смартфону и позволяет совершать и принимать звонки во время безопасного вождения. Вы можете использовать Arduino для взаимодействия с модулем Bluetooth и микрофоном / динамиком.

  6. Освещение салона автомобиля: Добавьте индивидуальное светодиодное освещение в интерьер вашего автомобиля. Arduino может управлять световыми эффектами, цветами и узорами, позволяя вам создавать уникальную атмосферу внутри вашего автомобиля.

  7. Помощник при парковке: Создайте систему помощи при парковке, которая использует ультразвуковые датчики для точной парковки автомобиля. Arduino может обеспечивать измерение расстояния в реальном времени и аудио / визуальную обратную связь.

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

  9. Монитор топливной эффективности: Создайте систему мониторинга топливной эффективности, которая отслеживает расход топлива и предоставляет данные об эффективности вашего автомобиля с течением времени. Это может помочь вам оптимизировать свои привычки вождения для увеличения пробега.

  10. Управление жестами: Реализуйте управление жестами внутри вашего автомобиля. Arduino можно использовать для распознавания жестов рук и управления различными функциями автомобиля, такими как регулировка громкости или смена радиостанций.

  11. Камера заднего вида: Установите систему камер заднего вида, которая отображает видеопоток на приборной панели вашего автомобиля. Arduino может помочь с подключением камеры и отображением видео.

  12. Умное зеркало: Превратите свое зеркало заднего вида в умное зеркало, которое отображает полезную информацию, такую как обновления погоды, указания по навигации или входящие уведомления с вашего смартфона.

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

Нескучные выходные или «тачка на прокачку»

Время на прочтение
14 мин

Количество просмотров 120K

Некоторое время назад я сказал: ««Тюнить» авто лично мне как-то не интересно…», но «никогда не говори „никогда“». Звезды встали в таком порядке, что пришлось экстренно сменить машину Peugeot 307sw на Mazda5.

Машина ездит, все хорошо, но некоторые «плюшки», которые были в прежней машине штатно, почему-то отсутствовали в текущей.

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

Некоторое время погуглил и узнал, что, оказывается, несколько лет назад один товарищ из СПб сделал специальное «дополнение», которое с одной стороны подключалась к блоку парктроника, с другой — к машине. И при этом информация с парктроника выводилась на штатный дисплей.

Казалось бы, надо купить, поставить и расслабиться, но тот проект «умер», автор на контакт не выходит: купить — нельзя.

Но это ж не наш метод… раз нельзя купить, значит, можно «изобрести заново» (и прокачать свои навыки по программированию микроконтроллеров).

Часть первая: Парктроник

Сначала нужно было выбрать парктроник. В исходном проекте использовался Parkmaster (модель, которая уже была совершенно недоступна — снята с производства). Пришлось выбирать из того, что можно свободно приобрести. Выбор пал на Parkmaster 4-DJ-06 (та же марка — была надежда, что «кто-то его уже расковырял, значит, я тоже смогу», но по сравнению с исходной моделью — «повышена скорость обнаружения препятствий, улучшена стабильность, датчики новой конструкции с эффективным отводом воды и т.п.»).

Первое, что было сделано — разобран дисплейчик и изучено подключение кабеля к нему. Обнаружилось, что дисплей подключен 5 проводами: GND, +5V, DATA, CS, CLK. Те, кто знаком с шиной SPI, сразу заметят некоторое сходство (у парктроника DATA = MOSI). Связь дисплея с основным блоком — одностороняя (основной блок — master, дисплей — slave), поэтому до «полноценного» SPI не хватает одного проводника (MISO).

Подключение осциллографа полностью подтвердило эту гипотезу:

Канал A — CS, B — CLK, D — DATA.

Дальше — дело техники: надо было придумать, каким образом «снять» все кодовые посылки и декодировать то, что там передается.

Про реверс-инжиниринг протокола другого парктроника уже говорили, поэтому подобно описывать это не буду, лишь приведу ссылку на ветку форума, где «родилась истина» для моего конкретного случая (там же есть и код, с помощью которого велся «захват» кодовых посылок. Мой ник на том форуме — ustas).

Работа была достаточно рутинная, но для того, чтобы сделать все «красиво и интересно» использовал два прерывания. Первое прерывание следило за CS, второе — за CLK. Больше в этой части ничего особенно интересного не было.

Пару выходных дней, несколько вечеров и у меня был уже готовый прототип на макетке (с ардуино-nano), который уверенно получал данные от основного блока парктроника и производил их декодирование. Выбор парктроника оправдался — даже уровни согласовывать не пришлось.

После этого парктроник был установлен в автомобиль и основное место разработки переместилось туда.

Часть вторая: Слушаем

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

Вообще в автомобилях обычно присутствуют две шины: HS-CAN и MS-CAN (высокоскоростная и среднескоростная шина, соответственно). Первая в бОльшей степени относится к работе двигателя и смежных систем, вторая — ее еще называют «шина комфорта» — относится к различным сервисным функциям (музыкальная система, «приборка», световые приборы, климат, двери и т.п.).

В моей машине дисплей как раз подключен к MS-шине — эта шина стала «целевой» для моего проекта. Безусловно, нужна дополнительная информация. Производители, безусловно, владеют всей необходимой информацией, но совершенно не торопятся ею делиться (хотя ситуация начинает меняться, но не в моем случае).

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

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

Поскольку не было под рукой соответствующего шилда с CAN-интерфейсом, от «ардуины» пришлось отказаться (да и все равно для установки в машину решил сделать соответствующее устройство) — развел несложную плату, на которой содержался бы МК (atmega328p), контроллер CAN-шины (MCP2515/MCP2551), пищалка… и… часовой модуль.

Что не собирай на avr, а в итоге все равно получаются часы
с радиолюбительских форумов

Ну вот кто бы мог подумать, что у машины, которая произведена в этом тысячелетии есть часы, но нет календаря? Поскольку я тот еще склеротик — решил, что календарь мне точно не помешает, поэтому DS1307 тоже «прописался» на плате устройства.

Схема устройства совершенно не блещет какой-то оригинальностью: используются типовые схемы включения всех составляющих (из их даташитов). На всякий случай вывел почти все свободные порты ввода-вывода на дополнительный разъем (вдруг что-то еще придет в голову в процессе реализации?). Естественно, для программатора развел ICSP.

Питание решено взять от USB-зарядки, поэтому на плате есть miniUSB-разъем. От блока парктроника (в процессе его установки) проложил дополнительный кабель, который «дублирует» основной кабель между дисплеем и парктроником (чтобы можно было одновременно иметь подключение как штатного дисплейчика парктроника, так и моего «изделия»). Кабель взял первый попавшийся… Вы же не очень удивитесь узнав, что это оказался длинный пачкорд? Поэтому на плате есть соответствующий разъем (черный, слева). Форму платы продиктовал имеющийся корпус.

Eagle, ЛУТ, хлорное железо и далее по списку…

На первом этапе решил (для простоты) подключиться к диагностическому разъему, благо в нем MS-шина присутствует. Где именно в разъеме следует искать, подсмотрел тут.

С аппаратной частью, надеюсь, все понятно… переходим к софту. Для работы с CAN-шиной воспользовался готовой библиотекой. Тестовые примеры очень помогли — они позволили практически сразу начать «слушать». Единственное, что пришлось поправить — указать в скетче правильную скорость MS-шины (CAN_125KBPS).

Данные о том, где искать сообщения дисплея — полностью подтвердились (для проверки включил штатную магнитолу в режим радиоприемника и выбрал радиостанцию, которая через RDS выводила только свое название и дальше нашел соответствующие посылки). Нашлись две посылки, в которых были закодировано это название (в первой посылке — первые 7 символов, во второй — оставшиеся 5 символов).

Часть третья: Говорим

Первые попытки отправить сообщения на дисплей потерпели неудачу. Штатный дисплей авто просто игнорировал мои посылки.

Для того, чтобы разобраться с этой проблемой (да и для удобства) — на «разборке» приобрел дисплей от Mazda3 (существенно более распространенная запчасть, чем аналогичный от Mazda5). Наиболее заметное отличие дисплеев — это цвет подсветки (Mazda5 — зеленый, Mazda3 — красный). Остальное практически идентично и я надеялся, что отличия только «косметические» (и оказался прав).

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

Параллельно нашел замечательный комментарий:

You can send the 3 frames with the following IDs:
0x28F: LCD settings and probably some other settings (you just send the same data you receive in a normal 0x28f frame).
0×290: 0xC0 (first byte) followed by first 5 alfanum signs
0×291: 0×85 (first byte) followed by the next 7 alfanum signs

all of them, just after you receive the 0×291 frame id sent by the HU. This will make your text being visible with almost no flicker at all.
The reason for sending the 0x28F is that it is required for displaying the 0×290 and 0×291 text, otherwise the LCD seems to simply ignore the 0×290 and 0×291.
Another method would be to set a timer with a 150ms interrupt and send the 3 frames described above.

0x28F frame content that I have used:
hex: D1 00 00 00 80 00 00 01

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

Но почему-то дома на стенде и правильная последовательность не отрабатывала — дисплей оставался пустым. Сходил в машину: тот же код — отработал отлично. Стал разбираться и понял, что для тестового стенда не хватает на шине резистора в 120 Ом (между CAN-H и CAN-L). Как только поставил этот резистор — дисплей «ожил».

Часть четвертая: Логика

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

Наблюдение за работой штатного дисплея подсказало логику, которую я захотел реализовать: как только на дисплее надпись не меняется более 5 секунд, то можно вывести «свою» информацию (например, дату), но если «машина хочет что-то сказать» (новая информация) — тут же убрать «нештатное» сообщение и вывести информацию от машины.

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

В домашних условиях написал основную часть кода, на тестовом дисплее все выглядело более-менее прилично. Но после визита в машину, вылезли серьезные…

Часть пятая: «Грабли»

Проблема заключалась в том, что штатная магнитола «флудит» в шину своими сообщениями на дисплей с периодом примерно раз в 150мс (даже если информация на дисплее не менялась). Это приводило к тому, что «нештатные» сообщения практически сразу же «перетирались» штатными.

Тут началась «гонка

вооружений

сообщений». Немного изменил схему своего устройства, задействовал для отслеживания сообщений на дисплей прерывание и пытался тут же отправить свое сообщение (чтобы «перетирать» штатное сообщение своим).

Подход, возможно, сработал бы на более быстром МК, но быстродействия атмеги не хватило — периодически «проскакивали» штатные сообщения и это приводило к очень неприятной для взгляда «мешанине» сообщений (особенно с учетом того, что текст передается двумя порциями: иногда возникала ситуация, что первая часть сообщения — от машины, а вторая — от моего модуля).

В общем, работает, но совсем не так, как хотелось бы.

Для решения этой проблемы надо было как-то «оторвать» слишком «разговорчивую» магнитолу от шины.

Можно было бы поставить «реле», которое бы отключало магнитолу от CAN-шины в моменты отображения нештатной информации, но это бы нарушило логику (например, я бы начал изменять громкость, при этом штатно на дисплей выводится сообщение типа «VOL 7» с соответствующим уровнем и это сообщение было бы пропущено).

Т.е. надо было решить задачку: слушать CAN-шину, анализировать сообщения и передавать нужные сообщения на дисплей.

«Правильно заданный вопрос – половина ответа». Придумал, что надо добавить второй CAN-интерфейс. При этом мое устройство включается «в разрез» CAN-шины между машиной и дисплеем. Устройство «слушает» то, что сообщает машина (и вообще берет из шины все, что нужно), проводится анализ данных и только нужное передается на дисплей.

Чтобы не переделывать плату полностью — сделал «шилд» (как раз пригодились разведенные дополнительные порты ввода/вывода и ICSP), ведь контроллер CAN-шины подключается к МК через SPI-шину.

Получилось вот такое устройство:

Для удобства ICSP сделал «сквозным», чтобы не надо было каждый раз разбирать «бутерброд» для обновления прошивки.

Часть шестая: Тесты

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

На видео видно, что вывод практически идентичен, и в некоторых случаях на дисплее Mazda информация появляется на доли секунды раньше (что совсем неплохо).

После того, как были отлажены основные части прошивки, решил установить свою разработку в машину, чтобы уже устроить серьезную тестовую эксплуатацию.

И тут обнаружилась следующая проблема:

Пропала информация блока климат-контроля (правая часть дисплея). Как оказалось, это не единственная пропажа — маршрутный компьютер тоже отказался показывать свою информацию.

Это не было большой неожиданностью, поскольку в прошивке я «следил» только за сообщениями на центральную часть дисплея (принимал, анализировал и при необходимости — выводил на дисплей), все остальные сообщения — просто игнорировались.

Очевидно, что надо было найти идентификаторы сообщений, которые содержали «пропавшую» информацию. Это не заняло много времени.

Обнаружены следующие идентификаторы

  • 0x38A обязательная отправка, без этого не работает маршрутник
  • 0x400 данные маршрутника
  • 0x3BA климат
  • 0x201 текущие параметры (скорость, обороты)

После того, как в код прошивки добавлены правила для прямой трансляции собщений с этими идентификаторами на дисплей — все заработало так, как надо.

Часть седьмая: «… и поскакал!»

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

В ходе обсуждения выяснилось, что не во всех комплектациях есть маршрутный компьютер, но замена дисплея на другой — добавляет эту функцию. Это говорило о том, что данные есть в шине, а функцию отображения в каких-то комплектациях реализовали, в других — нет (причем, это реализовано в прошивке дисплея).

Проверил эту гипотезу и убедился, что она верна. Достаточно просто получилось выделить следующие данные:

  • средняя скорость,
  • мгновенный расход топлива,
  • средний расход топлива,
  • запас хода на остатке топлива.

«Копнул» чуть глубже — обнаружились еще и текущие данные: скорость, обороты двигателя.

Вообще о процессе поиска данных надо рассказать более подробно — это может показаться интересным (и полезным для подобного реверсинжиниринга).

Первый взгляд на эту задачу пугает: в шине присутствует много сообщений с различными идентификаторами и отследить, какой из них поменялся — достаточно сложно. Но оказалось, что при должном подходе, задача может существенно упрощаться. Я поступал следующим образом (например, при поиске данных о состоянии стояночного тормоза):

  • включал логирование всех сообщений (чтобы объем данных для анализа был не слишком большим — ограничивал временной интервал в 5-10 секунд),
  • в отведенное для теста время поднимал и опускал «ручник»,
  • полученные данные загружал в Excel,
  • включал «автофильтр»,
  • обнаруживал идентификатор сообщений, где данные изменялись (при таких «атомарных» действиях обычно изменялся один бит),
  • выделял такие идентификторы сообщений (обычно такой идентификатор был один),
  • включал в прошивке «фильтрацию» (чтобы фиксировались только «интересные» сообщения),
  • повторял анализ с отфильтрованными данными.

В ходе таких исследований сообщений выяснил, что в шине есть информация о состоянии всех дверей авто, стояночного тормоза, «поворотников» и т.п.

Раз данные есть — нужно их как-то использовать.

Сразу же добавил своему модулю функцию оповещения о незакрытых дверях на скорости выше 10 км/ч.

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

Потом вспомнил, что на Peugeot была штатная функция автоматического запирания дверей на скорости. Очевидно, что тут тоже такую же функцию добавить… но уже не на прототипе (к сожалению, управление центральным замком в Mazda невозможно через CAN-шину, хотя в некоторых других машинах это вполне реально).

Таким образом, список функций несколько расширился:

  • парктроник,
  • календарь,
  • вывод данных маршрутного компьютера,
  • контроль открытых дверей,
  • автозапирание дверей на скорости,
  • автоприглушение музыки при парковке (чтобы лучше слышать «пищалку» парктроника),
  • контроль напряжения бортовой сети.

Поскольку результат моей работы заинтересовал соконфетников — решил полностью переделать схему устройства (сделав его «одноплатным» и «самодостаточным»): включил все необходимые интерфейсы, мощные транзисторные ключи, DC/DC-преобразователь питания. При этом сделал плату первоначального размера:

Естественно, пригодились все полученные знания в процессе создания и эксплуатации прототипа (тот же резистор на 120Ом в CAN-шине для работы дисплея).

При этом получилось, что все подключения к проводке машины можно было сделать непосредственно за дисплеем (там очень объемная пустая ниша и присутствуют все необходимые сигнальные провода).

В качестве «защиты» сделал дополнительные площадки для подключения «альтернативной» батареи резервного питания часового модуля (вдруг зимой резервная батарейка CR1225 будет «замерзать» и часы будут сбиваться) и выносной «пищалки».

Часть восьмая: Продакшн

Плата получилась довольно компактная благодаря тому, что перешел на типоразмер 0603 (в прототипе был 0805), довольно много переходных отверстий (хотя и многократно оптимизировал трассировку), дорожки/зазоры — 0.2мм. В принципе, можно было изготовить и дома ЛУТом, но проект и так занял слишком много моего времени, решил, что гораздо проще будет кому-то заплатить, чтобы плату сделали в нужном количестве и распаяли компоненты (было 9 заинтересованных соконфетников, «плюс» для моего авто вместо прототипа).

Подобный опыт заказа в «поднебесной» у меня уже был — доверил это «своему» подрядчику. Получилось относительно бюджетно (дешевле, чем просто закупить комплектующие в московских магазинах), но не слишком (маленькая партия). Оплату производства сделал на средства, собранные с желающих («микро-краудфандинг»).

Устройства произвели не слишком оперативно — на это ушло почти 3 недели. Но почта увеличила срок ожидания еще почти на месяц. Но не будем о грустном, поскольку получилось неплохо:

На обратной стороне платы ничего интересного: микроинструкция по подключению.

Замена прототипа на «заводское» изделие заняло у меня примерно полчаса (при этом еще и производилась фотосъемка процесса — чтобы облегчить его для пользователей). Но не все прошло гладко: функция автоприглушения музыки на моей конкретной магнитоле не заработала (бережливые японцы, к моему сожалению, не распаяли цепь System Mute). Зато управление замков дверей заработало сразу (правда, после довольно тщательного изучения электросхемы авто и поиска «того самого» провода, который отвечает за запирание).

Часть девятая: Настройки

Из-за того, что устройство должно ставиться в машины разных комплектаций (и разным пользователям), необходимо было придумать, как реализовать режим настройки (включение/отключение нужных сообщений, функций, установку даты/времени). Безусловно, «для себя» я бы вообще над этой задачей не стал бы задумываться — нет ничего проще, чем подключить программатор, но не в этом случае. Нужно думать о «потребителях» устройства.

При этом, согласно части «Логика», все должно выглядеть максимально штатно и без добавления дополнительных кнопок в салон (даже скрытой установки). И тут удачно вспомнилось, что можно легко получить данные о состоянии дверей, стояночного тормоза, «поворотников», причем, у последних в шине состояние полностью повторяло состояние ламп («моргал» соответствующий бит в посылке).

Вход в режим настроек реализовал по «шаманской» последовательности: на стоящей машине (нулевая текущая скорость) надо приоткрыть водительскую дверь (следим за ее состоянием) и в течение 15 секунд с момента открытия дверей три раза поднять-опустить ручник. После этого на дисплее появляется надпись «SETUP?» и для подтверждения — закрыть водительскую дверь. Т.е. «неслучайная» последовательность действий (которую вряд-ли случайно кто-то воспроизведет в режиме нормальной эксплуатации авто).

Перемещение по «меню настроек» с помощью подрулевого переключателя указателей поворота: левый — вниз, правый — вверх. Включение/выключение функций/сообщений — ручником.

Словесное описание выглядит очень сложным, но в реальной эксплуатации все гораздо проще (напротив машины — забор из поликарбоната, обратите внимание на отражение — видно, когда используются «поворотники»):

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

Несколько дней тестировал изделие в своем авто — никаких нареканий, все работает отлично.

Часть десятая: Продолжение?

На текущий момент все платы отправлены их новым владельцам. Как только они будут установлены, надеюсь, получу дополнительные отзывы.
Перед отправкой успел одну из плат подключить к Mazda CX-7 — почти все заработало сразу (некоторые данные маршрутного компьютера закодированы чуть иначе), но в целом — подключение прошло успешно.
Сейчас устройство (с текущей прошивкой) проверено на Mazda3, 5, 6 (там где дисплеи похожи на те, что я использовал в процессе разработки).

После адаптации прошивки, думаю, устройство может оказаться полезным практически на любом современном авто, где вывод на дисплей (или приборную панель) осуществляется через MS-CAN.

Часть последняя: Arduino?

После прочтения такой длинной записи (прошу прощения за это у тех, кто дочитал), может возникнуть вопрос: «При чем тут Arduino?».

Ответ очень прост: все программирование я делал в среде Arduino.

После этого некоторые могут начать «кидаться в меня помидорами», но мое личное мнение: лучше использовать тот инструмент, что доступен и знаком.

Arduino — один из таких инструментов, который с одной стороны позволяет новичкам очень быстро и относительно просто приобщиться к такой интересной области, как программирование микроконтроллеров, а «наборы» и «шилды» — еще и существенно расширить область применения «железа» в своих проектах (хотя это и недешево).
Arduino (в моем понимании) — эдакий фреймворк для «быстрого старта».

Безусловно, использование профессиональных инструментов могло бы помочь реализовать необходимый функционал быстрее/лучше/более оптимально (нужное подчеркнуть), но для «проекта выходного дня» это может быть избыточно.

Дерзайте!

И еще раз то, ради чего все затевалось:

Дисплей заметно расширил свои возможности по отображению полезной (и не очень) информации, в салоне не добавилось ничего «чужеродного», при этом все штатные функции полностью сохранены.

P.S. Если будут желающие — выложу схему, плату, BOM (поддержу «open hardware»). Качать тут.
P.P.S. Прошивку выкладывать в открытый доступ не буду.

Предлагаю вашему вниманию доработку стеклоочистители (в дальнейшем «дворники»). Собранная схема была сделана для автомобиля ГАЗ 31105. За основу работы алгоритма взят принцип от Фольксваген Кратер. Алгоритм схемы таков. Нулевой режим. Дворники «паркуются» на место. Для этого было установлено реле Р1 с НЗ контактами и подключено к «плавающим» контактам дворников. Первый режим. При включении этого режима …

Далее…«Умные» стеклоочистители

Данное устройство позволяет поддерживать температуру двигателя плавно и точно, благодаря ПИ ШИМ регулятору, вентилятор не шумит и не происходит резких скачков температуры. Подключается параллельно штатному реле, по этому в схему не вносится ни каких изменений, показания температуры (от-40 до +120) выводятся на экран, подходит практически к любой машине а возможность менять программу самостоятельно дает большие …

Далее…Аналоговое управление вентилятором охлаждения двигателя, с помощью ARDUINO и программы FLProg .

Привет всем, сделал кнопку запуска на ваз 21124. Полное описание и фото в этой теме https://www.drive2.ru/l/487976455620264023/ если кратко описать, то это урезаная версия этой кнопки https://flprog.ru/?p=574     печатку и проект качаем здесь https://yadi.sk/d/75L9H_IR3PmgPB Источник: https://www.drive2.ru/l/487976455620264023/    Добавил: Kas-161

В основу легла тема www.drive2.ru/b/2873218/, но руки таки не дошли, за поиском компонентов… пока искал микросхемы к561тм2, нашел Arduino NANO, а точнее мне ее подарили… и тут началось самое интересное… Ведь как можно написать прошивку не зная языков программирования?! на помощь приходит программа FLProg. Описываем в ней задачу и вливаем в контроллер…, а контроллер к тому …

Далее…Старт Стоп двигатель, своими руками

Алкотестер на ARDUINO PRO MINI под FLProg. Алкотестер сделан на датчике Q3 и индикаторе 74Н595 4-bit led. В начале программы, после включения запускается таймер на прогрев датчика. После прогрева производится автоматическая установка и смещение «0». При нажатии кнопки измерение загорается —— и можно дышать на датчик пока не пропадет ——. Производится 20 замеров и формирование …

Далее…Алкотестер на датчике Q3 и индикаторе 74Н595 4-bit led.

сылка Прошу не критиковать, а помочь. Это первый проект который я тут выкладываю. В принципе все норм, но остается ощущение недоделанности… В принципе микросхему расширения я буду ставить, пока ее в наличии нет… Схема состоит из двух плат. 1) Регулировка подогрева сидений с индикацией на 5161BS и управлением энкодером ER11. 2) Включение ДХО (дневные ходовые …

Далее…Подогрев сидений+ДХО

Сделал свой первый проект, обкатал  на своем автомобиле, вроде всё хорошо. В основе проекта Arduino UNO, gsm модем m590 и 4 релейных модуля. В блоке сравнения строк в поле константы необходимо написать свой номер телефона с которого будите производить запуск. (защита от ложных звонков) В реле которое идет на стартер ОБЯЗАТЕЛЬНО впаять шунтирующий диод 1N4007  параллельно …

Далее…Автозапуск двигателя по звонку

Самодельные шилды на ATmega328p Угломер+ дальномер был опубликован мной ранее. Новый вариант GSM сигнализации к которой подключается внешний датчик движения для охраны гаража. Также сделана постоянная подпитка аккумулятора и дистанционное включение выключение подогрева тосола либо картера от ~200В. Модуль на основе MP3 плеера для звукового сопровождения, оповещения. Программа полностью на  FLProg. Модуль без контроллера состоит …

Далее…Самодельные шилды на ATmega328p

Хочу предложить несколько своих разработок. Круиз контроль для автомобиля. Поддерживает текущую скорость, ее можно корректировать + -, настроки ПИ регулятора записываются в ЕПРОМ. также есть режим контроля превышения скорости от текущей на 2км/ч без включения круиза. Авто GSM сигнализация к иммобилайзеру. Подключается к стандартному к иммобилайзеру (блоку управления электропакетом). С помощью акселерометра отслеживает любые изменения …

Далее…Разработки на ARDUINO и FLProg

Блок управления светом на автомобиле. При включении режима автомат (габариты, ходовые огни, ближний свет) включаются и выключаются автоматически. Как поступил сигнал с тахометра вкл режим авт и загораются габариты и диод (автомат вкл). После пропадания сигнала(через 10 сек ) вык режим автомат, а габариты гаснут после выкл зажигания. При появлении сигнала с датчика скорости  вкл …

Далее…Управление осветительными приборами автомобиля

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

Самый распространенный проект на Ардуино для автомобиля – установка в машине ЖК-дисплея с особыми функциями и показателями.

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

Если Аrduino для автомобиля совместим с IDE Teensy 3.6, то читается анимированный растровый образ машины и резервные датчики. Каждый из четырех датчиков на своем месте, так же, как и анимационная картинка автомобиляоторая меняет цвет, исходя из того, насколько близко объект находится к машине (только зеленый означает <5 футов, зеленый и желтый означает <2,6 фута и зеленый, желтый, а красный означает <1 фут).

Этот Ардуино проект для авто очень сложный, потому что резервные датчики взаимодействуют с приемопередатчиком, а затем отображают информацию на маленький ЖК-дисплей.

Проприетарный протокол связи не является типичным, как например, I2C, UART, CAN, USB и так далее. Свойства протокола могут различаться в каждом случае, в зависимости от поставщика.

Прежде чем отключить ЖК-дисплей, нужно проверить три провода, соединяющие трансивер и ЖК-дисплей. В инструкции указывается, что необходим красный провод + 5В, провод черного цвета и синий провод. После подключения осциллографа к синему проводу и заземлению пользователь увидит характерное изображение.

Биты под номерами 0-5 не несут никакой существенной информации и не кодируются.иты 6-8 соответствуют датчикам с названиями A, B, C или D. Необходимо загрузить эскиз в IDE Arduino, который считывает датчики и выводит данные через последовательную консоль.

Для следующего Ардуино проекта в автомобиле можно использовать бесплатное программное обеспечение для редактирования фотографий под названием GIMP для обрезки и изменения размера изображения машины с верхнего вида. Затем необходимо экспортировать изображение в виде 24-битного растрового изображения с именем «car.bmp», которое составляет 110 пикселей на 250 пикселей. После загружаем все на карту microSD и помещаем эту карту в микроконтроллер Teensy 3.6.

Основными причинами, по которым нужно использовать Teensy 3.6 вместо UNO, остается скорость, с которой Teensy может читать SD-карту и отображать изображение с помощью драйвера дисплея RA8875. При использовании UNO процесс займет около 8 секунд, в то время как с Teensy 3.6 займет 1,8 секунды.

Для дальнейшего конструирования проекта с Аrduino для автомобиля потребуется сделать трехмерную печать верхней и нижней крышки ЖК-дисплея для его защиты. В машине необходимо предварительно просверлить отверстия для датчиков.

Какие датчики можно подключить к Ардуино

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

  1. Адаптер Freematics OBD-II.
  2. Резервные датчики.
  3. 7-дюймовый ЖК-дисплей TFT.
  4. Драйвер для дисплея LCD на базе SPI.
  5. Микропроцессор Teensy 3.6.
  6. Специальный уровень Shifter.
  7. 74HC125 Tri State Buffer IC.
  8. Карта памяти MicroSD Card.
  9. Провод, конденсаторы и резисторы.
  10. Датчик температуры DS18B20.
  11. Разделитель OBD-II.
  12. Микроконтроллер Ардуино.

Подключение, запуск и настройка автоустройств на Ардуино

Для загрузки эскиза проекта Ардуино для авто в виде ЖК-дисплея в Teensy 3.6 вам необходимо установить Teensyduino. Затем вам нужно будет заменить библиотеки Adafruit_RA8875 и Adafruit_GFX в расположении библиотеки Teensy (а не на вашем типичном месте в документах). На Mac операционной системе нужно щелкнуть правой кнопкой мыши по значку приложения Arduino в приложениях, а затем перейти в:

/Содержание/Java/hardware/teensy/avr/libraries

В Windows данная папка находится под основным диском C, в файлах программ x86, Arduino, а затем в папке с аппаратным обеспечением. Как только вы это сделаете, вам нужно будет изменить расположение эскиза в приложении Arduino, отредактировав его в настройках – обычно библиотеки “Тинси” размещаются по следующему адресу:

/Applications/Arduino.app/Contents/Java/hardware/teensy/avr

Из-за проблемы с внутренним температурным датчиком пользователь устанавливает температурный датчик модуля DS18B20.

В zip-файле, который находится по ссылке выше, вы увидите 4 эскиза Аrduino.

  1. Загрузите эскиз display_code, если вы хотите использовать внутренний температурный датчик модуля OB2 I2C OBD-II.
  2. Загрузите эскиз display_code_with_new_temperature_sensor, если вы хотите использовать модуль DS18B20.

Необходимо исправить ошибки, всплывающие при подключении электронного устройства, включая DS18B20, выводя температуру в 185 градусов по Фаренгейту; дисплей не включается вообще в холодную погоду, а пиксели застревают в неправильном цвете, когда дисплей затемнен.

Обратите внимание, что разгон teensy до 240 МГц не позволяет адаптеру I2C OBD-II взаимодействовать с teensy. Наконец, просто нажмите кнопку «Загрузить». В представленном скетче находятся обширные комментарии, которые помогут пользователю адаптироваться при конструировании ЖК-дисплея для авто.

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

Заглянув в разводку OBD-II, электронщик обнаружит, что линия питания 12 В к разъему OBD-II всегда подключается непосредственно к батарее. Чтобы обойти это, необходимо купить разветвитель OBD-II и отрезать провод, идущий на контакт 16 на одном из двух разъемов на сплиттере, а затем подключить этот разрезаемый провод к добавлению проводки.

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

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

Кроме того, пользователь может добавить кнопку “стоп-старт” на Ардуино для своего дисплея с параметрами для автомобиля.

4 июля 2018 в 09:57
| Обновлено 7 ноября 2020 в 01:20 (редакция)
Опубликовано:

Статьи, Arduino

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

Просмотров: 1400

включение нагрузки при заведенном двигателе В своих статьях о микроконтроллерах, а вернее о их работе и работе с ними, я уже не раз реализовывал несколько интересных проектов на таких «букашках» как Attiny 13. Хотя сейчас уже лучше обратиться к 85 серии, так как среда Ардуино перестала поддерживать 13 серию через программатор. Принцип тот же самый. Все их вполне можно применить для использования на машине, на что и были изначально ориентированы все замыслы и поделки.
 В этот же раз речь пойдет также о весьма прагматичном, а самое главное о совершенно новом в плане реализации и алгоритме работы проекте, о работе микроконтроллера в режиме АЦП. Сейчас я буквально пару слов расскажу о том, что же такое АЦП и как я его собрался применять. …и да, конечно же для чего я его собрался применять.  

Просмотров: 2502

 Кто бы мог подумать, что порой на первый взгляд простые вещи весьма сложно реализовать привлекательно… Хотя наверное здесь в самый раз стоит вспомнить о высказывании, что все гениальное просто! Именно поэтому эту привлекательную простоту не всегда легко воссоздать. Ведь она гениальна!
Что же, я уже начал повторять все высказывания по кругу, все они верны, но не приносят какой-либо пользы, а более напоминают сюжет, когда собака гоняется за своим собственным хвостом. Если же подходить к теме статьи предметно, то она будет о простом розжиге, то есть плавном включении, свечении светодиодов. Задача, кажется, весьма простой, но ее настоящее решение было нетривиальным. Я уже рассказывал о самых простых, но как вы понимаете не о самых лучших способах плавного розжига.

Просмотров: 2664

две нагрузки Порой трудно выдумать, но не возможно поверить, что так сложно может «закрутить» естественное стечение жизненных факторов… Это я к тому, что не знаю зачем вам конкретно может потребоваться устройство для управления двумя нагрузками от одной кнопки, но именно о нем я и хотел бы рассказать. Речь пойдет о современном высокотехнологичном девайсе на базе микроконтроллера. Этим я хочу сказать, что устройство имеет очень гибкую и широкую область для перенастройки, то есть изменения алгоритмов работы, при этом имеет минимальное энергопотребление, как в режиме работы, так и в режиме ожидания.

Просмотров: 1422

 Хотя у меня и значительный стаж вождения, однако с дизельными и грузовыми автомобилями дел я не имел…  Поэтому я лишь теоретически себе представляю, что дизель должен поработать какое-то время после остановки авто. Хорошо если уже в штатном режиме предусмотрено что-то подобное или есть сигнализация поддерживающая режим «турботаймера». Однако если этого нет, то тут два варианта, — контролировать все самому, либо подумать об автоматизации процесса. Что относительно контролировать самому, то я тут ни при чем, это вы можете и без меня! А что на счет автоматизации,  то для типового случая, когда надо отработать пару минут и отключиться я уже приводил вариант турботаймера.

Просмотров: 3339

Современный общественный транспорт это не только возможность добраться из точки А в Б, но и возможность по пути получить своевременную и актуальную информацию о погоде, маршруте следования… По крайней мере это стандартная опция уже для автобусов в крупных городах и для метрополитена, когда в каждом пассажирском салоне можно увидеть электронную бегущую строку с информационными материалами. В некоторых случаях такие бегущие строки можно увидеть даже на частных машинах, в проеме заднего стекла… Итак, на счет использования таких бегущих строк все понятно, осталось обсудить где их можно взять. Собственно варианта два, — купить или сделать самому. Что на счет купить, то пожалуйста, я же вам предлагаю к реализации самодельный вариант, хотя составляющие части все равно придется покупать!

Просмотров: 3974

 Отсчет времени и контроль по нему за нагрузками в нашей машине это вполне обычное дело. Такие таймеры с включением – отключением могут применяться для подогрева стекла, зеркал заднего вида, или даже освещения салона или ДХО. Быть может кто-то решит применить таймер и для своих целей, мало ли у кого какие задачи. И если эти задачи стоят перед вами, то вы находитесь на верном пути, ведь в этой статье я и расскажу о таймере на микроконтроллере Attiny13а.

Просмотров: 3884

 Если начать вдумываться в то, сколько различных областей и направлений производства задействовано при изготовлении машины, то становиться понятным, что практически любое производство можно отнести к смежному производству в автомобилестроении. А уж тем более это касается электронных устройств, ведь сегодняшние машины напоминают порой гаджет на колесах. В некоторых случаях машину можно апгрейдить и самому, если вы все-таки загорелись таким желанием. По крайней мере некоторые из доработок могут даться весьма легко. Скажем все видели как на последних моделях Lexus есть указатели поворотов «бегущие огни». Смотрится весьма красиво и эффектно. Однако владельцы машин попроще лишены подобных плюшек. Что же, это не беда, ведь в этой статье я и расскажу вам, как можно сделать такие указатели поворота с эффектом «бегущих огней» на микроконтроллере.

Просмотров: 4521

 Arduino весьма привлекательная и функциональная платформа, она способна на многое…. Именно многозначительностью слова «многое» я хотел сказать о том, что сам не в состоянии выжать из нее все то, на что она способна! Однако при всех ее преимуществах, есть и минусы. Когда дело дойдет до минимализма размеров, ограниченности функциональности и низкого бюджета проекта, то нет смысла «лепить» столь «мощный» контроллер как в Ардуино в грошовые поделки.  Здесь самые младшие контроллеры будут куда уместнее и кстати. Скажем Attiny 13, 13а, 85. Все они в состоянии работать как генераторы, как управляющие «ключи» для низких сигналов по прописанным критериям. Все это лишь подводит к мысли о том, что если сделать из Ардуинки программатор для микроконтроллеров, то в принципе его можно вполне применять для реализации поделок на этих микроконтроллерах. Именно о таком программаторе в этой статье.

Просмотров: 3350

 Если вы заинтересовались темой Ардуино, то явно уже наслышаны о ней. Видели как люди в интернете делают на этой базе всевозможные поделки. Вот и мне Ардуинка нужна для маленьких подделок, для машины или нужд гаража, хотя применение ее явно не ограничено лишь этим…
Так вот, как только вы получите с почты свою Ардуинку, то распечатав ее первым делом подумаете, а что теперь делать с этой платкой и радиодетальками на ней? И думы ваши вполне оправданы, ведь необработанное полено это всего лишь дрова, а если приложить время и труд, то это уже может стать произведением искусства.

Просмотров: 2400

 По рекомендации Минтранса РФ водитель не может находиться за рулем более 270 минут, что равно 4,5 часам. За это время у водителя настолько падает внимание и возможность отреагировать на ситуацию своевременно и адекватно, что его участи в дорожном движении становится опасным для него и для других участников дорожного движения.
Решение этой проблемы простое. Остановиться, сделать гимнастику, пообедать, выпить кофе, в конце концов просто прогуляться… В общем, необходимо сменить вид деятельности, немного развеяться. Однако здесь есть еще одна проблема, когда водитель выехал, и едет даже не осознавая того, а сколько же времени он в целом уже за рулем. Так вот затягивает, как лузганье семечек, и трудно опомниться и вспомнить, сколько же едешь и когда выехал. Такое не всегда, но бывает. И дабы вести хоть какой-то учет времени в дороге, по крайней мере для водителя-любителя, я и предлагаю сделать таймер по часам. Именно о таком таймере я вам и расскажу в этой статье.

Просмотров: 15760

 Все те, кто видел более менее современную и машину не во второй раз, а если еще и было дело проехался за рулем, уже давно отметил для себя одну из полезных опций… Именуют ее в народе ленивый поворотник или вежливый указатель поворота. Вся ее суть сводится к тому, что при повороте направо или налево водитель лишь единожды прикасается к рычагу указателя поворота, при этом без фиксации. То есть просто дает сработать цепи указателя поворотников, но не включает этот самый переключатель. В итоге после того как рычаг отпущен, указатели поворотов срабатывают еще 3-4 раза, а водитель в это время уже может заниматься «своими делами», то есть всецело отдаться дороге. Опция весьма полезная, когда приходится перестраиваться по полосам. Ведь при полном включении рычага указателей поворотов, автоматического отключения не произойдет, в связи с незначительным углом поворота руля, а значит надо будет тыкаться туда- обратно самим указателем или постоянно поддерживать его рукой на грани включения, дабы имитировать работу указателя поворотов. А если такая опция есть, то просто чуть коснулся рычага и забыл. В общем мы думаем, суть работы раскрыли в полной мере, теперь же стоит упомянуть о возможно реализации такой опции на своей машине.

From prohibition-era moonshiners to the 2000s MTV classic Pimp My Ride, people have repairing, upgrading, and modifying their cars for a long time. More recently, low-cost microcontrollers like the Arduino have opened new doors for makers looking to do fun and interesting things with their vehicles. In this article, we’ll look at a few car-related projects that make use of the popular open hardware board.

Safety note: Consult a qualified professional and check local regulations before starting projects that could affect your vehicle’s safety.

Heads-up display for your windshield

This project by Bill Wong lets you see your current speed without looking away from the road or refocusing your eyes. Wong connected an Arduino Uno to his car’s OBD-II port and programmed it to display his current speed on a seven-segment display. From there, the speed is projected through a Fresnel lens and onto a small piece of windshield-mounted teleprompter glass.

Since the initial build, Wong has tried out two variations of his HUD project that experiment with different display locations and screen materials. Be sure to check those out below.

Instructions | 1.1 | 2.0

Turn signals upgrade

DIY projects often lack the polish of professionally made solutions, but that wasn’t the case for Shravan Lal’s LED turn signal upgrade. Using an Arduino Nano, Lal programmed a low-cost strip of LEDs to animate when turn signals and caution lights are engaged. The result, as you can see below, looks pretty sweet. Lal was even thoughtful enough to make sure his project was in compliance with local traffic laws.

Instructions

Remote start using a laptop or smartphone

Remote start has been around for a while, but did you know you can use an Arduino to add the feature to older vehicles? This elaborate project from Instructables user ChrisJohnson55 lets him start his Subaru Forester via Bluetooth. He had some issues getting the project to work with his Android phone, but as demonstrated in the video below, it works well with his laptop.

A quick word of warning: Tinkering with your vehicle’s ignition system can be dangerous if not done properly. Proceed with caution!

Instructions

Parking assistance

If you’ve ever had to park your car in a small garage or cramped space, you probably understand the frustration of not knowing how much room to leave behind and in front of your car. Instructables user rclymer set out to solve that problem with an Arduino, some LEDs, and a low-cost distance sensor.

As you pull your car closer to the sensor, the Arduino-based project displays green, yellow, and red lights to let you know when it’s time to stop. Best of all, you can easily modify the project’s code to set different target distances. A self-proclaimed environmentalist, Rclymer even programmed a power-save mode to save electricity. Not bad at all!

Instructions


Photo by Rclymer. CC BY-NC-SA 2.5.

Colorful interior lighting with Bluetooth-controlled LEDs

One of the coolest car-based projects you can do is also one of the simplest. Using a few low-cost LED lights and an Arduino, this project from Ardumotive.com lets you control the color of your interior lighting via Bluetooth using a free Android app. Coolest of all, this project will automatically fade the lights in and out when doors open and close.

Instructions

Bonus: This full-blown smart car system

While it’s not a project you can easily try yourself, I couldn’t go without mentioning this incredible smart car system designed and developed by computer science engineer Michalis Vasilakis. This part voice-command, part virtual assistant project boasts a park assist system, voice control for lights and turn signals, and more. For a full run-through of all the features, check out the video below. (It’s in Greek, but has English subtitles.)

Creative Commons LicenseThis work is licensed under a Creative Commons Attribution-Share Alike 4.0 International License.

Понравилась статья? Поделить с друзьями:
  • Что можно сделать из термостата автомобиля
  • Что можно сделать из рулевой рейки автомобиля
  • Что можно смазывать силиконовой смазкой в автомобиле
  • Что можно сделать из ступицы автомобиля своими руками видео
  • Что можно сделать из распредвала автомобиля