Лего машины с управлением по MQTT
В новогодние праздники у меня было свободное время и мне хотелось сделать 2 вещи:
1. Пройти обучение по Fusion 360 и научиться делать более сложные модели для 3д принтера;
2. Написать на JS интерфейс и API для управления игровой площадкой с Wi-Fi машинками;
Идея была в том, что пользователь подходит к столу, на котором несколько Wi-Fi машинок, и берет в руки пульт. С помощью веб-интерфейса на планшете он может переключаться между свободными машинами и управлять ими.
В качестве локального сервера взял RaspberryPi, поставил на него MQTT брокер. Все машинки подключаются к Wi-Fi, коннектятся к MQTT брокеру и держат соединение в ожидании команд.
Для управления использовал джойcтики от PlayStation3. Джойстик подключается по Bluetooth к RaspberryPi. На RaspberryPi есть скрипт, который отслеживает нажатия кнопок + положение джойстиков и отправляет эти данные в определенные MQTT каналы. Так происходит для каждого джойстика. Мы постоянно считываем действия всех игроков и постим их в свои каналы.
Есть база данных, которая хранит связи контроллер+машинка, а также какие машинки сейчас онлайн и доступны для игры.
Там жа на RaspberryPi крутиться сайт, на который можно зайти, выбрать свой контроллер и из выпадающего списка выбрать любую свободную машинку для игры. Сайт через API в базе отметит, что машинка привязана к вашему контроллеру. Также через API на машинку отправляетcя команда, какой пульт теперь она должна слушать.
В результате можно быстро переключаться с машинки на машинку!


За основу взял набор Lego 60083 и напечатал к нему крепления для моторов.

На шилде для nodeMCU собрал первый прототип машинки.


Спаял шилд для подключения Wemos D1 Mini и всю электронику убрал в кузов.


Финальный вариант визуально почти не отличался от оригинальной машинки!

Другие статьи


