Давайте подготовим необходимые компоненты
Радиоуправляемая модель - я выбрал ГАЗ-66 - можно заказать на ali-express
Общая схема примерно такая:
Используемые библиотеки
Переходим к самому интересному (для меня) - к программированию.
Модуль взаимодействия с IR пультом
- line 10: инициализируем логи для модуля
- line 21: описываем структуру нашего управляющего сообщения
- code2Btn & code2Str конвертируем raw-code с пульта во что-то более понятное
- loop считываем данные и посылаем сообщение с нажатой кнопкой в шину данных
Модуль управления серво мотором
Это наш руль.
Самый интересный метод в этом модуле - on_receive.
Получаем ir_receiver_message из нашей шины данных и, если нажаты кнопки Left или Right, пытаемся управлять передники колесами нашей машинки.
Модуль управления электродвигателем
Так же как и в предыдущем модуле - вся магия в методе on_receive.
Если на ик-пульте зажаты кнопки UP или DOWN пытаемся раскрутить колеса машины вперед или назад. Чтобы это выглядело более-менее мягко создан массив SPEED_INDEX c шагами скорости.
Приложение
И в конце создаем наше приложение, в котором создаем и и инициализируем наши модули.
Компилируем и заливаем наш код в Arduino Uno, подключаем машину и наслаждаемся результатом.
Исходники можно найти здесь
Первая версия системы управления машиной готова. Основной недостаток - управление через ИК пульт. В следующей версии давайте попробуем улучшить управляемость и... заодно перейдем на более интересные, с точки зрения возможностей, микроконтроллеры: esp8266 & esp32
#arduino #aliexpress