Skip to main content
Version: FILS English

Joystick Controlled Remote Car

A mobile robot controlled in real time using an analog joystick and Rust firmware.

info

Author: Costin Chiriac
GitHub Project Link: https://github.com/UPB-PMRust-Students/fils-project-2026-CostinZXC

Description

The goal of this project is to build a responsive mobile robot based on the Raspberry Pi Pico 2W. The system allows the user to control the robot's movement (forward, backward, left and right) and speed using a 2-axis analog joystick. Additionally, the robot is equipped with an ultrasonic sensor to detect obstacles, ensuring a safer navigation by preventing collisions.

Motivation

I chose this project because I wanted to learn how to interface analog sensors (joystick) and digital distance sensors with motor actuators in a real time environment.

Architecture

Architecture Diagram

Log

  • Week 5 - 11 May
  • Week 12 - 18 May
  • Week 19 - 25 May

Hardware

  • Raspberry Pi Pico 2W: The main controller that handles ADC readings, distance calculation and PWM generation.
  • Analog Joystick: Provides the user input for direction and speed.
  • Ultrasonic Sensor (HC-SR04P): Measures the distance to objects in front of the robot for collision avoidance.
  • L298N Motor Driver: Acts as the power interface between the Pico and the DC motors.
  • DC Motors: Provide the physical movement for the robot chassis.

Schematics

Bill of Materials

DeviceUsagePrice
Raspberry Pi Pico 2W x2Main processing unit (RP2350)79.00 RON
L298N Motor DriverPower interface for DC motors10.00 RON
2-Axis Analog JoystickUser input for direction and speed5.00 RON
Ultrasonic Sensor (HC-SR04P)Obstacle avoidance10.00 RON
2WD Robot Chassis KitFrame, wheels and DC motors50.00 RON

Software

LibraryDescriptionUsage
rp235x-halHardware Abstraction LayerGPIO, PWM and ADC control for RP2350
embedded-halHardware abstraction traitsEnsures modularity and compatibility
defmtLogging frameworkEfficient real-time debugging
fugitTiming utilityPrecise PWM frequency for motor control
panic-probePanic handlerDebugging support via probe-rs
  1. ESPNOW RC Car using ESP32 | Joystick Control Remote Car using ESP32