Skip to main content
Version: ACS CC

RoboKart

Developed a phone-controlled robot using Raspberry Pi Pico 2W.

info

Author: Girleanu Andrei Alexandru
GitHub Project Link: https://github.com/UPB-PMRust-Students/proiect-andreialex6

Description

My projects consists of developing a 2-wheeled robot that has in front of it a ball caster, using Raspberry Pi Pico 2W. The robot will be controlled with a phone application. I am also going to install a rotating sensor on the top of the robot that will send informations to the application about the observed obstacles such as the distance and direction untill objects.

Motivation

I always wanted to learn how to build a mini-car controlled by my phone. I find my ideea very interesting and I also think that it is a quite challenging project and, after a hard work, I am looking forward to play with the robot I created. It is also a useful project because, whenever you are bored, you can use the project as a matter of entertainment.

Architecture

UI: I am using a phone application connected via wi-fi to control the movement of the robort. On the phone, I also receive data about detected objects nearby the robot.

Components: The phone communicates through wi-fi with the microcontroller. Pico is connected with L298N, which has its own connection with the DC motors. Pico is also connected with the sensor and the servo motor.

Architecture diagram

Log

Week 27 April - 4 May

I thought about what improvements I could make to the main idea of ​​the robot. I researched how I could build a mini car, what materials I would need and which device to use to control it.

Week 4 May - 18 May

In these weeks, I bought all the hardware components and assembled the mini car. I also designed the case for the robot.

Week 18 May - 26 May

I implemented the software for the car, where I used a servo motor with a rotating sensor for gathering informations about objects. I also created a python application using Tkinter library for graphic interface that has 3 buttons: one for moving forward, one for moving back and one for stopping. The python application uses TCP requests to communicate with the pico. I also programmed the DC Motors.

Hardware

Hardware picture Robot picture

Raspberry Pi Pico 2W: Microcontroller with Wi-Fi integrated for the interraction of the application, acts as the central controller.
L298N Dual Motor Driver Module Red: Used for the DC Motors.
Micro Servo Motor SG90 180°: Controls the rotation of the sensor.
DC motor 3V-6V with 1:48 reducer: Drives the robot's wheels, providing high torque and controlled movement at low speeds.
Ultrasonic sensor HC-SR04: It detects the obstacles and sends information to the application.
Cables of all types, to connect the components: Male-to-Male, Male-to-Female, Female-to-Female.
Breadboard: Where components are assembled together.
Ball Caster: Used as a "front wheel".

Schematics

Schematic diagram

Bill of Materials

DeviceUsagePrice
Raspberry Pi Pico 2WMicrocontroller with Wi-Fi for communication with the phone application39.66 lei
L298N Dual Motor Driver Module RedUsed for sensor rotation10.99 lei
Micro Servo Motor SG90 180°Controls steering11.99 lei x 2
DC motor 3V-6V with 1:48 reducerDrives the robot wheels7.14 lei x 2
Ultrasonic sensor HC-SR04Detects objects6.49 lei
Male-to-Male cablesConnects components4.99 lei
Male-to-Female cablesConnects components9.99 lei
Female-to-Female cablesConnects components9.99 lei
BreadboardPuts all pieces together11.99 lei

Software

LibraryDescriptionUsage
embassyEmbassyA Rust library designed for for constructing embedded applications
gpioGPIOUsed for controlling the pins
pwmPulse Width ModulationUsed for controlling the rotation of the servomor
wi-fiWi-Fi connectionUsed for creating an access point for TCP connections for the controller
  1. Obstacle Avoiding Robot Car.