Спидометр на ардуино для авто своими руками

Обновлено: 08.07.2024

Войти

Авторизуясь в LiveJournal с помощью стороннего сервиса вы принимаете условия Пользовательского соглашения LiveJournal

GPS спидометр и одометр на Arduino + bluetooth трансивер

Originally published at Techno Mind. Please leave any comments there.

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

Для точного измерения пройденного пути я сразу подумал использовать GPS. Наивно полагая, что все получится, я установил в свой смартфон HTC Desire HD программу-логгер маршрута GPS и поехал.

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

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

Это позволит убить массу зайцев одним выстрелом: откалибровать бортовик, познать азы работы с GPS приемниками, координатами и сопутствующими расчетами, ну и наконец, пощупать вживую известную платформу Arduino – именно на ней планировалось построить девайс.

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

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

Ну, вернемся к нашим баранам. Сердцем прибора стал борт Arduino Uno:

В качестве приемника GPS я использовал борд SparkFun основанный на чипе Venus638FLPx:

Приемник замечательный. Из основных достоинств могу отметить его 65 канальную архитектуру, широкий диапазон напряжений питания, возможность подключения резервного питания (что обеспечить быстрый старт при возобновлении основного питания), высокую частоту обновлений координат (до 20 Гц) и т.д.

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

Для индикации измерений использовался обычный экран 16×2:

Кроме того, раз уж пошла такая пьянка, в систему был добавлен Bluetooth передатчик HC-05 (pinout):

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

Сам модуль HC-05 доступен по цене 5-7 долларов за штуку и продается везде. К сожалению, работа с ним полна геморроя, потому как выпускает эти модули нынче каждый третий китаец, и делают они их все немного по разному, так, что найти 100%-но соответствующий даташит нереально. В итоге Bluetooth передатчик получается нормально запустить и настроить после нескольких циклов проб и ошибок.

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

Ну и наконец – антенна, первая, что попалась под руку:

Все вышеназванные детали были соединены вот таким образом (надеюсь, я не ошибся – девайс строился на лету, так что схему я рисовал по памяти):

В итоге из рассыпухи break-up бордов получилась вот такая лапша:

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

Кратенько о прошивке.

Как только это произойдет, они тут же высветятся на экране, вместе с текущей скоростью и азимутом движения.

Левой кнопкой можно менять режим отображения данных на экране. Возможности:

Длительным нажатием на правую кнопку можно обнулить одометр.

Девайс постоянно мониторит напряжение батареи, и как только оно упадет ниже 3.2 вольт, девайс перейдет в режим отображения напряжения на экране. При этом перейти на другой экран станет невозможно.

Подсчет пройденного расстояния производится по методу Great Circle distance calculation – HAVERSINE. В силу специфики гражданского GPS, измерения пробега получаются наиболее точными при движении по трассе. Хотя с хорошей антенной и в городе точность получается довольно точными. При контрольной проверке по карте, погрешность соста вила пару сотен метров на 50 километров пути.

Передача данных по Bluetooth осуществляется параллельно основной работе девайса, и может быть полезна, к примеру, пользователям смартфонов на Android. Точность и чувствительность девайса в разы лучше оных на встроенном в смартфон GPS модуле, и потому, при помощи бесплатной программы Bluetooth GPS можно заставить все остальные программы, пользующиеся GPS для работы использовать данные приходящие по Bluetooth, вместо данных со встроенной антенны.

Кроме того, вместо телефона к Bluetooth можно подключить компьютер и пользоваться им в качестве инструмента для записи и анализа маршрута, в том числе в реальном времени.

После окончательной сборки и проверка девайса, я смог, наконец, с большой точностью откалибровать свой Multitronics.

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


Такую приборную панель можно собрать на любой автомобиль, это универсальное устройство. Мы собирали приборную панель на базе уже существующей под названием Venator.

