Our robot completes all missions and scores 410 points in 4 runs. It usually takes about 2 minutes 10 seconds to complete all missions at a normal pace
Test run of the robot
Contents
The robot has:
2 large motors.
62.4mm x 20mm wheels.
2 medium motors located underneath the large motors.
2 color sensors are used to follow the line or calibrate the robot.
1 color sensor is facing upwards to select programs automatically, when attachment is placed on it.
1 gyro sensor.
Completes power plant and scores 25 points.
Collects energy units used in future runs.
Completes 10 missions and scores 170 points in under 40 seconds.
Foldable sliding “arm” takes up less space than usual sliding “arms.”
Self-adjusting mechanism makes the robot more reliable.
One-way gates are used to collect and hold energy units.
Completes 2 missions and scores 45 points, while the robot is doing a different run.
Saves about 15 seconds.
Uses pneumatics to drive and trigger mechanisms to activate different contraptions.
Completes 7 missions and scores 100 points.
Multiplexer turns 2 outputs into 4 controllable outputs.
Lower-release mechanisms are used to deliver energy units.
EV3 robots can be programmed using ev3 classroom, ev3 lab, or micropython ev3dev.
Ev3 classroom is a block-based language for beginners and younger learners with a simple drag-and-drop interface and pre-built programs and projects.
EV3 Lab is a visual programming language for middle and high school students with more powerful programming tools like text-based programming, variables, and functions.
MicroPython EV3Dev is a text-based language based on Python, designed for advanced users who want low-level hardware control and advanced programming concepts.
We selected MicroPython due to the potential it offers for developing more advanced projects.
The program structure includes a single class, the controller class.
The controller class contains three types of methods: setup methods, action methods, and combined methods.
Setup methods handle frequently used tasks, such as resetting motor angle and setting motor speed.
Action methods are primary actions the robot can perform, such as driving, turning, and following lines.
Combined methods are a combination of setup and action methods that we use to control the robot.
Some examples of combined functions include driving with acceleration and deceleration or following a line while turning a medium motor
The controller class is organized for easy modification and maintenance.
Data analysis
The program tests different PID values for the robot's turn movement, using a gyro sensor to measure the robot's angle of rotation.
The purpose of testing PID values is to find the optimal set of parameters that allow the robot to achieve the desired performance.
The code uses nested while loops to iterate through different combinations of PID values, turn angles, and speeds to test and print the results.
If the turn is completed successfully, the method returns False, and the loop proceeds to the next iteration. If the turn is not completed within 6 seconds, the method returns True and sets the error to 100.
The robot repeats the test three times with one set of parameters, and the loop iterates to the next PID, turn or speed values.
The results can be imported into a spreadsheet app to calculate the average of each 3 runs and then of each PID value combination.
The Controller class includes a data logging method to keep track of data from each motor and sensor of the robot during missions.
The purpose of data logging is to analyze the data and identify possible errors or improve the robot's performance.
The data logging method retrieves and prints out the angles of each motor, the angle of rotation from the gyro sensor, and the reflection values from the color sensors.
The data can be analyzed in various ways, such as importing it into a spreadsheet to calculate averages, make graphs, or detect patterns that could indicate a need for adjustments or maintenance.