Технологии не стоят на месте и сегодня автолюбителям предлагается множество различных вариантов для совершенствования своих «железных коней». Одним из таковых является Arduino. Это устройство представляет собой инструмент, использующийся для проектирования электронных устройств. В случае с автомобилем проектирование обычно осуществляется на лобовое стекло. Как сделать бортовой компьютер на Arduino и как его правильно настроить — читайте в этой статье.
Идеи для авто на основе маленькой платы с маленьким процессором — Arduino
Компы давно и плотно вошли в нашу жизнь. Аппаратная платформа Arduino — это одна из последних разработок с открытым программным кодом, которая построена на обычной печатной схеме. Подробнее о том, как с помощью такой платы сделать разные устройства для авто, мы расскажем далее.
С помощью платы Arduino можно соорудить автомобильный бортовой компьютер, который сможет:
- рассчитать расход горючего;
- вывести информацию о температуре антифриза;
- рассчитать скорость движения, а также расстояние поездки;
- вывести потраченное горючее за определенный километраж;
- определить обороты мотора и т.д (автор видео — канал Arduino Tech PTZ).
Помимо устройства Arduino вам также потребуется жидкокристаллический модуль, адаптер Блютуз НС-05, а также сканер ELM327 и резисторное устройство на 10 кОм. Разумеется, необходимо приготовить и звуковой индикатор, монтажные провода и сам корпус устройства.
Процедура сборки осуществляется следующим образом:
- Сначала настраиваем Блютуз адаптер. К пинам устройства нужно припаять провода — к двум нижним и верхним контактам.
- Сам модуль подключается к плате для настройки, для этого необходимо открыть программу Arduino >Фотогалерея «Схема подключения БК»
GPS-трекер
Чтобы собрать GPS-трекер на базе Arduino, вам потребуется:
- сама плата, процесс описан на примере модели Mega 2560;
- модуль GSM/GPRS, который будет использоваться для передачи данных на сервер;
- а также Arduino GPS-приемник, в примере мы рассмотрим модель SKM53 (автор видео об изготовлении трекера на примере платы SIM 808 — канал Alex Vas).
Как производится подключение схемы:
- Сначала осуществляется подключение модуля к основной плате, по умолчанию установлена скорость передачи данных 115200.
- После подключения нужно включить девайс и установить одинаковую скорость для всех портов — как последовательных, так и программных.
- GSM передатчик подключается к контактам 7 и 8 на основной микросхеме.
- Затем производится настройка модуля путем ввода команд. Все команды мы описывать не будем, их и так можно найти в Интернете без проблем. Рассмотрим только самые основные. AT+SAPBR=3,1,«CONTYPE»,«GPRS» — команда определяет тип подключения, в данном случае это GPRS. AT+SAPBR=3,1,«APN»,«internet.***.ru», где *** — это адрес оператора мобильной сети, который будет использоваться. AT+HTTPINIT — по этой команде производится инициализация HTTP.
- Нужно отметить один нюанс — при написании серверной составляющей интерфейса, желательно предусмотреть прием и выведение данных для нескольких адаптеров. Нужно установить переключатель на три позиции, это даст возможность получать данные от восьми автомобилей.
- Затем производится написание скетча на микросхеме. Сам скетч также можно найти в Сети, писать его необязательно. Учтите, если будут использоваться два активных последовательных порта, это может привести к ошибкам в передачи и отправке информации.
Парктроник
Чтобы соорудить парктроник, вам потребуются такие составляющие:
- сама микросхема;
- ультразвуковое устройство, в данном случае это дальномер HC-SR04:
- шесть светодиодных элементов;
- шесть резисторных элементов сопротивлением на 220 Ом;
- соединительные провода типа «папа-папа»;
- пьезодинамический элемент;
- макетная схема для сборки.
Элементы для сборки парктроника на Arduino
Процедура сборки выглядит следующим образом:
- Для начала на макетной схеме необходимо установить светодиодные элементы, подготовленные заранее. Отрицательный контакт у всех светодиодов будет общим. Короткий контакт — катод — следует подключить к отрицательной шине, которая имеется на макетной плате.
- К более длинным контактам диодов, то есть анодам, необходимо подключить резисторные элементы на 200 Ом, если вы не будете их использовать, это приведет к перегоранию диодов.
- На центральной части производится монтаж ультразвукового устройства. На этом контроллере есть четыре контакта. Vcc — это контакт питания на пять вольт, Echo — это выходной контакт, Trig — это вход, а GND — это заземление.
- После того, как дальномер будет установлен, к его выходам следует подключить проводку. В частности, контакт Echo подключается к выходу 13, Trig — к 12 контакту. GND, соответственно, необходимо соединить с заземлением, которое имеется на схеме контроллера, а оставшийся выход Vcc соединяется с 5-вольтовым питанием на плате Arduino.
- После выполнения этих действий нужно соединить проводку с контактами резисторных элементов. А также они подключаются последовательным образом к пинам на плате — используются пины от 2 до 7.
- Следующим этапом будет подключение пьезопищалки, которая и будет предупреждать водителя о приближении к препятствию. Минусовой выход, как вариант, можно будет объединить с отрицательным контактом установленного ранее дальномера. Что касается положительного контакта, то он соединяется с пином под номером 11 на микросхеме.
- Для того, чтобы устройство в конечном итоге работало в нормальном режиме, дополнительно нужно будет написать, после чего загрузить код программы в плату. В этом коде необходимо точно указать дистанцию, при приближении к которой начнут загораться диодные элементы и будет срабатывать пищалка. Причем тональность пищалки должна быть разной, чтобы водитель мог узнать, когда приближение к препятствию будет критическим. Сам код либо пишется самостоятельно, либо берется уже готовый вариант из Интернета. Вариантов скетчей очень много, вам нужно только выбрать наиболее подходящий для вашего устройства (автор видео — канал Arduino Prom).
Заключение
Как видите, микроплата Arduino — это универсальный вариант, с помощью которого можно создать множество различных девайсов. Помимо вышеописанных устройств, вы также можете соорудить спидометр, который будет выдавать информацию о скорости прямо на лобовое стекло, кнопку старт-стоп, и даже сигнализацию для транспортного средства. В целом вариантов очень много, если подойти к вопросу изготовления самодельного гаджета правильно, то у вас все получится.
Разумеется, для этого вы должны обладать знаниями в области электроники и электротехнике, при этом минимальных навыков, вероятнее всего, будет недостаточно. При изготовлении девайсов вам придется принимать собственные решения, о чем в Интернете может и не быть информации. Поэтому будьте готовы к тому, что процесс сборки может занять достаточно долгое время.
Видео «Как соорудить систему управления электродвигателем печки?»
Из видео ниже вы сможете узнать, как обустроить климат-контроль путем доработки регулятора отопительной системе на примере автомобиля ВАЗ 2115 (автор ролика — Иван Никульшин).
Как вы помните, предыдущую запись в своем блоге про круиз-контроль я закончил фотографией, на которой были запечатлены компоненты моей будущей игрушки. Следующие 2 недели я провел за изучением абсолютно новой для себя сферы, и стоит сказать наперед, что давно я так ничем не увлекался…
Не буду кривить душой, я всего несколько раз в своей жизни за 30 лет паял проводки и почти ничего не понимал в электронике на предметном уровне. Сам я по профессии программист, имею прикладное математическое образование. Программирование полюбил еще с детства, когда отец (ведущий инженер-электронщик, работающий на закрытом военном НИИ) принес нам домой собранную собственноручно вариацию популярного в 80-х — 90-х компьютера ZX-Spectrum. Отец подключил его к телевизору и показал простейшие команды на встроенном в Спектрум языке Бейсик — как заливать цветом экран телевизора, как рисовать круги, прямоугольники, овалы и прочее. Мне было 5 лет, был 90-й год и все это казалось безумно интересными вещами. Вот тогда я просто стал бредить компьютерными играми. Кто в теме, тот наверное помнит потрясающую ауру загрузки игр с кассет, помнит незабываемый скрипучий звук и медленно появляющееся изображение заставки игры. А игры… до сих пор скучаю по той атмосфере необычности некоторых игрушек, часы, проведенные за игрой Elite, которая дала огромный толчок к развитию космических симуляторов… Эта сфера так сильно меня очаровала, что свою первую игру я написал в 11 лет на языке Logo, который изучают в младших классах для "вдалбливания" основ программирования малолетним чадам. В то время как остальные рисовали простейшие фигуры, учили циклы, рекурсии меня влекло создание компьютерных игр. На зимних каникулах была написана игра-стратегия "Сечь" о запорожских казаках, которые отбивают землю у поляков и турков ) Потом футбольный симулятор, оболочку наподобие Norton Commander (помните такое? )))). Затем любовь к футбольному клубу Шахтер сподвигла на написание футбольного менеджера клуба и с этой игрой я уже ездил на Всеукраинскую Малую Академию Наук, что помогло затем поступить в универ на бюджет… Уже студентом я выбрал для себя Java как главный язык программирования и узнал, что на нем можно писать мобильные игры. А дальше пошло как по накатанной. Я был молод, у нас с моей будущей женой были общие интересы, она неплохо рисовала, мне хотелось что-то делать, мою игру заметили, позвали работать в большую как для студента компанию в Украине, а уж тем более в Донецке. Спустя год пошла переквалификация в веб-программиста и в данной сфере остаюсь и поныне.
Однако все это время меня не покидало желание пойти еще дальше и писать не только код в редакторе, но и работать непосредственно с железом. Именно поэтому у меня все время владением машины был постоянный зуд влезть то в один, то в другой узел автомобиля, что-то делать не только виртуально, но и руками.
Поставив почти все, что можно найти в Украине и не только на нашу машину, стал думать, а что еще можно сделать. И тут мой взгляд зацепился за Ардуино и я понял, это оно )
Если вы еще не слышали об Arduino, то вот вам маленький ликбез с офиц. сайта:
Arduino — это платформа с открытым исходным кодом, созданная для быстрой и легкой разработки разнообразных электронных устройств. Ардуино может получать данные об окружающем мире благодаря датчикам и реагировать, управляя светом, моторчиками и другими приводами. Микроконтроллер на плате программируется с помощью языка программирования Arduino и среды разработки Arduino. Для программирования не требуется программатор, программа зашивается через порт USB. Для начала работы понадобится только сама плата Arduino и компьютер с установленной средой разработки Arduino.
По сути ничего нового. Мой отец уже давно прошивает микроконтроллеры, проектирует платы, собирает устройства и все это известно и применяется многими радиолюбителями. Однако меня привлекла простота старта освоения этой сферы, доступность компонентов, хорошая документация и куча, нет не так, миллионы примеров в сети. Есть еще один плюс для наших итальянских машин — платформа итальянская. А уж тюнить итальянцев мы умеем )
Как человек сугубо практичный и не желающий практиковаться на абстрактных примерах, сразу решил делать реальную вещь, причем такую, которую можно использовать в машине. Свой рассказ я разобью на две части, которые будут связаны между собой и будут описывать то, что получилось в итоге.
В качестве первой вещи, которую хотелось бы сделать я выбрал проект бортового компьютера нашего драйвовчанина horhomun , отлично описанный в статье на Хабрахабр. Пользуясь статьей были куплены необходимые на первый взгляд компоненты:
А именно модуль Bluetooth HC-5, LCD экран 20×4, платку Arduino Uno, макетку и кучу перемычек. Ну а потом пошло-поехало ) Нашелся старый паяльник, отец прислал припой, инструменты, на местном радио рынке были куплены корпус, коннекторы, провода, кнопки и прочая хрень, на которую раньше просто не обращал внимания )
Остановимся немного на проекте. Проект представляет собой устройство, которое без проводов подсоединяется к бортовой сети машины через диагностический разъем OBD-II. Вы спросите, а чем родной то не устраивает? ) А я вам отвечу, а вы сможете в родной компьютер запихнуть новые функции, которые ограничиваются лишь вашей фантазией? ) Расход, скорость и пройденный путь это хорошо, но этого мало. Я знаю одного человека, который перепрограммировал родную приборку на пунто и смог выводить туда все, что хочет используя OBD и CAN. Но своим ноу хау он не захотел делиться. Также вы спросите, а как же твоя диагностика по wifi? Будете правы, все тоже самое я могу смотреть со своего айфона. Но вот, а если я хочу добавить что-то свое? Программу на айфоне я не переделаю, а тут свободное поле для творчества. При этом телефон при связи по wifi греется и быстро расходует заряд аккумулятора. А телефон, сами знаете, может сесть в самый неподходящий момент. Поэтому автономное удобно расположенное устройство, которые при необходимости покажет полезную информацию по машине в том виде, в каком я сам захочу — очень полезный в хозяйстве инструмент. А уж тем более — это отличный полигон для изучения новой для меня сферы, а также замечательный плацдарм для дальнейшего тюнинга.
Первой сложностью для меня стала настройка модуля блютуза:
Данная модель умеет работать в двух режимах master/slave, и чтобы она без пароля подсоединялась к адаптеру Bluetooth ELM 327 нужно было прописать в нее с помощью AT-команд MAC-адрес адаптера и перевести в режим master. Пару слов о bluetooth адаптере ELM 327. Как вы помните у меня стояла на постоянке wife версия ELM 327. Однако проект был заточен под bluetooth, поэтому встал вопрос поиска донгла. В современных донецких условиях это нереально. Поэтому окольными путями в ближайшем селе Селидово был куплен такой вот красивый донгл:
Удобной его фишкой является автоотключение от питания и наличие кнопки включения/выключения. Забегая вперед скажу, что вырезав небольшое отверстие в крышке обшивки удалось очень удобно расположить адаптер в диагностическом разъеме и иметь возможность быстро его включать/выключать:
Далее взяв ноут с виндой удалось найти MAC-адрес адаптера и добавить его в модуль блютуз для ардуино:
Далее пошло подключение экрана и прочих компонентов:
Примерно с год назад возникла идея сделать для своего авто БК. Что из этого получилось судить Вам.
БК работает по протоколу MUT (специализированный протокол диагностики Mitsubishi)
Как и планировалось экран БК установлен в окно приборной панели, где ранее была индикация открытой двери. Соответственно индикатор открытой двери добавлен в БК.
БК построен на основе Arduino Pro Mini. Плата была изготовлена по ЛУТ технологии, элементная база: оптопары PC817, мосфет AO4407, драйвер К-линии mc33290/
Возможности БК.
— расчет мгновенного расхода топлива
— расчет расхода топлива за последние 10 км
— расчет общего расхода топлива
— отображение параметров работы двигателя (скорость, обороты, температура ОЖ, РХХ, ДПДЗ, УОЗ, напряжение …)
— измеряет температуру воздуха (внешний датчик 18b20)
— управление ДХО (плавно включает с началом движения, автоматически выключает при включении основного света, коротким включением света позволяет включить/выключить ДХО)
— управление ЦЗ (запирает двери по достижении скорости 20 км/ч)
— индикация низкого уровня омывающей жидкости в бачке омывателя. (установлен датчик уровня).
Плата односторонняя, перемычек нет. Разведена в Sprint-layout 6.0.
Назначение входов/выходов:
Vbat — постоянный "+" от батареи
GND(слева внизу) — постоянный "-"
IGN — "+" при включении зажигания
Door — "-" при открытии дверей
Light — "+" при включении света
DRL+ — выход "+" на питание ДХО
K-line — к диагностическому разъему
LockDoor — к центральному замку, для запирания дверей
water — к датчику уровня жидкости в бачке омывателя
+5v — 5в для датчика температуры DS18B20
GND(справа внизу) — "-" для датчика температуры DS18B20
temp — шина данных датчика температуры DS18B20
Компоненты:
Экран — 1 шт.
Arduino Pro Mini 5 v — 1 шт.
Модуль часов реального времени — 1 шт.
Драйвер К линии mc33290 — 1шт.
Стабилизатор напряжения 78m05 — 1 шт.
Полевой транзистор ao4407 — 2…4 шт.
Оптопары PC817 — 6 шт.
Резисторы 0.25 Вт
Датчик температуры ds18b20 — 1 шт.
На плате предусмотрено место для параллельного соединения полевых транзисторов управляющих ДХО, в зависимости от мощности нагрузки. У меня установлены ДХО суммарной мощностью 6 Вт, на плате распаян только 1 транзистор. Он не греется.
Экраны бывают с красной или черной платой. Они имеют различие в настройке подключаемых библиотек. Я установил черный экранчик, соответственно в представленной библиотеке настройка под него.
Что касается библиотек Adafruit_mfGFX, TFT_ILI9163C то они сильно мною изменены под мои нужды, поэтому скетч компилировать только с ними.
Ссылка на скачиваниеархива содержащего скетч, библиотеки и файл платы.