Для ее создания потребуются следующие комплектующие:

  • Контроллер Arduino MEGA
  • Планшет с операционной систем Androir
  • Модуль Wi-Fi esp8266
  • Преобразователь питания с 12 до 5 вольт (можно использовать любое автомобильное зарядное устройство для мобильных телефонов).

К контроллеру Arduino подключаются все датчики автомобиля. В нашем случае потребовалось еще установить датчик скорости в коробку передач вместо тросика привода спидометра. А так же завести провод в салон автомобиля от коммутатора зажигания, чтобы контроллер смог отображать обороты двигателя (это нужно было сделать, так как в ОКЕ не был установлен тахометр).

Схема

Датчики к контроллеру подключить необходимо по следующей схеме:


Скетч (прошивка) для контроллера Arduino Mega

Настройка ESP-8266

Перед тем как подключать Модуль ESP8266 к схеме его нужно прошить и настроить в режиме прозрачного моста Tcp2uart (tcp to uart), чтобы полученные данные с ком-порта он передавал планшету по Wi-Fi.

Прошивать лучше через USB-UART преобразователь, который должен иметь выход источника 3.3V для питания ESP8266. Так же этот источник должен обеспечить необходимый ток не менее 200мА.

Готово! Теперь при подключении модуля ESP-8266 к ардуино он работает в режиме прозрачного моста и по Wi-Fi передает необходимые данные.

Приложение можете скачать по ссылке.

Благодарим пользователя Frud портала Drive2 за опубликованную версию приложения и описание метода установки приложения:

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

ПРИМЕЧАНИЕ! Перед установкой автозагрузки желательно настроить и отладить работу приложения.

После запуска приложения нужно зайти в настройки (нажать на значок шестеренки справа вверху). Тут надо указать ip-адрес и порт (В нашем примере этими значениями являются: адрес 192.168.4.1 и порт 3333).

А вот как выглядит приборная панель, установленная в ОКУ:

Желаем успеха в реализации данного проекта

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

Корректор электронного (стрелочного) спидометра на ARDUINO

Корректор электронного (стрелочного) спидометра на ARDUINO

Добрый день!
Я тут пытался найти исходники корректора спидометра в интернете. В итоге сделал все сам, ибо нету. Нашел только исходник спидометра и применил его в своём проекте.

Транзистор я применил какой валялся в ящике - kc238b, кажется это аналог обычного кт315, точно не помню.
3 цифровой pin на ARDUINO это сигнал с датчика скорости (у меня на бусе применен датчик фаз от 8 клапанного ВАЗ)
4 цифровой pin на ARDUINO это выход на стрелочный спидометр.
Спидометр я применил от УАЗ. Он дешевый и его легко встроить в нашу приборку вместо родного тросового.
A0 - аналоговый вход, сюда подключается потенциометр для регулировки. Можно любой.
Я применил 3,3kOm (контакты слева направо GND/СИГНАЛ/+5V)

Корректор электронного (стрелочного) спидометра на ARDUINO

То есть это электронный редуктор.
Правильно?
Можно сопрячь любой датчик скорости с любым спидометром?
Электронным естественно.

Корректор электронного (стрелочного) спидометра на ARDUINO

Корректор электронного (стрелочного) спидометра на ARDUINO

Хорошая штука, эта плата способна ещё и корректировать тахометр, в случае изменений количества цилиндров. Вещь!

Корректор электронного (стрелочного) спидометра на ARDUINO

У меня в планах сделать в итоге, повесить ардуину (arduino pro mini) в приборку, чтобы она не только мерила скорость, но и мерила количество бензина в баке от ВАЗ датчика и согласовывала со стрелкой в нашей приборке.
А также хочу на её основе климат-контроль в бусе сделать. Пинов свободных много - пусть замеряет температуру в салоне и заслонками рулит.
Если хватит её ресурсов, чтобы это все одна плата делала.

