Управление моторами с помощью ик пульта

Управление скоростью коллекторного двигателя с помощью ИК пульта

Есть задача, регулировать пультом скорость коллекторного двигателя. Сам пока только познаю азы в понятиях Ардуино. Нашел в нете подходящий по-помему мнению скетч, с регулировкой светодиода, но при компиляции он выдает ошибку в строке 46. Подскажите, господа разбирающиеся, что здесь неправильно?

Управление моторами с помощью ик пульта

Да, это не заметил, но увы — не полегчало. Выдает вот такую ошибку:

sketch_mar29e:46: error: ‘pinl’ was not declared in this scope

exit status 1
‘pinl’ was not declared in this scope

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

Какой из них предпочтительнее и легче привести в рабочее состояние?

Управление моторами с помощью ик пульта

Потому что в строке 13 написано pin1, а в строке 46 написано pinl. Разницу видите?

Спасибо, уже увидел! А по второму скетчу навскидку ничего не видно проблематичного?

Управление моторами с помощью ик пульта

В первом: int RECV_PIN = 11;

Во втором: int RECEIVE_PIN = 2;

К какой ноге реально подключен датчик?

Датчик пульта перевешивал на нужную ногу. Скорее всего где-то контакта не было. Сейчас заработали оба скетча, первый оказался немного не такой как надо — регулировка одной кнопкой по кругу минимум-максимум. Во второй добавляю регулировку второго двидателя — опять какая-то засада. Знаний мало, а хочется сделать что-то сразу. Вот переделанный скетч, посмотрите, ПОЖАЛУЙСТА, что я не так наковырял?

Видео:v.01 Arduino IR motor Управление моторами с ИК пульта и Скоростью ШИМ (PWM) Pan & TiltСкачать

v.01 Arduino IR motor Управление моторами с ИК пульта и Скоростью ШИМ (PWM) Pan & Tilt

Дистанционное управление QUADRUPED по ИК

Видео:Как настроить ПУЛЬТ для Arduino?! Инфракрасный приемник датчик CHQ1838 VS1838B 38кГцСкачать

Как настроить ПУЛЬТ для Arduino?! Инфракрасный приемник датчик CHQ1838 VS1838B 38кГц

Введение:

В этом уроке мы дополним робота QUADRUPED модулем ИК-приёмник и будем управлять направлением и скоростью движения робота с помощью ИК-пульта.

Скорость и направление движения робота будет зависеть от нажатой клавиши на пульте. Робот сможет выполнять такие команды как движение вперёд или назад, с заворотом или без, разворот на месте влево или вправо.

Видео:Управление моторами с ArduinoСкачать

Управление моторами с Arduino

Видео:

Видео:Arduino Start #2. Управление arduino ИК-пультомСкачать

Arduino Start #2. Управление arduino ИК-пультом

Нам понадобится:

Библиотеки:

Для реализации проекта нам необходимо установить библиотеки:

  • Библиотека iarduino_IR_RX — для работы с ИК-приёмниками/передатчиками;
  • Библиотеки SoftwareSerial и Servo входят в базовый набор Arduino IDE и не требуют установки.

О том как устанавливать библиотеки, Вы можете ознакомиться на странице Wiki — Установка библиотек в Arduino IDE.

Видео:Теперь можно управлять ЛЮБЫМ прибором с помощью одного ЛЮБОГО пульта с кнопками.Скачать

Теперь можно управлять ЛЮБЫМ прибором с помощью одного ЛЮБОГО пульта с кнопками.

Схема подключения ИК-приёмника:

Управление моторами с помощью ик пульта

Trema ИК-приёмникTrema Shield
вывод Gчёрная колодка «Земля»
вывод Vкрасная колодка «+5V»
вывод S12 цифровой вывод (D10)

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

Видео:Управляем Ардуино ИК пультом!Скачать

Управляем Ардуино ИК пультом!

Схема подключения робота QUADRUPED:

Соберите механику, подключите Trema Shield, сервоприводы и откалибруйте робота, как это описано на странице Сборка QUADRUPED. Электроника + Калибровка. Далее на боковую панель установите ИК-приёмник.

СервоприводыTrema Shield
1 конечностьГоризонтальный сустав (№ 0)вывод 4 на белой колодке
Вертикальный сустав (№ 1)вывод 5 на белой колодке
2 конечностьГоризонтальный сустав (№ 2)вывод 6 на белой колодке
Вертикальный сустав (№ 3)вывод 7 на белой колодке
3 конечностьГоризонтальный сустав (№ 4)вывод 8 на белой колодке
Вертикальный сустав (№ 5)вывод 9 на белой колодке
4 конечностьГоризонтальный сустав (№ 6)вывод 10 на белой колодке
Вертикальный сустав (№ 7)вывод 11 на белой колодке

Вы можете изменить выводы 4-11 для подключения сервоприводов на любые другие, указав их в скетче при объявлении массива объектов PIN_SERVO[8] . Трехпроводные шлейфы сервоприводов устанавливаются следующим образом:

  • Оранжевый провод подключается к выводу на белой колодке.
  • Красный провод подключается к выводу на красной колодке.
  • Коричневый провод подключается к выводу на чёрной колодке.

Видео:Уроки Arduino. Управление моторами с библиотекой GyverMotorСкачать

Уроки Arduino. Управление моторами с библиотекой GyverMotor

Код программы для чтения сигналов с пульта:

Данный скетч пригодится вам в том случае, если вы решите взять любой другой ИК-пульт вместо нашего. В этом случае вам надо будет определить коды кнопок, используя данный скетч, а затем указать их уже в основном коде QUADRUPED, там где указана функция IR.data .

Видео:Дистанционное управление 8 нагрузками по ИК каналу.Пульт ДУ и приемникСкачать

Дистанционное управление 8 нагрузками по ИК каналу.Пульт ДУ и приемник

Код программы для робота QUADRUPED:

Значения массива CENTR_ANGLE должны быть изменены (откалиброваны) на действительные углы сервоприводов в градусах, при которых все суставы робота находятся в центральном положении. Это выполняется с использованием калибровочного скетча, как описано на странице Сборка QUADRUPED. Электроника + Калибровка.

Получение данных с пульта

  • Данный блок начинается с оператора if в условии которого написано IR.check(true) . Это условие верно, если с ИК-пульта приходят пакеты на ИК-приёмник.
  • Далее следует оператор if условием которого является IR.data == . Далее указан код кнопки ИК-пульта. Если код совпадает, то выполняется код в теле оператора, код которого совпал с принятым от ИК-пульта.
  • При выполнении кода в теле оператора if так же обновляется значение счётчика времени FlgTime , который в последствии будет использоваться для ограничения времени на получение пакета (в скетче выше время получения указано ниже в виде (FlgTime + IR_SIGNAL_WAITING_TIME) > millis()) .

В данном коде управление роботом осуществляется через функции:

  • joint_move_func — установка одного сустава выбранной конечности в значение от -100 до 100.
    • Если указать joint_move_func(4,1,100) , то у 4 конечности, вертикальный сустав, поднимется максимально вверх.
    • Если указать joint_move_func(4,1,-100) , то у 4 конечности, горизонтальный сустав, сдвинется максимально влево.
    • Если указать limb_step_func(4,x,0,50) , где x будет увеличиваться от 0 до 255, то 4 конечность совершит следующие действия: плавный сдвиг внизу назад, резкий подъём, быстрый проход сверху вперёд и резкий спуск, остановившись в той же позиции с которой начинались движения. Что похоже на реальное движение лап при движении вперёд.
    • Если указать limb_step_func(4,x,0,50) , где x будет уменьшаться от 255 до 0, то 4 конечность совершит те же действия, но в обратном порядке. Что похоже на реальное движение лап при движении назад.
    • Предпоследний аргумент функции можно указывать в пределах от -100 до +100, он будет ограничивать амплитуду движений левых или правых конечностей, что вызовет заворачивание (поворот) влево (-100. 0) или вправо (0. +100).
    • Последний аргумент функции можно указывать в пределах от 0 до 100, это высота подъёма корпуса в процентах, если указать 0, то QUADRUPED будет «ползти», чем больше значение, тем выше QUADRUPED. Средний подъём корпуса соответствует значению 50.
    • Если указать limb_step_fun(1,X,0,50) , где x будет увеличиваться от 0 до 255, то все конечности совершат действия при которых QUADRUPED пройдёт вперёд и прямо на один полный шаг, а его конечности вернутся в ту же позицию с которой этот шаг начинался.
    • Если указать limb_step_func(1,X,0,50) , где x будет уменьшаться от 255 до 0, то все конечности совершат те же действия, но в обратном порядке. Следовательно, QUADRUPED пройдёт тот же шаг но назад.
    • Если указать limb_step_func(0,X,0,50) , где x будет увеличиваться от 0 до 255, то все конечности совершат действия при которых QUADRUPED выполнит разворот вправо на один полный шаг, а его конечности вернутся в ту же позицию с которой этот разворот начинался.
    • Последний и предпоследний аргументы выполняют те же действия что и аргументы функции limb_step_func той же позиции, а именно, выполняют заворот (поворот) и поднятие корпуса.
    • Вы можете дополнить функцию gait_func придумав свои варианты походок.

    Видео:15 - Управление устройствами с помощью ИК пульта дистанционного управленияСкачать

    15 - Управление устройствами с помощью ИК пульта дистанционного управления

    Управление:

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

    Видео:Управление двигателем постоянного тока. Схема управления мотором Ардуино проекты.Скачать

    Управление двигателем постоянного тока. Схема управления мотором Ардуино проекты.

    Робот-автопилот с управлением и программированием с ИК пульта

    Управление моторами с помощью ик пульта

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

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

    Управление моторами с помощью ик пульта

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

    Управление моторами с помощью ик пульта

    Электронной платформой для самоделки будет всем известная Arduino nano, точнее, её недорогой китайский аналог. Так же мне понадобились:
    1. Arduino Nano
    2. Мотор-редуктор с колесами для Ардуино 2шт. (ссылка на Алиэкспресс)
    3. Драйвер мотора MX1508 1шт. (ссылка на Алиэкспресс)
    4. Ультразвуковой датчик для измерения расстояния HC-SR04 1шт. (ссылка на Алиэкспресс)
    5. Зарядный модуль для литий-ионных аккумуляторов TP4056 1шт. (ссылка на Алиэкспресс)
    6. Повышающий преобразователь напряжения MT3608 1шт. (ссылка на Алиэкспресс)
    7. Модуль инфракрасного приемника 1шт. (ссылка на Алиэкспресс)
    8. Фоторезистор GL5528 (20кOм) 1шт. (ссылка на Алиэкспресс)
    9. Светодиоды 2шт.
    10. Пьезоизлучатель, зуммер 1шт. (ссылка на Алиэкспресс)
    11. Выключатель 1шт.
    12. Аккумулятор литий-ионный 18650 1шт. (ссылка на Алиэкспресс)
    13. Провода.
    14. Еще одно маленькое колесо.
    15. ИК пульт дистанционного управления.

    1. Паяльник.
    2. Отвертка.
    3. Нож.
    4. Кусачки.
    5. Пилка.
    6. Клеевой пистолет.

    Управление моторами с помощью ик пульта

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

    Например, сам контроллер я решил установить под сиденьем

    Управление моторами с помощью ик пульта

    Управление моторами с помощью ик пульта

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

    Управление моторами с помощью ик пульта

    Управление моторами с помощью ик пульта

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

    Управление моторами с помощью ик пульта

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

    Управление моторами с помощью ик пульта

    Светодиоды, имитирующие фары — в передней части

    Управление моторами с помощью ик пульта

    Управление моторами с помощью ик пульта

    Там же будет установлен фоторезистор

    Управление моторами с помощью ик пульта

    И сверху расположатся датчик расстояния и инфракрасный приемник

    Управление моторами с помощью ик пульта

    Управление моторами с помощью ик пульта

    Собирать будем по следующей схеме:

    Управление моторами с помощью ик пульта

    Здесь АКБ Li-ion 18650 – это аккумуляторная батарея питающая устройство. Для заряда батареи и защиты от переразряда, она подключается к схеме, через контроллер TP4056 на выводы B+ и B-. Далее с выходов контроллера TP4056 напряжение подается на повышающий преобразователь MT3608, где поднимется с 4.2 до 5 В, а также на драйвер моторов MX1508. И уже с выходов MT3608, питание подается на контроллер Ардуино nano и на подключенные к его пинам датчики.

    Собственно, из датчиков мы имеем на борту только три: это ультразвуковой датчик расстояния, датчик освещенности в виде фоторезистора и инфракрасный приемник для управления роботом с ИК пульта. Фоторезистор подключен к аналоговому пину А6 на Ардуино, с подтягивающим резистором 10 кОм на массу. А датчик расстояния к цифровым пинам D10 и D12, на контакты trig и echo, соответственно. Инфракрасный датчик подсоединен к цифровому пину D8.

    Помимо датчиков к Ардуино подключены также входящие контакты драйвера моторов IN1, IN2, IN3, IN4, на пины: D5, D4, D6, D7, соответственно. Пьезо пищалка для звукового сопровождения — пин D11. И два красных индикационных светодиода, для подсветки робота в темноте. Светодиоды подключаются анодами к цифровым пинам D2 и D3, и катодом к GND c ограничивающим резистором на 160 Ом.

    Управление моторами с помощью ик пульта

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

    Чтобы паять контакты прямо к Ардуино, и тем самым сэкономить пространство и обеспечить компактность расположения элементов внутри робота, мне пришлось удалить все ножки с контроллера.

    Управление моторами с помощью ик пульта

    После чего я приступил к распайке .

    Управление моторами с помощью ик пульта
    Управление моторами с помощью ик пульта
    Управление моторами с помощью ик пульта
    Управление моторами с помощью ик пульта
    Управление моторами с помощью ик пульта

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

    Управление моторами с помощью ик пульта
    Управление моторами с помощью ик пульта

    Соединив все модули согласны схеме,

    Управление моторами с помощью ик пульта

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

    Управление моторами с помощью ик пульта
    Управление моторами с помощью ик пульта

    Аккумулятор будет располагаться сзади, над моторами. Я подпаял провода прямо к батарее, хоть это делать и нежелательно, но так всё будет немного компактнее.

    Управление моторами с помощью ик пульта
    Управление моторами с помощью ик пульта
    Управление моторами с помощью ик пульта

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

    Управление моторами с помощью ик пульта
    Управление моторами с помощью ик пульта

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

    Управление моторами с помощью ик пульта

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

    Управление моторами с помощью ик пульта

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

    Управление моторами с помощью ик пульта
    Управление моторами с помощью ик пульта

    Получился вот такой робот, и он уже почти готов к работе.

    Управление моторами с помощью ик пульта

    Осталось составить скетч в Arduino IDE и залить его в контроллер.

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

    (Более подробно об этом сказано в самом скетче)
    И еще по поводу ИК управления. Поскольку ваш пульт ДУ почти наверняка будет отличаться от моего,

    Управление моторами с помощью ик пульта

    то и коды клавиш у вас будут другими. Определить их можно раскомментировав строчку:

    Находящуюся внутри функции и открыв «монитор порта».
    При нажатии кнопок на ИК пульте в мониторе появятся соответствующие цифры. Их нужно будет вставить после команд:

    на место «********», которые ответственны за обработку сигналов от нужных кнопок. Будьте внимательны, операторы в программе встречаются аж целых 4 раза.
    Скачать скетч можно здесь.

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

    Управление моторами с помощью ик пульта

    Поэтому я заменил их на одинарное.

    Управление моторами с помощью ик пульта

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

    Вкратце программа работает следующим образом:

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

    1.Ручное управление. Полный контроль передвижений робота пультом. Куда жмем, туда и едет.

    2.Простой автопилот. В этом режиме робот сам определяет направление своего движения, избегая при этом столкновений с близкими препятствиями с помощью метода «отъезд назад, разворот» и т.д..

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

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

    И еще 2 режима для программирования действий в режимах 3 и 4.

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

    Из доступных действий в него заложены:

    1.Движение вперед.
    2.Назад.
    3.Вперед и направо, налево.
    4.Развороты на месте.
    5.Движение назад с поворотом направо или налево.
    6.Остановка.

    Выполнение роботом команд задаваемых с ИК пульта:

    Управление роботом с пульта:

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

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

    Программирование с пульта:

    Робот катается сам, реагируя на препятствия серией из 20 команд, введенных с ИК пульта:

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

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

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

    Более подробно о том, как управлять и программировать робота описано в комментариях к скетчу.

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

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

    Управление моторами с помощью ик пульта

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

    Если говорить о затратах, то на покупку всех необходимых модулей у меня ушло меньше 1Круб. Аккумулятор, пульт, светодиоды и ИК приемник были добыты из разного хлама.

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

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


    🔥 Видео

    ИК-управление на ардуино с любого пультаСкачать

    ИК-управление на ардуино с любого пульта

    Как ИК пультом управлять мощной нагрузкой на расстоянииСкачать

    Как ИК пультом управлять мощной нагрузкой на расстоянии

    Пульт для всего из ничего)Скачать

    Пульт для всего из ничего)

    Урок 13. Дистанционное управление с ИК-пульта, машинкой Roborace на базе ArduinoСкачать

    Урок 13. Дистанционное управление с ИК-пульта, машинкой Roborace на базе Arduino

    Теперь можно управлять ЛЮБЫМ прибором с помощью одного пульта ДУ! Одна из самых полезных самоделок!Скачать

    Теперь можно управлять ЛЮБЫМ прибором с помощью одного пульта ДУ! Одна из самых полезных самоделок!

    КАК СДЕЛАТЬ МАШИНКУ С УПРАВЛЕНИЕМ от ИК пульта ЛЮБОГО ТЕЛЕВИЗОРА / How to make a car with IR controlСкачать

    КАК СДЕЛАТЬ МАШИНКУ С УПРАВЛЕНИЕМ от ИК пульта ЛЮБОГО ТЕЛЕВИЗОРА / How to make a car with IR control

    Управление Ардуино с помощью ИК приемника и пультаСкачать

    Управление Ардуино с помощью ИК приемника и пульта

    Подменяем пульт дистанционного управления при помощи ArduinoСкачать

    Подменяем пульт дистанционного управления при помощи Arduino

    Уроки Arduino - управление бесколлекторным моторомСкачать

    Уроки Arduino - управление бесколлекторным мотором

    ИК пульт управления ардуино, подключение пульта.Скачать

    ИК пульт управления ардуино, подключение пульта.
Поделиться или сохранить к себе:
Технарь знаток