1.Understand the working principles of a self-balancing robot.
2.Learn how to use the M5Stack Bala2 and Waijung2 for building and programming a self-balancing robot.
3.Develop a control algorithm for the robot’s movements.
4.Create a web application for controlling the robot.
Welcome to our tutorial on building a Self-Balancing Robot using M5Stack Bala2 and Waijung2. In this tutorial, we will guide you through the exciting process of creating a self-balancing robot, a fascinating piece of technology that maintains its balance using a gyroscopic stabilization system.
We will be using the M5Stack Bala2, a stackable balance bot kit powered by ESP32. It’s a small but powerful robot that uses a two-wheel drive and a 9-DOF (degree of freedom) IMU (Inertial Measurement Unit) for maintaining balance. The robot is controlled using Waijung2, a blockset coder for MATLAB Simulink, which allows us to program the robot in a simple and intuitive way.
By the end of this tutorial, you will have a fully functioning self-balancing robot and a solid understanding of how it works. So, let’s get started on this exciting journey of robotics and programming!
1.Matlab (Release R2022b) with the followings toolboxes and blocksets:
a.Simulink
2.Waijung 2 for ESP32 (24.1a)
3.M5Stack BALA2 FIRE balancing robot
4.SD card (Maximum size 16GB)
1.Reading IMU Sensor Data: Develop a Simulink model to read Inertia Measurement Unit (IMU) sensor data and calculate tilt (roll) angle using Waijung2 custom code.
2.Setting Wheel Speed: Understand how to set the speed of the Bala2 wheels (motor) using Waijung2.
3.Reading Wheel Speed using Encoder Data: Understand the process of reading encoder data using Waijung2 and how to use this data to calculate the wheel speed. This involves implementing the motor speed filter
4.Implementing PID Controller on Simulink: Discover how to implement a PID controller on Simulink for precise control of the robot.
5.Developing the Balancing Algorithm and Tuning the PID Controller: Learn to develop a balancing algorithm and tune the PID controller for optimal performance. This section includes testing the algorithm.
6.Developing and Testing Movement Control Algorithm: Learn how to develop and test a control algorithm for various robot movements (forward, backward, left turn, and right turn) using Hardware in the Loop (HIL) tests.
7.Creating a Web Application: Create a web application to control the robot using the drag and drop technique.
8.Developing a Stand-alone System: Develop a Stand-alone system that integrates the control algorithm and a web application for monitoring and controlling the system via the web application.