Для начала выделить из бюджета баксов сто. Должно хватить на все про все.
Купить: шасси с мотор-колесами, собственно, центральный контроллер (в моем случае Raspberry Pi Pico W с поддержкой WiFi — будем делать один из каналов управления через него), холдер с расширителем контактов для него, драйвер управления моторами L298N (ибо напрямую с контроллера током движков рулить вряд ли правильно), несколько аккумуляторов 18650 (я питаю всю схему через драйвер L298N от трех, соответственно нужна корзина под три. Драйвер может всасывать до 35V), набор цветных проводов с разъемами «папа-папа», «папа-мама», «мама-мама».
Подключаем моторы колес на каждой стороне тележки параллельно друг другу и выводим одну сторону на зажимы OUT1, OUT2 драйвера L298N, вторую сторону на зажимы OUT3, OUT4. Внимательно с ориентацией моторов, прикинуть направление вращения. Когда будем пробовать, возможную ошибку устраним, но первый запуск вверх колесами надо делать. Оба мотора на каждой стороне будут работать синхронно. Поворот тележки будет осуществляться по бортовой схеме. Стороны будем называть в дальнейшем А и B.

Крепим (можно термоклеем) холдер контроллера к доступной поверхности тележки.

Плюс с батареи через микровыключатель питания (клеим в удобное место) подаем на зажим 12V драйвера L298N, минус на зажим GND. Сразу соединяем зажим GND драйвера L298N c любым контактом GND контроллера, а зажим +5V с контактом VBUS контроллера (нога 40).

Теперь надо организовать управление двигателями сторон A и B. Для этого в контроллере L298N шесть контактов. Две группы по три на канал. расположены слева направо — сигнал ШИМ канала A, включение OUT1, включение OUT2, включение OUT3, включение OUT4, сигнал ШИМ канала B. Разное состояние в парах OUT1/OUT2 и OUT3/OUT4 вызовет вращение, в моторов соответствующей стороны в направлении, определяемом состоянием пары. Одинаковое логическое значение в парах прекращает вращение. Скорость и момент вращения определяются сигналом ШИМ соответствующего канала. Для упрощения коммутации я применил цветные провода (слева направо): ШИМ A коричневый, IN1 красный, IN2 оранжевый, IN3 желтый, IN4 зеленый, ШИМ B синий. Соединяем коричневый на GPIO6 контроллера, синий на GPIO7, красный на GPIO10, оранжевый на GPIO11, желтый на GPIO12, зеленый на GPIO13.

Первый канал управления тележкой — инфракрасный пульт. Берем инфракрасный приемник из комплекта и соединяем выводы следующим образом. Вывод приемника VCC (+3,3V) — красный провод, соединяем с выводом 3V3_OUT, GND (черный) с любым выводом GND контроллера, вывод OUT (белый) с выводом GPIO8 контроллера.

Подключаем двухстрочный LCD дисплей. Вывод GND (черный) на любой GND контроллера, VCC дисплея (красный) на VSYS (+5V) контроллера, SDA (серый) на GPIO0 контроллера, SLC (белый) на GPIO1 контроллера.

Подключаем сервомотор. У сервомотора три провода. Черный или коричневый провод – для подключения к земле (GND), красный – для подачи питания, подключаем к контакту VBUS платы Raspberry Pi Pico, желтый или оранжевый – для подачи управляющего импульсного сигнала, подключаем к контакту GPIO2 платы, а земля сервомотора – к земле платы.
Кнопка «мягкий RESET». Замыкаем ей вывод RUN/RESET контроллера с его любым выводом GND. Служит для перезапуска Raspberry Pi Pico без общего сброса питания. В цепь общего питания ставим двухпозиционный выключатель.

В целом получается нечто подобное:

Далее о программном обеспечении.
В Raspberry Pi Pico, заряженный MicroPython с поддержкой библиотеки ir_rx , загоняем файлы из архива примерно следующего содержания (обратить внимание на соответствие пинов).
Для отправки комментария необходимо войти на сайт.