Assigned by the George Fox University College of Engineering, the XRP Robot introduces first-year students to Python programming, electronics, sensor integration, and autonomous robotics through the development of the robot.
The project began with learning Python as a programming language and using breadboards to connect and test individual electronic components. Students are asked to work with each sensor individually to understand its function, interpret the data it produced, and learn how a Raspberry Pi Pico could be programmed to collect sensor data, control hardware, and diagnose problems. As the project progressed, the individual components were combined into a complete robotic system consisting of an IMU, color sensor, rangefinder, left and right proximity sensors, and independently controlled motors with encoder feedback.
For the final portion of the project, my teammate and I developed a Python program that allowed the robot to autonomously navigate a multi-room maze using real-time sensor feedback. We created a finite-state machine using Python lists and dictionaries to organize navigation commands and control transitions between actions such as turning, driving specific distances, following walls, detecting openings, and identifying colors. The robot used its IMU to track heading and correct its direction, proximity sensors to follow walls and detect doorways, a rangefinder to determine stopping distances, motor encoders to measure movement, and a color sensor to identify and store information that influenced later navigation decisions.
Throughout the project, my teammate and I continually tested, debugged, and modified our program as the individual systems were integrated. By the end of the project, we had combined the programming, electrical, and mechanical components into a robot capable of making decisions and autonomously completing the course.
We managed to organize and code efficiently to incorporate only 550 lines of code, while other teams and 1500+.
As part of the creative aspect for the project students are asked to add their own 'touch' of creativity. My teammate and I followed our common drum theme and I created a system that had an audio amplifier, button, and speaker. I soldered the boards, capacitors, resistors, and wires to the main Raspberry Pi Pico. Next we coded a few lines that made the speaker play any track after a button press by the user.
Below is pictures and a video of our final robot, button, one version of the maze configuration, some code, and a brief video showing the speaker.