# 65266 Lego Dynamics - UNEARTHED Season Robot Code
**Competitive Robotics Code for FLL SUBMERGED℠ Season**



---
## Project Overview
Welcome to the official code repository for **Team 65266 - Lego Dynamics**! This repository contains all the Pybricks code powering our robot through the UNEARTHED season missions. Our modular approach allows for flexible mission execution and quick color-sensor-based run selection.
---
## Robot Hardware
### Meet Optimus Prime III
| Component | Specification |
|-----------|--------------|
| **Robot Name** | Optimus Prime III |
| **Firmware** | Pybricks |
| **Attachment Motors** | 2x Large Motors (Ports C & D) |
| **Drive Motors** | 2x Small Motors (Ports A & B) |
| **Sensors** | Up-facing Color Sensor (Quick Start) |
| **Attachments** | Multiple mission-specific tools |
### Motor Configuration
- **Port A**: Left Drive Motor (Small)
- **Port B**: Right Drive Motor (Small)
- **Port C**: Left Attachment Motor (Large)
- **Port D**: Right Attachment Motor (Large)
---
## Code Structure
Our codebase is organized for maximum efficiency and modularity:
```
Repository
┣ run_1.py # Individual mission runs
┣ run_2.py
┣ run_3.py
┣ ...
┗ masterFile.py # 🎯 Combined master file with color-start logic - this changes periodically as we release new versions. Check this README if you are unsure what code should be loaded on the robot.
```
### Workflow
1. **Individual Run Files** → Contain specific mission sequences
2. **Script Combination** → Merges runs into master file
3. **Color Sensor Logic** → Adds intelligent run selection based on color detection
---
## How to Use
### Installation & Deployment - from the server - everyday
1. Download the file codes_for_scrimmage/hazmat/mainhazmatUPD.py
2. Open https://code.pybricks.com/ and select the "Import a file" button on the top of the left bar. Import the .py file. Pair your robot via Bluetooth in Pybricks by selecting the Bluetooth button.
- Import button looks like this:

- Bluetooth button looks like this:

3. **Upload to Robot** - Click "Download and Run" or send the program to the robot
- Run button looks like this: 
4. **Start Your Run**
- If starting without Pybricks, press the center circular button on the SPIKE Prime Hub to start the program.
- Hold a colored LEGO brick up to the color sensor.
- Different colors trigger different mission runs - color mapping is below.
### Color Start System
| Color | Mission |
|-------|-----------|
| Green 🟩 | Run 1 |
| Purple 🟪 | Run 2 |
| Red 🟥| Run 3 |
| Yellow 🟨| Run 4 |
| Blue 🟦| Run 5 |
| Orange 🟧| Run 6 |
---
## Competition Notes
- **Quick Start**: Color sensor enables rapid run switching without reprogramming
- **Modular Design**: Easy to test and modify individual missions
- **Flexible Attachments**: Multiple tools optimized for different challenges
---
## Contributing
Team members can contribute by:
- Reporting bugs via Issues
- Suggesting mission optimizations
- Testing new attachment designs
- Documenting successful strategies
---
## License
**GNU General Public License v3.0**
```
You can take inspiration from our code, but you can't take our exact code.
```
This project is licensed under GPL-3.0 - see the [LICENSE](LICENSE) file for complete details.
### What This Means:
- Learn from our approaches and strategies
- Understand our logic and algorithms
- Don't copy-paste our exact code
- Create your own unique implementations
---
## Contact & Support
**Team 65266 - Lego Dynamics**
Questions about our approach? Interested in collaboration? Reach out!
---