CS200, or Programming With a Purpose, is the second course in the AHS Computer Science Pre-Professional Program. It is a project-based and team-oriented class, where we worked in an Agile-SCRUM environment on several projects, which would be customized by each team to progress toward a final goal. My team's goal was to build a robot that could run autonomously on a path by live-processing an image stream from a camera attached to its front, which would capture the edges of the path. I was the scrum master of the team, and I led development in languages including Python, Java, HTML, and JavaScript, as well as modules such as Flask, OpenCV, Java Swing, Logger, and Numpy.
Here is a summary of the contents of this repository:
Assembled a robot with a Raspberry Pi 3b+ processor and programmed it to move forward, backward, left, and right using an object-oriented, abstracted structure involving both a Motor and Robot class. For this project, the robot had to move perfectly forward in a straight line for 2 feet, meaning that we had to balance its left and right motors to ensure its path would not be skewed. We also had to find a conversion factor for how many seconds the motors had to be active for the robot to move 1ft.
The code for this project can be found in the Project 1 Folder.
For this project, we had to further test our robot's precision by programming it to successfully complete a preset maze path. This allowed us to tune our robot's ability to turn and move straight so that the following projects would be more successful.
The code for this project can be found in the Project 2 Folder.
We created a Flask API to allow users to run the robot through any browser and any computer that is connected to the same WiFi as the Raspberry Pi. View our documentation here.
The code for this project can be found in the Project 3 Folder.
This allowed for the robot to be controlled using a UI built using Java Swing. This UI was later removed, as we decided to use a web UI instead.
The code for this project can be found in the Project 4 Folder.
The code for this project can be found in the Project 5 Folder.
The code for this project can be found in the Project 6 Folder.
The code for this project can be found in the Project 7 Folder.
The code for this project can be found in the Non Robot Projects Folder.
The code for this project can be found in the Non Robot Projects Folder.
The code for this project can be found in the Non Robot Projects Folder.
The code for this project can be found in the Non Robot Projects Folder.
The code for this project can be found in the Non Robot Projects Folder.