Схема дистанционного ИК управления игрушечным вездеходом на ARDUINO UNO
Советские игрушки, в отличие от современных китайских, делали на века! Вот. при генеральной уборке в сарае на даче был обнаружен игрушечный гусеничный трактор - вездеход с управлением на проводке.
Каждая гусеница с приводом от отдельного моторчика с редуктором, питание от двух батарей КБСЛ (no 4,5V, в сумме 9V), пульт управления проводной с четырьмя кнопками, по две «вперед» и «назад» для каждой гусеницы.
Все работает, только краска слегка облезла. Игрушка деда досталась внуку, а папа решил её доработать, сделать дистанционное управление на ИК-лучах.
Проще всего это реализовать на основе готового микроконтроллерного модуля типа ARDUINO. в наличии была плата ARDUINO UNO.
Принципиальная схема
Схема показана на рисунке. На ARDUINO выполнен блок дистанционного управления. он принимает команды стандартного пульта ДУ, и на четырех выходах выдает двоичный код, присвоенный данной команде.
Рис. 1. Принципиальная схема дистанционного ИК управления игрушечным вездеходом на ARDUINO UNO.
Для управления электромоторами сделаны мостовые схемы на комплементарных парах транзисторов Дарлингтона -КТ972 и КТ973. Всего две мостовые схемы. - по числу двигателей. Но с подключением к плате ARDUINO UNO возникла проблема.
Дело в том. что напряжение на плате всего 5V, а моторчики питаются от источника 9V. Поэтому на микросхеме D2 и четырех транзисторах КТ3102 была сделана схема согласования.
Элементы микросхемы служат драйверами мостовых узлов управления двигателями. А транзисторы VT1-VT4 служат согласователями уровней.
Микросхема D2 питается от того же источника, что и двигатели. Транзисторы включены по схемам ключей, и тоже питаются от источника питания двигателей. Но, на их базы поступают логические уровни с выходов платы ARDUINO UNO, которые имеют максимальный уровень 5V.
Этого более чем достаточно для управления транзисторными ключами Например, на выходе D6 D1 возникает единица, а на выходе D5 - ноль.
Транзистор VT1 открывается и на его коллекторе напряжение падает до нуля, соответственно, на входах D2.1 - ноль. А на выходе единица, потому открывается VT5, a VT6 закрывается.
Нуль с выхода D5 поступает на базу VT2. Транзистор не открывается, и на его коллекторе, а значит, и на входах D2.2 - единица (притянута через R5). а на выходе D2.2 -ноль, VT7 закрывается, a VT8 открывается. В результате ток на мотор М1 идет через VT5 и VT8 и мотор движет игрушку вперед.
Для управления использован пульт ДУ от старого кассетного видеоплеера «Орион» (точно марка неизвестна, потому что того плеера давно уж нет).
На пульте кроме надписи что он сделан в Малайзии, есть еще номер 07660CF050, не знаю, это модель пульта или его серийный номер. Никаких других данных нет.
Посреди пульта есть четыре белые полукруглые крупные кнопки «РІау», «Stop», «REW» и «FWD». Геометрически, эти кнопки на пульте расположены так. что интуитивно «РІау» должна включать движение вперед, «Stop» - движение назад. «REW» - поворот налево, «FWD» - поворот направо. Так и было решено принять.
Кроме того, над этим блоком кнопок есть обособленная кнопка «Slow», её было решено принять как кнопку «Стоп».
Таким образом, было решено использовать пять команд пульта, соответственно, пять его кнопок. управляющих движением игрушки:
- «РІау» - вперед,
- «Stop» - назад,
- «REW» - налево,
- «FWD» - направо,
- «Slow» - стоп.
Программа для микроконтроллера
Программа для записи в ARDUINO UNO приведена в таблице под названием /ВЕЗДЕХОД/.
В программе после каждого «case 0х:» записан код кнопки пульта, вернее, код команды, которую посылает пульт при нажатии кнопки.
Рис. Исходный код для программы приемника управления самодельным вездеходом на инфракрасных лучах.
Соответственно, это коды для кнопок:
- «Play» - IDE6897,
- «Stop» - IDEE817,
- «REW» - IDE9867,
- «FWD» - IDE18E7,
- «Slow» - IDEF807.
Это коды для именно такого пульта. Поэтому с другим пультом данная программа работать не будет. И если планируется использовать другой пульт, нужно будет определить команды его кнопок, которые планируется использовать для управления.
Для определения кнопок пульта нужно предварительно в ARDUINO UNO загрузить программу из таблицы ГПУЛЬТ*/.
Рис. 0. Исходный код для программы для проверки кнопок пульта на инфракрасных лучах.
После загрузки программы нужно открыть монитор порта СОМ. для этого в окне программы Ardulno 1.6.11 выбираем закладку «Инструменты» и из выпадающего меню «Монитор порта».
После того как откроется окошко Монитора порта, берем пульт ДУ и нажимаем интересные нам кнопки. В окне Монитора порта будет отображаться код. соответствующий каждой кнопке.
В одних пультах при удержании кнопки команда повторяется, в других в момент нажатия пишется код команды, а потом, все время удержания кнопки идут строки букв «F». показывающих сколько времени кнопку держат нажатой. Нужно набирать в программу именно код команды.
Лыжин Р. РК-06-2020.
Литература: 1. Каравкин В. «Дистанционное управление на ИК-лучах на ARDUINO UNO». РК-10-2019.