- What is Self Balancing Robot
- Purpose of Project
- Showcase
- Hardware
- Body Design
- How To Use
- If you want to PID Controll (Only PID Motor Controll) - ESP32 Nano
- Setback & Wrap Up
- To Do
- Acknowledgements
Self Balancing Robot is a robot that stands on its own like Segway. This Robot requires PID motor control and Gyro sensor, and we used L298N and MPU6050.
| Name | Role |
|---|---|
| raematchaaa | Control Motor, Hardware & Electric Devices, Sense MPU6050, DB |
| chohongki | GUI (QT), Read RFID, WIFI Socket, UART |
- Deal with
Acceleration, Gyroscopesensor likeMPU6050and input these values on control process. - Study PID and apply it to control Robot.
- Control the MCU wirelessly.
- Get familiarized with other MCUs than Arduino UNO
- Wireless Data Communication using Wifi AP
- PID control
- Access MPU6050 registries to get Acceleration and Gyroscope values
- Read RFID tags
- Remote Control using GUI
- Log Sensor Data into MySQL
- MCU : Espressif ESP32-S3 N16R8, Arduino Uno
- Gyro Sensor : GY-521 (MPU 6050)
- Motors (x2) : NP01D-288
- Motor Driver : L298N
- Wheels :
$\phi$ 66mm - Battery : 1.5V * 4
- RFID : MFRC522
Arduino > Tools > Board > Boards Manager > esp32 (Espressif)Arduino > Tools > Library Manager > MFRC522
- ESP32-S3
TX 17, RX 18
--------------------------
MPU6050
SCL 1
SDA 2
INTERRUPT 14
--------------------------
L298N
IN1 9
IN2 8
IN4 5
IN3 6
ENA 10 // Right Side Motor
ENB 4 // Left Side Motor
- UNO
RX 0
TX 1
--------------------------
MRFC522
RST_PIN 9
SS_PIN 10
- Build
uno_final/uno_final.inointo Arduino Uno - Build
esp32_final/esp32_final.inointo ESP32-S3
2-1. Connect ESP32-S3 with Serial and Press Reset to find out WIFI IP
2-2. Openmain.pyand fix IP on line 20 - Run
main.py
- Build
Balanced_Robot/Balanced_Robot.inointo ESP32 Nano
- Compatibility of hardware configuration with the planned function implementations was not throughly checked in advanced.
- Some libraries used during the test period were only available to Arduino Nano ESP32, and not to Esspressif ESP32-S3, causing code integration failures.
- Unsolved packet loss due to inadequate background knowledge in socket programming.
- Contrary to the prior expectation, heuristic (trial-and-error) method to determine PID values turned out to be inefficient considering the given amount of time and resources for this project.
- Inept soldering skills.
- Controlling motors by tuning PID requires depth knowledge in many fields as dynamics of the system and difference in tuning methods.
- It would be remarkable to be able to design model which can be expressed in mathematical equations such can lead to model-based tuning to control PID instead of guess and check method.
- Reading and analyzing hardware specifications to choose fit materials for the projects and to discover how to use them are crucial.
- Every pin should be soldered in place.
- This project enlightened the team on the subject of data communications and computer networks.
- Integrate the code seamlessly.
- Add MPU6050 monitoring graph on the controller UI.
- Add keylogger interface for both UI and database.
- Develop specific real-life application of this robot.
- Revamp socket communication.





