RoboKart
Developed a phone-controlled robot using Raspberry Pi Pico 2W.
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.
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
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
Bill of Materials
Device | Usage | Price |
---|---|---|
Raspberry Pi Pico 2W | Microcontroller with Wi-Fi for communication with the phone application | 39.66 lei |
L298N Dual Motor Driver Module Red | Used for sensor rotation | 10.99 lei |
Micro Servo Motor SG90 180° | Controls steering | 11.99 lei x 2 |
DC motor 3V-6V with 1:48 reducer | Drives the robot wheels | 7.14 lei x 2 |
Ultrasonic sensor HC-SR04 | Detects objects | 6.49 lei |
Male-to-Male cables | Connects components | 4.99 lei |
Male-to-Female cables | Connects components | 9.99 lei |
Female-to-Female cables | Connects components | 9.99 lei |
Breadboard | Puts all pieces together | 11.99 lei |
Software
Library | Description | Usage |
---|---|---|
embassy | Embassy | A Rust library designed for for constructing embedded applications |
gpio | GPIO | Used for controlling the pins |
pwm | Pulse Width Modulation | Used for controlling the rotation of the servomor |
wi-fi | Wi-Fi connection | Used for creating an access point for TCP connections for the controller |