Лего машины с управлением по MQTT

В новогодние праздники у меня было свободное время и мне хотелось сделать 2 вещи:
1. Пройти обучение по Fusion 360 и научиться делать более сложные модели для 3д принтера;
2. Написать на JS интерфейс и API для управления игровой площадкой с Wi-Fi машинками;

Идея была в том, что пользователь подходит к столу, на котором несколько Wi-Fi машинок, и берет в руки пульт. С помощью веб-интерфейса на планшете он может переключаться между свободными машинами и управлять ими.

Lego машины с управлением по MQTT

Структура игровой системы

В качестве локального сервера взял RaspberryPi, поставил на него MQTT брокер. Все машинки подключаются к Wi-Fi, коннектятся к MQTT брокеру и держат соединение в ожидании команд.

Для управления использовал джойcтики от PlayStation3. Джойстик подключается по Bluetooth к RaspberryPi. На RaspberryPi есть скрипт, который отслеживает нажатия кнопок + положение джойстиков и отправляет эти данные в определенные MQTT каналы. Так происходит для каждого джойстика. Мы постоянно считываем действия всех игроков и постим их в свои каналы.

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

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

В результате можно быстро переключаться с машинки на машинку!

Lego машины с управлением по MQTT Lego машины с управлением по MQTT

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

Разработка шасси для лего 60083

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

Первый прототип для лего 60083 Первый прототип для лего 60083

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

Спаял шилд для подключения Wemos D1 Mini Спаял шилд для подключения Wemos D1 Mini

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

Lego машины с управлением по MQTT
Максим Захаров

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

Живое ядро на фестиваль «Outline 2024»
Живое ядро на фестиваль «Outline 2024»
Идея: Сделать огромную сферу из коры, при прикосновении к которой будут раздаваться звуки природы: шум дождя, пение птиц, ветер, гроза и т.д. Благодаря внутренним динамикам и большому объёму будет создаваться эффект реального глубокого звука.
Умная фанера. Выставка «Хаптика. Осязаемый мир»
Умная фанера. Выставка «Хаптика. Осязаемый мир»
Идея: Сделать умную фанеру - интерактивный стенд со звуками природы. Вы прикасаетесь к разным областям фанеры и она проигрывает звуки, которые были вокруг нее когда она ещё жила в лесу.
Подключение крана Neptun и счётчика воды к умному дому
Подключение крана Neptun и счётчика воды к умному дому
Идея: Разобраться как считывать данные с электронного счётчика воды и как управлять электрическим водяным вентилем. Сделать блок управления. Подключить к умному дому для удобного просмотра показаний счетчика и автоматизации.