Можно хоть на сигнал от датчика ABS повесить (а там много зубов на оборот, около 60 шт). Только коэффициент правильно подобрать.
Любой репер можно, с любым количеством зубов. Главное чтобы датчик давал квадратный сигнал от 0 до 5 вольт и подобрать коэффициент умножения.

A0 pin ардуино - вход от потенциометра регулятора спидометра (у меня применен 3,3кОм)
2pin ардуино - вход - сигнал тахометра от ЭБУ двигателя
3pin ардуино - вход - сигнал от датчика скорости
4pin ардуино - выход - на спидометр в приборку (соединять только через транзистор как по схеме выше)
7pin ардуино - выход - на тахометр в приборку (соединять только через транзистор как по схеме выше)

Корректор электронного (стрелочного) спидометра на ARDUINO

Артур писал(а): ↑ 19 фев 2020, 00:09 А также хочу на её основе климат-контроль в бусе сделать. Пинов свободных много - пусть замеряет температуру в салоне и заслонками рулит.
Если хватит её ресурсов, чтобы это все одна плата делала.

должно хватить. Люди "умные" дома собирают на Ардуино и где-то я видел в инете проект человек делал что-то вроде Января для управления двиглом.

Я не сильно силен в электронике (сын помогает), но как Ардуина на помехи будет устойчива в авто? Делал как-то управление потенциометром скоростью маленького движка и оказалось, что ее может изрядно глючить, даже если движок сравнительно далеко от платы (около 1,5м)

п.с. мысль в голову: если планируешь решать много задач на Ардуино, то может быть имеет смысл поставить где-то TFT панельку сенсорную? сейчас можно сравнительно недорого взять 10-12". Причем программа для создания визуалиции прилагается и там уже много заготовленных кнопок, индикаторов и т.п. с досточно простой привязкой к контроллеру

________________________________________________________

Корректор электронного (стрелочного) спидометра на ARDUINO

Корректор электронного (стрелочного) спидометра на ARDUINO

Было такое, если в нее просто проводок воткнуть 5см, то показания с этого пина начинают прыгать в большом диапазоне, действительно антена-помехолов получается. Ардуинщики предлагают через резистор на ноль соединять, чтобы когда сигнала нет, там на пине его действительно не было.

Корректор электронного (стрелочного) спидометра на ARDUINO

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

Корректор электронного (стрелочного) спидометра на ARDUINO

Да. Задействованные в работе ноги не должны висеть в воздухе никогда. Иначе на них может появляться потенциал, который Ардуина может интерпретировать как полезный сигнал и что-то включить-выключить не по плану.
Сам когда на ворота автоматику делал столкнулся с этим.
Сидишь себе такой дома, а ворота взяли и открылись.
Это при том что даже внутренний "виртуальный" подтяжечный резистор был включен на этой ноге.
Пришлось отключить и повесить настоящую подтяжку.


Идеи для авто на основе маленькой платы с маленьким процессором — Arduino

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

С помощью платы Arduino можно соорудить автомобильный бортовой компьютер, который сможет:

  • рассчитать расход горючего;
  • вывести информацию о температуре антифриза;
  • рассчитать скорость движения, а также расстояние поездки;
  • вывести потраченное горючее за определенный километраж;
  • определить обороты мотора и т.д (автор видео — канал Arduino Tech PTZ).

Помимо устройства Arduino вам также потребуется жидкокристаллический модуль, адаптер Блютуз НС-05, а также сканер ELM327 и резисторное устройство на 10 кОм. Разумеется, необходимо приготовить и звуковой индикатор, монтажные провода и сам корпус устройства.

Процедура сборки осуществляется следующим образом:

  1. Сначала настраиваем Блютуз адаптер. К пинам устройства нужно припаять провода — к двум нижним и верхним контактам.
  2. Сам модуль подключается к плате для настройки, для этого необходимо открыть программу Arduino IDE 1.0.6 или любую другую версию, после его залить скетч в схему через USB-выход.
  3. Когда загрузка будет завершена, нужно зайти в меню Сервис — Монитор порта и выставить скорость 9600.
  4. Затем собирается схема с платой, адаптером и заранее подготовленным дисплеем. Сначала подключается Блютуз адаптер.
  5. После этого в схему добавляется дисплей. Более подробное описание подключения вы найдете на фото ниже.
  6. Резисторный элемент на 10 кОм используется для управления яркостью и контрастностью дисплея. Поэтому при первом подключении вы можете заметить, что изображения нет, если это так, то его нужно просто настроить путем поворота резистора.
  7. Далее, производится подключение дополнительной клавиши, которая будет выполнять функцию переключения экранов с информацией. Один контакт от кнопки идет к элементу GND, второй — к контакту 10. Чтобы подключить бипер, плюсовой контакт соединяется с 13 пином, а минусовой — с GND.
  8. Затем, используя то же программное обеспечение Arduino IDE 1.0.6, нужно залить скетч. Теперь вам остается только настроить бортовой компьютер и подключить его к автомобилю.

GPS-трекер

Чтобы собрать GPS-трекер на базе Arduino, вам потребуется:

  • сама плата, процесс описан на примере модели Mega 2560;
  • модуль GSM/GPRS, который будет использоваться для передачи данных на сервер;
  • а также Arduino GPS-приемник, в примере мы рассмотрим модель SKM53 (автор видео об изготовлении трекера на примере платы SIM 808 — канал Alex Vas).

Как производится подключение схемы:

Парктроник

Чтобы соорудить парктроник, вам потребуются такие составляющие:

Процедура сборки выглядит следующим образом:

  1. Для начала на макетной схеме необходимо установить светодиодные элементы, подготовленные заранее. Отрицательный контакт у всех светодиодов будет общим. Короткий контакт — катод — следует подключить к отрицательной шине, которая имеется на макетной плате.
  2. К более длинным контактам диодов, то есть анодам, необходимо подключить резисторные элементы на 200 Ом, если вы не будете их использовать, это приведет к перегоранию диодов.
  3. На центральной части производится монтаж ультразвукового устройства. На этом контроллере есть четыре контакта. Vcc — это контакт питания на пять вольт, Echo — это выходной контакт, Trig — это вход, а GND — это заземление.
  4. После того, как дальномер будет установлен, к его выходам следует подключить проводку. В частности, контакт Echo подключается к выходу 13, Trig — к 12 контакту. GND, соответственно, необходимо соединить с заземлением, которое имеется на схеме контроллера, а оставшийся выход Vcc соединяется с 5-вольтовым питанием на плате Arduino.
  5. После выполнения этих действий нужно соединить проводку с контактами резисторных элементов. А также они подключаются последовательным образом к пинам на плате — используются пины от 2 до 7.
  6. Следующим этапом будет подключение пьезопищалки, которая и будет предупреждать водителя о приближении к препятствию. Минусовой выход, как вариант, можно будет объединить с отрицательным контактом установленного ранее дальномера. Что касается положительного контакта, то он соединяется с пином под номером 11 на микросхеме.
  7. Для того, чтобы устройство в конечном итоге работало в нормальном режиме, дополнительно нужно будет написать, после чего загрузить код программы в плату. В этом коде необходимо точно указать дистанцию, при приближении к которой начнут загораться диодные элементы и будет срабатывать пищалка. Причем тональность пищалки должна быть разной, чтобы водитель мог узнать, когда приближение к препятствию будет критическим. Сам код либо пишется самостоятельно, либо берется уже готовый вариант из Интернета. Вариантов скетчей очень много, вам нужно только выбрать наиболее подходящий для вашего устройства (автор видео — канал Arduino Prom).

Заключение

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

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

Из видео ниже вы сможете узнать, как обустроить климат-контроль путем доработки регулятора отопительной системе на примере автомобиля ВАЗ 2115 (автор ролика — Иван Никульшин).

Читайте также: