Схема подключения контроллера ардуино мега к автомобилю. Применение arduino в автомобиле - управление магнитолой кнопками на руле. Общее описание проекта

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

Что такое Ардуино и зачем оно в автомобиле

Вначале давайте о том, что такое Ардиуино, ведь наверное еще не все знают к чему такая вещь в автомобиле. Надо сказать, без какой-то доли иронии, что это практически готовое функциональное устройство, которое можно настроить путем заливки в нее программы и тем самым заложить определенные полезные функции. Скажем мигающий стоп-сигнал по вашему алгоритму или ленивый поворотник или обеспечить индикацию и воспроизведение (звук, свет) срабатывания датчиков. Да нам фантазии не хватит перечислить все то, что можно сделать с этим девайсом. Если кратко, то вы задаете какие-то условия для реализации определенных действий, а вот мозгами обеспечивающими такую работу будет Ардуино. Так что если у вас есть логические задачи, которые вы хотели бы решать в автомобиле, то доверьте это все вашему маленькому помощнику. Однако, как и все ассистенты, так и наш Ардуино хочет кушать. А питается он электричеством от бортовой сети автомобиля. При этом логика Ардуино работает от 5 и 3,3 вольт. Конечно, штатно в Ардуино стоит стабилизатор напряжения, но его может не хватить для того, чтобы обеспечить должную мощность для питания. Именно поэтому следующий абзац как раз и будет посвящен снижению напряжения для подключения Ардуино.

Какое напряжение питание необходимо Ардуино в автомобиле

Итак, теперь о самом главном, о чем собственно и была написана наша статья. Да, конечно, можно было бы просто направить читателя на страничку «Как преобразовать 12 вольт в 5 вольт на машине », да и забыть про все… Однако раз уж мы взвалили этот груз на свои плечи, то давайте продолжим все же в тематическом ключе.

Если взглянуть в технические характеристики Ардуино то можно найти информацию о том, что Ардуино UNO питается от 9 вольт. На самом деле такое завышенное напряжение вполне оправдано, ведь если подать на Ардуино сразу 5 вольт, то его может не хватить. Все дело в том, что на плате у Ардуино есть свои стабилизаторы напряжения, а они тоже имеют какой-то КПД. В итоге если подать номинальное рабочее напряжение, то после них оно будет уже ниже номинального из-за собственного сопротивления стабилизаторов. Опять же если подать 12-14 вольт, то этого будет уже многовато. Ведь стабилизаторы, как правило, выполнены в корпусе SOT-223, а в таком корпусе рассеиваемая мощность у стабилизаторов 1117 серии всего-то 0,8 Вт. Давайте прикинем. Если подключить нагрузку эквивалентную 8-10 светодиодам, то это будет порядка 100 мА. В итоге на штатных стабилизаторах упадет от 7 до 9 вольт. Получается 0,1*9=0,9 Вт. То есть в этом случае микросхема – стабилизатор уже потребует радиатора, которого априори нет в Ардуино. Вот ту мы и приходим к выводу об оптимальном питании в 7-9 вольт. А дальше Ардуино сама из этого напряжения получит то, что ей надо. Теперь о том, как получить такое напряжение.

Питание (подключение) Ардуино к машине (преобразователи)

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

Итак, мы должны иметь динамически изменяющуюся составляющую в питании микроконтроллера. Здесь самое время обратиться к микросхемам – стабилизаторам. Скажем LM7809, 7808 способны выдавать ток до 1,5 А и снижать напряжение. Давайте и здесь прикинем. 14-9=5. 5 вольт надо погасить стабилизатору. Пусть потребляемый ток 150 мА. В итоге 0,15*5=0,75 Вт надо рассеять будет на корпусе ТО-220. Ну что сказать, все вполне жизненно и реально. Часть тепла рассеется на внешнем стабилизаторе, а часть на штатном. Опять же повторимся, что не следует брать 7805, так как это будет слишком низкое питание для Ардуино, да к тому же еще и рассеиваемая мощность на таком стабилизаторе подлетит в два раза, то есть надо будет наверняка ставить радиатор.

(Подключение 7809 и 7805 аналогично)

Ну, и если шагать в ногу со временем, то быть может стоит обратить внимание на ШИМ питание. Широко импульсная модуляция это когда напряжение выдается на нагрузку не постоянно, а импульсами. При этом на нагрузке как бы остается среднее значение от суммарного значения импульсов. В конце концов перерывы между этими импульсами позволяют сэкономить на энергозатратах при питании и не требуют элементов для рассеивания тепла – радиаторов. Единственное ШИМ несколько дороже чем просто микросхемы-стабилизаторы, да и собирать своими руками такую схему вряд ли кто станет. Проще купить готовый блок, но повторимся это более прогрессивно.

Подводя итог…

Что же, в принципе здесь уже можно подвести итог. Если у вас возникла необходимость подключения Ардуино к бортовой сети автомобиля, то самым лучшим вариантоы будет применение модуля ШИМ, при этом с рабочим напряжением 7-9 вольт. Все остальное ардуино сделает сама. Модули на 5 вольт и микросхемы стабилизаторы на то же самое напряжения не рекомендуются, так как из-за потерь питание может быть ниже номинального.

Видео о подключении Ардуино к 12 вольтам в автомобиле

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

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

Что можно сделать с помощью Arduino

Робот пылесос

Уборка в квартире - рутинное занятие и малопривлекательное, тем более на это нужно время. Сэкономить его можно, если часть хлопот по дому возложить на робота. Этого робота собрал электронщик из г. Сочи - Дмитрий Иванов. Конструктивно он получился достаточно качественным и не уступает в эффективности .

Для его сборки вам понадобятся:

1. Arduino Pro-mini, или любая другая подобная и подходящая по размерам...

2. USB-TTL переходник, если вы используете Pro mini. Если вы выбрали Arduino Nano, то он не нужен. Он уже установлен на плате.

3. Драйвер L298N нужен для управления и реверсирования двигателей постоянного тока.

4. Маленькие двигателя с редуктором и колесами.

5. 6 ИК-датчиков.

6. Двигатель для турбины (побольше).

7. Сама турбина, а вернее крыльчатка от пылесоса.

8. Двигателя для щеток (небольшие).

9. 2 датчика столкновения.

10. 4 аккумулятора 18650.

11. 2 преобразователя постоянного напряжения (повышающий и понижающий).

13. Контроллер для работы (заряда и разряда) аккумуляторов.

Система управления выглядит следующим образом:

А вот система питания:

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

Способны выдавать световой поток любого цвета, в них обычно используются светодиоды в корпусе которых размещено три кристалла светящиеся разным цветом. Для их управления продаются специальные RGB-контроллеры, их суть заключается в регулировании тока подаваемого на каждый из цветов светодиодной ленты, следовательно - регулируется интенсивность свечения каждого из трёх цветов (отдельно).

Вы можете сделать своими руками RGB-контроллер на Ардуино, даже более того, в этом проекте реализовано управление через Bluetooth.

На фото приведен пример использования одного RGB-светодиода. Для управления лентой потребуется дополнительный блок питания на 12В, тогда будут управлять затворами полевых транзисторов включенных в цепь. Ток заряда затвора ограничен резисторами на 10 кОм, они устанавливаются между пином Ардуино и затвором, последовательно ему.

Пульт управления на базе Arduino и смартфона

С помощью микроконтроллера можно сделать универсальный пульт дистанционного управления управляемый с мобильного телефона.

Для этого понадобится:

    Arduino любой модели;

    ИК-приемник TSOP1138;

    ИК-светодиод;

    Bluetooth-модуль HC-06.

Проект может считывать коды с заводских пультов и сохранять их значения. После чего вы можете управлять этой самоделкой через Bluetooth.

Веб-камера устанавливается на поворотный механизм. Её подключают к компьютеру, с установленным программным обеспечением. Оно базируется на библиотеке компьютерного зрения - OpenCV (Open Source Computer Vision Library), после обнаружения программой лица, координаты его перемещения передаются через USB-кабель.

Ардуино даёт команду приводу поворотного механизма и позиционирует объектив камеры. Для движения камеры используется пара сервоприводов.

На видео изображена работа этого устройства.

Следите за своими животными!

Идея заключается в следующем - узнать, где гуляет ваше животное, это может вызвать интерес для научных исследований и просто для развлечения. Для этого нужно использовать GPS-маячок. Но чтобы хранить данные о местоположении на каком-нибудь накопителе.

При этом габариты устройства здесь играют решающую роль, поскольку животное не должно ощущать от него дискомфорт. Для записи данных можно использовать для работы с картами памяти формата Micro-SD.

Ниже приведена схема оригинального варианта устройства.

В оригинальной версии проекта использовалась плата TinyDuino и шилды к ней. Если вы не можете найти такую, вполне можно использовать маленькие экземпляры Arduino: mini, micro, nano.

Для питания использовался элемент Li-ion, малой ёмкости. Маленького аккумулятора хватает примерно на 6 часов работы. У автора в итоге все поместилось в обрезанную баночку из-под тик-така. Стоит отметить, что антенна GPS должна смотреть вверх, чтобы получать достоверные показания датчика.

Взломщик кодовых замков

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

Конечно, для практического применения такое устройство вряд ли подойдет, но это отличный демонстрационный.

Ардуино в музыке

Это скорее не проект, а небольшая демонстрация какое применение нашла эта платформа у музыкантов.

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

Номиналы деталей:

    Транзистор NPN-типа, например 2n3904 - 1 шт.

    Резистор 1 кОм (R2, R4, R5) - 3 шт.

    330 Ом (R6) - 1 шт.

    10 кОм (R1) - 1 шт.

    100 кОм (R3) - 1 шт.

    Электролитический конденсатор 3.3 мкФ - 1 шт.

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

Это достаточно простой и интересный проект из разряда «можно похвастаться перед друзьями».

3 проекта роботов

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

BEAM-робот на Ардуино

Для сборки четырёхногого шагающего робота вам понадобятся:

    Для движения ног нужны сервомоторчики, например, Tower Hobbies TS-53;

    Кусок медной проволоки средней толщины (чтобы выдерживала вес конструкции и не гнулась, но и не слишком толстой, т.к. не имеет смысла);

    Микроконтроллер - AVR ATMega 8 или плата Ардуино любой модели;

    Для шасси в проекте указано, что использовалась Рамка Sintra. Это что-то вроде пластика, он сгибается в любую форму при нагревании.

В результате вы получите:

Примечательно то, что этот робот не ездит, а шагает, может перешагивать и заходить на возвышения до 1 см.

Этот проект мне, почему-то, напомнил робота из мультфильма Wall-e. Его особенностью является использование для зарядки аккумуляторов. Он перемещается подобно автомобилю, на 4-х колесах.

Его составляющие детали:

    Пластиковая бутылка подходящего размера;

  • Перемычки мама-папа;

    Солнечная панель с выходным напряжением в 6В;

    В качестве донора колес, двигателей и других деталей - машинка на радиоуправлении;

    Два сервопривода непрерывного вращения;

    Два обычных сервопривода (180 градусов);

    Держатель для батареек типа АА и для «кроны»;

    Датчик столкновений;

    Светодиоды, фоторезисторы, постоянные резисторы на 10 кОм - всего по 4 штуки;

    Диод 1n4001.

Вот основа - плата Ардуино с прото-шилдом.

Вот так выглядят запчасти от - колеса.

Конструкция почти в сборе, датчики установлены.

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

Это скорее ЧПУ станок, чем робот, но проект весьма занимательный. Он представляет собой 2-х осевой станок для рисования. Вот перечень основных компонентов, из которых он состоит:

    (DVD)CD-приводы - 2 шт;

    2 драйвера для шаговых двигателей A498;

    сервопривод MG90S;

    Ардуино Уно;

    Источник питания 12В;

    Шариковая ручка, и другие элементы конструкции.

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

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

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

Заключение

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

Все об ардуино и электронике!

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

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

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

В данном материале будет предоставлен пример как использовать несколько датчиков температуры 18b20 + добавлять нужное количество и производить удаленный мониторинг по средствам платы esp8266 nodemcu и приложения blynk. Данный материал будет полезен если нужно снимать удаленно несколько показаний температуры для мониторинга.

Хотите поиграть в видеоигры из детства? Танчики, Контра, Чип и Дэйл, Черепашки Ниндзя… Все эти игры ждут вас! Из данного руководства вы узнаете как просто и быстро собрать и настроить ретро-консоль на базе микрокомпьютера Raspberry Pi и сборки эмуляторов RetroPie.

Интерактивная снежинка соответствующей формы, созданная Ардуино Нано. Используя 17 независимых каналов PWM и сенсорный датчик для включения и эффектов.

Снежинка состоит из 30 светодиодов, сгруппированных в 17 независимых сегментов, которые могут управляться отдельно микроконтроллером Arduino Nano. Каждый блок управляется отдельным пином PWM, и регулирует яркость каждого блока светодиодов и эффекты отдельно.

Данная статья будет полноценной инструкцией для сборки машинки робота на базе кит комплекта 2wd robot на основе вай-фай платы esp8266 и мотор шилда под неё .

Так же в конце будет прошивка под эту плату и настройка приложения для управления нашим роботом через смартфон по средствам вай-фай сети.

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

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

Популярная глушилка спаммер на базе платы ESP8266 (nodemcu \WEMOS) получила вторую версию прошивки c исправлением ошибок, улучшением интерфейса и добавлением более широкого функционала. Все это собрал до кучи и решил написать пост. Так же добавил подробный ворклог с упрощенной прошивкой через FLASHER (прошивка в 3 клика)

WIFI часы с метеостанцией на ESP8266 и матричном индикаторе на MAX7219

Очень интересный и простой проект часов с веб интерфейсом на базе платы ESP8266 nodemcu и дисплея MAX7219 . Наверное лучший вариант часов и спаренной погодной станции которая получает данные с интернета!

Дополнительные поля
test 1:

Этот проект сделан на плате WIFI ESP8266 и заточен на управление и мониторинг через приложение BLYNK на вашем смартфоне. Так же в проект можно добавить IP-камеру (или использовать старый смартфон с камерой в виде сервера) для мониторинга в реальном времени через IP Webcam Pro через виджет в приложении BLYNK .Для подачи корма используется шаговый двигатель NEMA17 c шагом в 1.8 градуса - 200 шагов на полный оборот. Двигатель вращает шнек в сантехническомпереходнике, в который из бункера попадает корм.

Давайте начнем с тех возможностей, которые откроются перед вами, если вы обеспечите беспроводной обмен данными между двумя платами Arduino:

  • Удаленное снятие показаний с датчиков температуры, давления, систем сигнализации на основе пироэлектрических датчиков движения и т.п.
  • Беспроводное управление и мониторинг состояния роботов на расстоянии от 50 2000 футов.
  • Беспроводное управление и мониторинг помещений в соседних домах.
  • И т.д. и т.п. В общем, практически все, что требует беспроводных систем управления и мониторинга...

Это первый роботизированный проект, который я когда-либо делал, и если вы никогда не пробовали собрать робота, то, скорее всего, думаете что это сложно. Но Ардуино и шасси 2WD / 4WD сделают вашу сборку намного проще, и вы соберете своего первого робота с радиоуправлением на Ардуино без каких-либо мучений.


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

Файлы

Шаг 1: Нужные части и инструмент

Я воспользовался готовыми решениями, и все запчасти и инструменты были приобретены через интернет.

Запчасти:

  1. Набор шасси 4WD для робота (GearBest)
  2. Arduino Nano (GearBest)
  3. Модуль H-моста LM298 (GearBest)
  4. Модуль bluetooth HC-06 (Amazon)
  5. Литий-ионные батарейки 2 x 18650 (GearBest)
  6. Отсек для батареек 2x 18650 (GearBest)
  7. Небольшая макетная плата (GearBest)
  8. Провода сечением 0.5 мм2
  9. Провода с джамперами папа-мама (Amazon)
  10. Провода с джамперами мама-мама (Amazon)
  11. Малярная лента, изолента или что-то подобное (Amazon)

Для робота, объезжающего препятствия:

Ультразвуковой модуль измерения расстояния HC — SR04 (GearBest)

Необходимый инструмент:

  1. Паяльник (Amazon)
  2. Кусачки (Amazon)
  3. Стриппер для провод (GearBest)
  4. Клеевой пистолет (GearBest)

Шаг 2: Что такое робот?

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

Робот состоит из следующих компонентов:

  1. Структура / Шасси
  2. Привод / Мотор
  3. Контроллер
  4. Вводные устройства / Датчики
  5. Источник питания

В следующих шагах я опишу каждый из этих компонентов, и вы всё легко поймёте.

Шаг 3: Структура / Шасси



Структура состоит из физических компонентов. Робот имеет один или несколько физических компонентов, которые каким-либо образом двигаются для выполнения задания. В нашем случае структура робота – это шасси и колёса.

Шаг 4: Приводы



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

В нашем случае привод – это DC-мотор, скорость которого равна 3000 оборотам в минуту, а вращающий момент 0.002 Н м. Теперь добавим к нему шестерню с передаточным числом 1:48. Новая скорость уменьшается на коэффициент 48 (в результате давая 3000/44 = 68 оборотов в минуту) и вращающий момент увеличивается на коэффициент 48 (в результате давая 0.002 x 48 = 0.096 Н м).

Шаг 5: Подготавливаем клеммы моторчиков




Отрежьте по 4 провода красного и черного цвета длиной примерно 12-15 см. Я использовал провода сечением 0.5 мм2. Оголите концы проводов. Припаяйте провода к клеммам моторчиков.

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

Шаг 6: Устанавливаем мотор




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

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

Шаг 7: Устанавливаем крышу

Послу установки 4 моторов нужно установить крышу. Приладьте 6 медных стоек при помощи гаек, клеммы проводов выведите сквозь отверстие в крыше.

Шаг 8: Контроллер

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

Контроллер – программируемое устройство, способное работать по заданной программе и отвечающее за все вычисления, принятие решений и коммуникацию. В нашем случае в качестве контроллера мы используем микроконтроллер Ардуино Нано.

Контроллер принимает входные данные (с датчиков, удалённо и т.д.), обрабатывает их и затем даёт команду приводам (моторам) выполнить выбранное задание.

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

Микроконтроллер можно использовать, чтобы вращать мотор в одном направлении, но если вам хочется с помощью микроконтроллера вращать мотор и вперёд, и назад, то вам нужна дополнительная схема – H-мост. В следующем шаге я объясню, что это такое.

Шаг 9: Н-мост (модуль LM 298)




Что такое Н-мост?

Термин Н-мост произошел от типичного графического представления этой схемы. Это схема, которая может вращать мотор как в прямом, так и в обратном направлении.

Принцип работы:
Посмотрите приложенную картинку для понимания принципа работы схемы Н-моста. Мост состоит из 4 электронных выключателей S1, S2, S3, S4 (транзисторы / MOSFET/ IGBTS).

Когда выключатели S1 и S4 закрыты, а остальные два открыты, положительное напряжение будет проходить через мотор, и он будет вращаться в прямом направлении. Таким же образом, когда закрыты выключатели S2 и S3, а S1 и S4 открыты, обратное напряжение будет даваться на мотор и он начнёт вращаться в обратном направлении.

Заметка: выключатели на одной руке (то есть S1, S2 или S3, S4) никогда не закрываются одновременно – это создаст короткое замыкание.

Н-мосты доступны в виде интегральных схем, либо можно собрать свой мост при помощи 4 транзисторов или MOSFET. В моём случае используется интегральная схема Н-моста LM298, которая позволяет управлять скоростью и направлением моторов.

Описание распиновки:

Out 1: DC мотор 1 «+» или шаговый двигатель A+
Out 2: DC мотор 1 «-» или шаговый двигатель A-
Out 3: DC мотор 2 «+» или шаговый двигатель B+
Out 4: вывод мотора B
12v: вход 12V, но можно использовать от 7 до 35V
GND: Земля
5v: выход 5V, если джампер 12V стоит на месте, идеально для питания Arduino (и т.п.)
EnA: позволяет получать сигналы PWM для мотора A (Пожалуйста, прочитайте секцию «Arduino Sketch Considerations»)
IN1: включает мотор A
IN2: включает мотор A
IN3: включает мотор B
IN4: включает мотор B
BEnB: позволяет получать сигналы PWM для мотора B (Пожалуйста, прочитайте секцию «Arduino Sketch Considerations»)

Шаг 10: Входы / Датчики

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

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

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

Шаг 11: Источник питания





Чтобы управлять приводами (моторами) и питать контроллер, роботу нужен источник питания. Большинство роботов питается от батарей. Когда мы говорим о батареях, то имеем в виду множество вариантов:

  1. Алкалиновые батарейки AA (не заряжаются)
  2. Никель-металгидридные или никель-кадмиевые батарейки AA (заряжаются)
  3. Литий-ионные батареи
  4. Литий-полимерные батареи

В зависимости от ваших нужд, нужно выбрать подходящий вид батарей. По-моему мнению, нужно всегда выбирать заряжаемые батареи достаточной ёмкости. Я использовал 2 литий-ионные батареи стандарта 18650 ёмкостью 2600mAh. Если для автономности вам нужно больше мощности, используйте большой комплект батарей, например 5A turnigy.

Отсек для батарей:
Отсек для батарей я заказал в Китае, он не подходил для батарей с плоским верхом, поэтому я использовал два неодимовых магнита для придания батарейкам нужной формы.

Зарядка:
Для зарядки батарей нужен хороший зарядник. По моему опыту, эти зарядники хорошо зарекомендовали себя:

  1. PowerEx AA Charger-Analyzer (Amazon)
  2. XTAR LiIon Battery Charger (Amazon)
  3. Turnigy LiPo Battery Charger (Amazon)

Шаг 12: Установка компонентов


Цельная схема устанавливается на крыше. Отсек для батарей, драйвер двигателей LM 298 и маленькую макетную плату я закрепил горячим клеем, но можно просто прикрутить их. Модуль bluetooth закрепляется скотчем. Ардуино нано вставьте в макетную плату.

Шаг 13: Электропроводка






Для соединения модулей понадобятся провода с джамперами.
Соедините красные провода двух моторов вместе (на каждой стороне) и затем черные провода. В итоге у вас выйдет по две клеммы с каждой стороны.

MOTORA отвечает за два правых мотора, соответственно два левых мотора соединены с MOTORB.
Для соединения всех компонентов следуйте инструкции:

Соединение моторов:

Out1 -> красный провод левостороннего мотора (+)
Out2 -> черный провод левостороннего мотора (—)
Out3 -> красный провод правостороннего мотора (+)
Out4 -> черный провод правостороннего мотора (—)
LM298 — > Arduino
IN1 -> D5
IN2-> D6
IN2 ->D9
IN2-> D10
Модуль Bluetooth -> Arduino
Rx-> Tx
Tx ->Rx
GND -> GND
Vcc -> 3.3V
Питание
12V — > красный провод батарей
GND -> черный провод батарей и пин GND на Arduino
5V -> соедините с пином 5V Arduino

Шаг 14: Логика управления

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

Шаг 16: Тестирование



Чтобы проверить робота-машину, я положил её на маленькую картонную коробку. Таким образом, колёса будут крутиться, но машинка будет оставаться на месте. Проверьте работоспособность, нажимая все доступные кнопки. Если всё работает, то можно по-настоящему управлять ей.

Заметка: если моторы вращаются в противоположном направлении, то просто поменяйте местами провода.

Шаг 17: Планы на будущее




В этом руководстве я объяснил, как создать простенькую машинку. Дальше я хочу добавить в неё некоторые улучшения. Вы можете присоединить к ней различные датчики, вот некоторые идеи:

  1. Добавление ультразвукового датчика для объезда препятствий
  2. Использование модуля WiFi, например ESP8266 или Node MCU вместо Bluetooth, для удлинения дистанции управления.
  3. Добавление солнечной панели для зарядки батарей.

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

Сначала суть проблемы.
Во многих машинах есть штатно установленное управление магнитолой на руле. Кнопки эти работают по принципу резистивной клавиатуры, что позволяет передавать сигнал всего по двум проводам.
Например, нажимаем кнопку увеличения громкости - в цепи появляется сопротивление 130 Ом.
Нажимаем уменьшение громкости - появляется сопротивление 240 Ом и т.п.

На многих современных магнитолах также есть возможность подключения проводного пульта дистанционного управления. Но проблема в том, что стандарты у всех производителей автомобилей и автомагнитол разные. Например, у магнитол Pioneer для увеличения громкости надо «подать» сопротивление 16 кОм.

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

Когда я поискал такой адаптер для своей машины, оказалось, что он стоит больше 50$. Учитывая, что сама магнитола мне досталась за какие-то смешные 30-35$, я решил попробовать сколхозить адаптер самостоятельно на ардуине. Готовой схемы на тот момент в интернетете не было, пришлось изобретать самому.

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

В своем проекте использовал следующие компоненты:
1. Автомобиль Suzuki Swift
2. Автомагнитола Pioneer MVH-X165UI (купил в оффлайне)
3. Arduino Nano, можно и Mini (купил на ebay за 2.5$)
4. MCP4131, цифровой потенциометр на 100k (купил в оффлайне за 1$, почему-то на ebay они )
5. Резистор 10k
6. Макетная плата
7. Понижающий конвертер ( за 1.5$), чтобы из 12V сделать 5V

Принцип простой - на входе измеряем сопротивление с кнопок на руле. Если сопротивление соответствует нажатию какой-то кнопки, то на выходе на потенциометре выставляем соответствующее сопротивление, требуемое магнитоле.

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

Также в сети обнаружилась следующая схема проводного пульта для магнитолы Pioneer (используется 3.5mm штеккер):

Кнопок Preset Up/Down у меня на руле нет, поэтому я использовал только два контакта на штеккере - Tip и Sleeve.

Т.к. диапазон требуемых магнитоле сопротивлений от 1К до 62К, то я купил микросхему MCP4131 - это цифровой потенциометр на 100К с 129 шагами регулировки. 129 шагов достаточно, т.к. нам не нужна супер точность, магнитола понимает сопротивления с разбросом где-то в 10-20%.
Ну и не обязательно покупать именно MCP4131, думаю, подойдет любой другой digipot с подобными характеристиками.

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

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

Схема подключения получилась такая:

Сопротивление измеряется на пине A5 с помощью делителя напряжения с резистором 10К.

Потенциометр подключен по следующей схеме:

4, 7 - GND
8 - +5V
1 - arduino pin 4 (можно выбрать другой)
2 - arduino pin 13
3 - arduino pin 11
6 - к магнитоле, контакт «Tip» на штеккере

Скетч под спойлером

#include // библиотека SPI должна быть в стандартном софте, ну или её можно скачать. // Коды имеющихся на руле кнопок const int VOL_UP=1; const int VOL_DN=2; const int PREV_TR=3; const int NEXT_TR=4; const int MODE=5; const int MUTE=6; int csPin=4; // CS на цифровом потенциометре int wheelPin=A5; // аналоговый пин, на котором мы считываем сопротивление нажатой на руле кнопки int i=0; int prevButton=0; void setup() { pinMode(csPin, OUTPUT); delay(50); SPI.begin(); delay(50); SPI.transfer(0); // команда SPI.transfer(0); // значение pinMode(wheelPin, INPUT); delay(100); //Serial.begin(9600); } int getR() { // Эта функция читает сопротивление с кнопок на руле и возвращает код нажатой кнопки, либо 0 // читаем сопротивление (на самом деле напряжение, конечно) на аналоговом пине int r=analogRead(wheelPin); //Serial.println®; // Ищем, какая кнопка соответствует этому сопротивлению. // Данные значения сопротивлений подходят для Suzuki Swift, для других автомобилей числа будут другие. if (r>=9 && r<=15) return(VOL_UP); if (r>=18 && r<=26) return(VOL_DN); if (r>=120 && r<=156) return(PREV_TR); if (r>=60 && r<=80) return(NEXT_TR); if (r>=33 && r<=47) return(MODE); if (r>=2 && r<=6) return(MUTE); // если ни одна из кнопок не нажата, возвращаем 0 return (0); } // ОСНОВНОЙ ЦИКЛ void loop() { int currButton=getR(); // заносим в переменную currButton код нажатой кнопки if (currButton!=prevButton) { // если значение поменялось с прошлого раза delay(10); currButton=getR(); // ждем 10ms и читаем еще раз, чтобы исключить "дребезг" кнопки if (currButton!=prevButton) { // если код кнопки точно поменялся с прошлого раза //Serial.println(currButton); prevButton=currButton; // сохраняем новое значение в переменную prevButton // Выставляем сопротивление на потенциометре, тем самым посылаем команду на магнитолу. // Значения сопротивлений даны для Pioneer, для магнитол других марок числа будут другие. SPI.transfer(0); switch(currButton) { case VOL_UP: SPI.transfer(21); break; // 16k case VOL_DN: SPI.transfer(31); break; // 24k case PREV_TR: SPI.transfer(14); break; // 11k case NEXT_TR: SPI.transfer(10); break; // 8k case MODE: SPI.transfer(2); break; // 1.6k case MUTE: SPI.transfer(4); break; // 3k default: SPI.transfer(0); break; // 0k } } } delay(5); }

Фото готовой платы.

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

Ардуина может работать от 12V, но я решил поставить понижающий до 5V конвертор. Во-первых, я от него же запитал видеорегистратор, тем самым освободил гнездо прикуривателя. Во-вторых, я читал, что напряжение в автомобильной сети грязное и нестабильное, может плавать на несколько вольт, как вниз, так и вверх. Конвертер такие скачки выдержит, а ардуина может и погореть. Чтобы еще «почистить» питание я добавил несколько защитных элементов - диод, стабилитрон, конденсатор. Схему подсмотрел . Насчет её необходимости у меня некоторые сомнения, но решил - пусть будет.

На этом все.
Устройство нормально работает в машине уже около года.
А я сэкономил некоторую сумму денег и получил ценный опыт.

Планирую купить +82 Добавить в избранное Обзор понравился +119 +232

Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: