/remote-controlled-robot

Small ESP32 wheeled robot remote controlled using an app on a Steamdeck

Primary LanguagePythonMIT LicenseMIT


Mosquitto Roboto Steamo Docko

The project is a small ESP32 wheeled robot remote controlled using an app on a SteamDeck

📃 Table of content

🎮 Gameplau

The game is simple, you have to control the robot using the SteamDeck's joysticks. The left joystick controls the robot's speed and direction, while the right joystick controls the robot's turret.

Here is the video of the gameplay:

20240510_151716.mp4

🚀 Getting started

Start the MQTT broker

First, install docker and run the containers with:

docker compose up

This will boot both MQTTX and Mosquitto.

Then, connect to MQTTX at http://127.0.0.1:9002, and create a new connection with the following information:

  • Name: Mosquitto
  • Host: ws://, 127.0.0.1
  • Port: 9001
  • Username: mosquitto
  • Password: mosquitto
  • SSL: no

Finally, subscribe a new topic : robot/#. Now the MQTT broker is ready.

Start the robot

To start the robot, you need to install Thonny and the ESP32 MicroPython firmware. Then, open the robot.py file and run it on the ESP32.

Start the SteamDeck app

  • Switch to Desktop Mode on SteamDeck.
  • Install linuxbrew.
  • Install rust using linuxbrew and compile the project.
  • Copy kontroller.vdf into /home/deck/.local/share/Steam/controller_config (create the folder if it doesn't exist), rename it to game_actions_480.vdf.
  • Run kontroller on SteamDeck. This should open a new window, but your input can't be captured now. Close the window.
  • Start steam client on the Desktop Mode. In your library, you should find a game called Spacewar. Edit its input mapping.
  • Run the remote control app again, you should get the input you want.
  • Run also mosquitto on another computer, and connect to the same broker as the robot.

👨 Authors

We are a group of three creators.


@Bricklou

@jvondermarck

@Aisamet
Louis Bailleau Julien Von Der Marck Isamet