From 1227019eb6b588f40e8687635a60e5c707136238 Mon Sep 17 00:00:00 2001 From: carter Date: Thu, 3 Sep 2026 08:58:02 -0400 Subject: [PATCH 1/2] Update README.md --- README.md | 130 ++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 127 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 6ec8c6c..e66c936 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,130 @@ -![](https://img.shields.io/github/downloads/EZ-Robotics/EZ-Template/total.svg) -![](https://github.com/EZ-Robotics/EZ-Template/workflows/Build/badge.svg) -[![License: MPL 2.0](https://img.shields.io/badge/License-MPL%202.0-brightgreen.svg)](https://opensource.org/licenses/MPL-2.0) +# 11254Y Robot Code + +This repository contains the software for my VEX V5 competition robot. The project is written in C++ using **PROS** and is built on the **uncompiled/source version of EZ-Template**. + +The goal of this project is to provide a modular structure for controlling the robot's drivetrain and mechanisms while keeping individual mechanisms easy to reuse and modify. + +## Technologies + +* **C++** +* **PROS** +* **EZ-Template** — source/uncompiled version +* **VEX V5** + +## Project Structure + +The project is organized similarly to the structure used by EZ-Template. Mechanism systems are separated into their own header and source files so they can be developed and reused independently. + +### EZ-Template + +EZ-Template provides the foundation for the robot code, including systems such as: + +* Drivetrain control +* Autonomous routines +* Autonomous selector +* PID control +* General robot utilities + +The source version of EZ-Template is included directly in the project rather than using it only as a precompiled library. This allows the template's code to be modified and extended as needed. + +## Custom Systems + +I have added several custom mechanism-control systems following the same general structure and organization used by EZ-Template. + +### Color Sorter + +The color sorter controls the robot's ring-sorting mechanism. + +It is designed to handle the logic required to detect and sort rings based on their color while integrating with the rest of the robot's control system. + +### Pneumatic Control + +The pneumatic control system provides an organized way to control the robot's pneumatic mechanisms. + +Instead of handling individual pneumatic outputs throughout the main robot code, pneumatic mechanisms can be controlled through their own class and functions. + +### Rotation Mechanisms + +The rotation-control system is designed for mechanisms that use a VEX V5 Rotation Sensor to determine their position. + +Mechanisms can define multiple preset positions and cycle between those positions. The system also provides control functions for moving and maintaining the mechanism at its desired position. + +For example, a mechanism can have states such as: + +```text +State 0 → 0° +State 1 → 26.5° +State 2 → 45° +``` + +The mechanism can then cycle between these states without requiring the state-management code to be rewritten for every mechanism. + +## Design Philosophy + +One of the main goals of this project is **modularity**. + +Rather than putting all robot functionality into `main.cpp`, individual systems are implemented as classes with their own `.hpp` and `.cpp` files. + +A typical mechanism is structured like this: + +```text +include/ +└── EZ-Template/ + └── ... + +src/ +└── EZ-Template/ + ├── ... + └── rotation_mechanisms/ + ├── arm_mech.cpp + └── ... +``` + +The header files contain the class declarations, while the `.cpp` files contain the implementation. + +This allows mechanisms to be instantiated and controlled from the main robot program without putting their implementation directly into `main.cpp`. + +## Using a Mechanism + +A mechanism can be created as an object and then controlled through its member functions. + +For example: + +```cpp +ArmMech arm_control; +``` + +Once the object exists, its functions can be called from the robot code: + +```cpp +arm_control.cycle_states(); +arm_control.reset_state(); +arm_control.arm_control(); +``` + +This keeps the main robot code focused on **what the robot should do** instead of how each individual mechanism works internally. + +## Development + +This project is actively developed for VEX Robotics competition use. The code may change as the robot's mechanical design, autonomous routines, and control systems are improved. + +Because the project uses the source version of EZ-Template, changes can be made directly to the template and custom systems can be integrated alongside it. + +## Credits + +### PROS + +This project uses PROS as the development environment and operating system for the VEX V5 brain. + +### EZ-Template + +EZ-Template is used as the foundation for the drivetrain and competition-code structure. Custom systems in this project are implemented using a similar organization and design approach. + +## License + +This project is intended for personal and educational use. If you reuse portions of this code, please give appropriate credit to the original authors of EZ-Template and PROS where applicable. + + ⚡️ **coding made ez** ⚡️ From 6d29d79cdd8c3390840712d3683e08d981cebcde Mon Sep 17 00:00:00 2001 From: carter Date: Thu, 3 Sep 2026 09:24:47 -0400 Subject: [PATCH 2/2] Update README.md --- README.md | 27 +++++++++------------------ 1 file changed, 9 insertions(+), 18 deletions(-) diff --git a/README.md b/README.md index e66c936..4721cc1 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # 11254Y Robot Code -This repository contains the software for my VEX V5 competition robot. The project is written in C++ using **PROS** and is built on the **uncompiled/source version of EZ-Template**. +This repository contains the software for team 11254Y's competition robot. The project is written in C++ using **PROS** and is built on the **uncompiled/source version of EZ-Template**. The goal of this project is to provide a modular structure for controlling the robot's drivetrain and mechanisms while keeping individual mechanisms easy to reuse and modify. @@ -26,16 +26,21 @@ EZ-Template provides the foundation for the robot code, including systems such a * General robot utilities The source version of EZ-Template is included directly in the project rather than using it only as a precompiled library. This allows the template's code to be modified and extended as needed. +Using the uncompiled version of EZ-Template also allows us the learn how the template was made and that lets us use the template more effectivly. ## Custom Systems I have added several custom mechanism-control systems following the same general structure and organization used by EZ-Template. +The costum control systems I've added are: +*Adjustable Color sensor class +*Adaptive Pneumatics controller +*Rotation sensor classes ### Color Sorter -The color sorter controls the robot's ring-sorting mechanism. +As of now the color sorter dosen't do anything on the robot but is in place if we ever need it. -It is designed to handle the logic required to detect and sort rings based on their color while integrating with the rest of the robot's control system. +It is designed to handle the logic required to detect and sort objects based on their color while integrating with the rest of the robot's control system. ### Pneumatic Control @@ -65,24 +70,10 @@ One of the main goals of this project is **modularity**. Rather than putting all robot functionality into `main.cpp`, individual systems are implemented as classes with their own `.hpp` and `.cpp` files. -A typical mechanism is structured like this: - -```text -include/ -└── EZ-Template/ - └── ... - -src/ -└── EZ-Template/ - ├── ... - └── rotation_mechanisms/ - ├── arm_mech.cpp - └── ... -``` - The header files contain the class declarations, while the `.cpp` files contain the implementation. This allows mechanisms to be instantiated and controlled from the main robot program without putting their implementation directly into `main.cpp`. +This method is much cleaner and easier to understand. ## Using a Mechanism